<?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>192742</bug_id>
          
          <creation_ts>2018-12-15 10:10:51 -0800</creation_ts>
          <short_desc>Replace many uses of String::format with more type-safe alternatives</short_desc>
          <delta_ts>2019-02-03 11:05:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=188191</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>30342</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jlewis3</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>sam</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488300</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 10:10:51 -0800</bug_when>
    <thetext>Replace many uses of String::format with more type-safe alternatives</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488303</commentid>
    <comment_count>1</comment_count>
      <attachid>357404</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 12:18:35 -0800</bug_when>
    <thetext>Created attachment 357404
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488304</commentid>
    <comment_count>2</comment_count>
      <attachid>357404</attachid>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-12-15 12:23:54 -0800</bug_when>
    <thetext>Comment on attachment 357404
Patch

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

New failing tests:
(JS) JSTestCallTracer.cpp
(JS) JSTestCEReactions.cpp
(JS) JSTestCEReactionsStringifier.cpp
(JS) JSTestClassWithJSBuiltinConstructor.cpp
(JS) JSTestCustomConstructorWithNoInterfaceObject.cpp
(JS) JSTestActiveDOMObject.cpp
(JS) JSTestDOMJIT.cpp
(JS) JSTestEnabledBySetting.cpp
(JS) JSTestEventConstructor.cpp
(JS) JSTestEventTarget.cpp
(JS) JSTestException.cpp
(JS) JSTestGenerateIsReachable.cpp
(JS) JSTestGlobalObject.cpp
(JS) JSTestIndexedSetterNoIdentifier.cpp
(JS) JSTestIndexedSetterThrowingException.cpp
(JS) JSTestIndexedSetterWithIdentifier.cpp
(JS) JSTestInterface.cpp
(JS) JSTestInterfaceLeadingUnderscore.cpp
(JS) JSTestIterable.cpp
(JS) JSMapLike.cpp
(JS) JSTestMediaQueryListListener.cpp
(JS) JSTestNamedAndIndexedSetterNoIdentifier.cpp
(JS) JSTestNamedAndIndexedSetterThrowingException.cpp
(JS) JSTestNamedAndIndexedSetterWithIdentifier.cpp
(JS) JSTestNamedConstructor.cpp
(JS) JSTestNamedDeleterNoIdentifier.cpp
(JS) JSTestNamedDeleterThrowingException.cpp
(JS) JSTestNamedDeleterWithIdentifier.cpp
(JS) JSTestNamedDeleterWithIndexedGetter.cpp
(JS) JSTestNamedGetterCallWith.cpp
(JS) JSTestNamedGetterNoIdentifier.cpp
(JS) JSTestNamedGetterWithIdentifier.cpp
(JS) JSTestNamedSetterNoIdentifier.cpp
(JS) JSTestNamedSetterThrowingException.cpp
(JS) JSTestNamedSetterWithIdentifier.cpp
(JS) JSTestNamedSetterWithIndexedGetter.cpp
(JS) JSTestNamedSetterWithIndexedGetterAndSetter.cpp
(JS) JSTestNamedSetterWithOverrideBuiltins.cpp
(JS) JSTestNamedSetterWithUnforgableProperties.cpp
(JS) JSTestNamedSetterWithUnforgablePropertiesAndOverrideBuiltins.cpp
(JS) JSTestNode.cpp
(JS) JSTestObj.cpp
(JS) JSTestOverloadedConstructors.cpp
(JS) JSTestOverloadedConstructorsWithSequence.cpp
(JS) JSTestOverrideBuiltins.cpp
(JS) JSTestPluginInterface.cpp
(JS) JSTestPromiseRejectionEvent.cpp
(JS) JSReadOnlyMapLike.cpp
(JS) JSInterfaceName.cpp
(JS) JSTestSerialization.cpp
(JS) JSTestSerializationIndirectInheritance.cpp
(JS) JSTestSerializationInherit.cpp
(JS) JSTestSerializationInheritFinal.cpp
(JS) JSTestSerializedScriptValueInterface.cpp
(JS) JSTestStringifier.cpp
(JS) JSTestStringifierAnonymousOperation.cpp
(JS) JSTestStringifierNamedOperation.cpp
(JS) JSTestStringifierOperationImplementedAs.cpp
(JS) JSTestStringifierOperationNamedToString.cpp
(JS) JSTestStringifierReadOnlyAttribute.cpp
(JS) JSTestStringifierReadWriteAttribute.cpp
(JS) JSTestTypedefs.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488309</commentid>
    <comment_count>3</comment_count>
      <attachid>357406</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 14:58:42 -0800</bug_when>
    <thetext>Created attachment 357406
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488319</commentid>
    <comment_count>4</comment_count>
      <attachid>357406</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-12-15 15:48:19 -0800</bug_when>
    <thetext>Comment on attachment 357406
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488326</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-15 16:09:39 -0800</bug_when>
    <thetext>Committed r239254: &lt;https://trac.webkit.org/changeset/239254&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488327</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-12-15 16:10:31 -0800</bug_when>
    <thetext>&lt;rdar://problem/46757369&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488468</commentid>
    <comment_count>7</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-12-17 10:39:23 -0800</bug_when>
    <thetext>This looks to have broken the windows 10 debug build:

https://build.webkit.org/builders/Apple%20Win%2010%20Debug%20%28Build%29/builds/1011/steps/compile-webkit/logs/stdio

https://build.webkit.org/builders/Apple%20Win%2010%20Debug%20%28Build%29/builds/997

error:

wtf\text\stringconcatenate.h(314): error C2027: use of undefined type &apos;WTF::StringTypeAdapter&lt;uint64_t,void&gt;&apos;


revision before builds, but this one doesn&apos;t</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488473</commentid>
    <comment_count>8</comment_count>
    <who name="Matt Lewis">jlewis3</who>
    <bug_when>2018-12-17 10:45:25 -0800</bug_when>
    <thetext>Reverted r239254 for reason:

This broke the Windows 10 Debug build

Committed r239273: &lt;https://trac.webkit.org/changeset/239273&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488513</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2018-12-17 11:22:43 -0800</bug_when>
    <thetext>That error can be fixed by adding an include of StringConcatenateNumbers.h to whatever source file failed to build, too bad we had to roll it out instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1488590</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2018-12-17 14:15:18 -0800</bug_when>
    <thetext>This is closely-related to bug #188191.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498509</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-25 15:22:51 -0800</bug_when>
    <thetext>I don’t know where to add the include because the above comment doesn’t show enough context for me to know which file failed to compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498517</commentid>
    <comment_count>12</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2019-01-25 15:30:15 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; I don’t know where to add the include because the above comment doesn’t show
&gt; enough context for me to know which file failed to compile.
It looks like the log from win-ews is still accessible:
https://webkit-queues.webkit.org/results/10421570

C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\DerivedSources\ForwardingHeaders\wtf/text/StringConcatenate.h(314): error C2027: use of undefined type &apos;WTF::StringTypeAdapter&lt;uint64_t,void&gt;&apos; (compiling source file C:\cygwin\home\buildbot\WebKit\Source\WebCore\PAL\pal\FileSizeFormatter.cpp) [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Source\WebCore\PAL\pal\PAL.vcxproj]
  C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\DerivedSources\ForwardingHeaders\wtf/text/StringConcatenate.h(314): note: see declaration of &apos;WTF::StringTypeAdapter&lt;uint64_t,void&gt;&apos; (compiling source file C:\cygwin\home\buildbot\WebKit\Source\WebCore\PAL\pal\FileSizeFormatter.cpp)
  C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\DerivedSources\ForwardingHeaders\wtf/text/StringConcatenate.h(327): note: see reference to function template instantiation &apos;WTF::String WTF::tryMakeString&lt;uint64_t,const char*&gt;(uint64_t,const char *)&apos; being compiled (compiling source file C:\cygwin\home\buildbot\WebKit\Source\WebCore\PAL\pal\FileSizeFormatter.cpp)
  C:\cygwin\home\buildbot\WebKit\Source\WebCore\PAL\pal\FileSizeFormatter.cpp(36): note: see reference to function template instantiation &apos;WTF::String WTF::makeString&lt;uint64_t,const char*&gt;(uint64_t,const char *)&apos; being compiled
C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\DerivedSources\ForwardingHeaders\wtf/text/StringConcatenate.h(314): error C2672: &apos;tryMakeStringFromAdapters&apos;: no matching overloaded function found (compiling source file C:\cygwin\home\buildbot\WebKit\Source\WebCore\PAL\pal\FileSizeFormatter.cpp) [C:\cygwin\home\buildbot\WebKit\WebKitBuild\Release\Source\WebCore\PAL\pal\PAL.vcxproj]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498735</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-26 11:15:32 -0800</bug_when>
    <thetext>Thanks. Looks like it’s FileSizeFormatter.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498739</commentid>
    <comment_count>14</comment_count>
      <attachid>360243</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-26 11:29:18 -0800</bug_when>
    <thetext>Created attachment 360243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498912</commentid>
    <comment_count>15</comment_count>
      <attachid>360311</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-27 16:30:36 -0800</bug_when>
    <thetext>Created attachment 360311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498917</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-27 17:56:35 -0800</bug_when>
    <thetext>Committed r240557: &lt;https://trac.webkit.org/changeset/240557&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498918</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-27 19:02:32 -0800</bug_when>
    <thetext>It broke the WPE/GTK debug build. I&apos;m not sure why:

In file included from DerivedSources/ForwardingHeaders/wtf/text/AtomicString.h:364,
                 from DerivedSources/ForwardingHeaders/wtf/text/WTFString.h:667,
                 from ../../Source/WebCore/platform/network/CacheValidation.h:33,
                 from ../../Source/WebCore/loader/cache/CachedResource.h:26,
                 from ../../Source/WebCore/loader/cache/CachedImage.h:25,
                 from ../../Source/WebCore/rendering/RenderImageResource.h:28,
                 from ../../Source/WebCore/rendering/RenderImageResource.cpp:29,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource-043dd90b-8.cpp:1:
DerivedSources/ForwardingHeaders/wtf/text/StringConcatenate.h: In instantiation of ‘WTF::String WTF::tryMakeString(StringTypes ...) [with StringTypes = {const char*, int}]’:
DerivedSources/ForwardingHeaders/wtf/text/StringConcatenate.h:327:34:   required from ‘WTF::String WTF::makeString(StringTypes ...) [with StringTypes = {const char*, int}]’
../../Source/WebCore/rendering/RenderLayerCompositor.cpp:1281:84:   required from here
DerivedSources/ForwardingHeaders/wtf/text/StringConcatenate.h:314:38: error: invalid use of incomplete type ‘class WTF::StringTypeAdapter&lt;int, void&gt;’
     return tryMakeStringFromAdapters(StringTypeAdapter&lt;StringTypes&gt;(strings)...);
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from DerivedSources/ForwardingHeaders/wtf/Ref.h:30,
                 from DerivedSources/ForwardingHeaders/wtf/RefPtr.h:28,
                 from DerivedSources/ForwardingHeaders/wtf/HashFunctions.h:26,
                 from DerivedSources/ForwardingHeaders/pal/SessionID.h:28,
                 from ../../Source/WebCore/platform/network/CacheValidation.h:28,
                 from ../../Source/WebCore/loader/cache/CachedResource.h:26,
                 from ../../Source/WebCore/loader/cache/CachedImage.h:25,
                 from ../../Source/WebCore/rendering/RenderImageResource.h:28,
                 from ../../Source/WebCore/rendering/RenderImageResource.cpp:29,
                 from DerivedSources/WebCore/unified-sources/UnifiedSource-043dd90b-8.cpp:1:
DerivedSources/ForwardingHeaders/wtf/Forward.h:61:43: note: declaration of ‘class WTF::StringTypeAdapter&lt;int, void&gt;’
 template&lt;typename, typename = void&gt; class StringTypeAdapter;
                                           ^~~~~~~~~~~~~~~~~

I don&apos;t see why and templates hurt my head, so I&apos;m going to revert just the one line change in RenderLayerCompositor.cpp. I&apos;ll also sneak in a fix for an improper string format warning that was added to this file in the past couple days. Strange coincidence that it&apos;s in the same file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1498919</commentid>
    <comment_count>18</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-27 19:03:35 -0800</bug_when>
    <thetext>Committed r240558: &lt;https://trac.webkit.org/changeset/240558&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499046</commentid>
    <comment_count>19</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-28 09:06:50 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #17)
&gt; I don&apos;t see why

Most likely reason is the need for an include of &lt;wtf/text/StringConcatenateNumbers.h&gt; in RenderLayerCompositor.cpp. Would you be willing to try that and land it if it works?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499047</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-28 09:09:50 -0800</bug_when>
    <thetext>OK.

Why isn&apos;t that included from StringConcatenate.h :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499091</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-01-28 11:09:45 -0800</bug_when>
    <thetext>Committed r240590: &lt;https://trac.webkit.org/changeset/240590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1499196</commentid>
    <comment_count>22</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-01-28 14:45:06 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #20)
&gt; Why isn&apos;t that included from StringConcatenate.h :(

If we prove it’s negligible slowdown to build time then we could do that to make it easier to get including right.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357404</attachid>
            <date>2018-12-15 12:18:35 -0800</date>
            <delta_ts>2018-12-15 14:58:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192742-20181215121834.patch</filename>
            <type>text/plain</type>
            <size>72690</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NzA0NjNmNDZlM2NlZDg2M2Y3NTM5M2MyYjI0MDBlYjFlYTU5ODUwLi43ZTZiMzZiZDY2NDVmMzRk
ZTk1OWM3ZTBhZDljM2MwYzMxZGY5NjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5
cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUNhbGwpOiBVc2UgbWFrZVN0cmlu
Zy4KKyAgICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQXN5bmNDYWxs
KTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OmdldFByb3BlcnR5
VmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6
ZW5hYmxlKTogRGl0dG8uCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEZ1bmN0aW9uSlND
U3RhY2tGdW5jdG9yOjpvcGVyYXRvcigpIGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZv
cm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KTogVXNlIHN0cmluZyBjb25jYXRlbmF0aW9u
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNhbm9u
aWNhbGl6ZUxvY2FsZUxpc3QpOiBEaXR0by4KKwogMjAxOC0xMi0xNCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTGl0ZXJhbFBhcnNlciBoYXMgYSBidW5jaCBvZiB1
c2VzIG9mIFN0cmluZzo6Zm9ybWF0IHdpdGggdW50cnVzdGVkIGRhdGEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOTZiZGI5MDg3
NzFiZWYwNDYxNTRhODIwMzNhNGQ4NGEzYjZkOTM5NS4uOTAzOTNjODQzYTEyYjA2MjM0MWNiYTA4
ZGFlMDVlMjQ0YjgyNmNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0xMi0xNSAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2Yg
U3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1dvcmtRdWV1ZS5j
cHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KTogVXNlIG1ha2VT
dHJpbmcuCisKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OmR0b2EpOiBV
c2Ugc3ByaW50ZiBpbnN0ZWFkIG9mIFN0cmluZzo6Zm9ybWF0IGluIHRoZSBjb21tZW50cywKKyAg
ICAgICAgc2luY2UgdGhlc2UgZnVuY3Rpb25zIGhhdmUgbm90aGluZyB0byBkbyB3aXRoIFdURjo6
U3RyaW5nLgorCiAyMDE4LTEyLTE0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBWZXJpZnkgc2l6ZSBpcyB2YWxpZCBpbiBVU0VfU1lTVEVNX01BTExPQyB2ZXJzaW9u
IG9mIHRyeUFsbG9jYXRlWmVyb2VkVmlydHVhbFBhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWQyZDA3M2M4
Nzk1ZWI0MmQzMjE0NjBhZjI2MzBmZTAyNzZlZDUyZS4uM2E5YzgwNmNkMTVjNjZjYmY4YWQ4Y2Ey
MjU4MzYwOTMyODdjNWU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDExOSBAQAorMjAxOC0xMi0x
NSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55
IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgd2hpbGUg
YmFjaywgU3RyaW5nOjpmb3JtYXQgd2FzIG1vcmUgZWZmaWNpZW50IHRoYW4gc3RyaW5nIGNvbmNh
dGVuYXRpb24sCisgICAgICAgIGJ1dCB0aGF0IGlzIG5vIGxvbmdlciB0cnVlLCBhbmQgd2Ugc2hv
dWxkIHByZWZlciBTdHJpbmc6Om51bWJlciwgbWFrZVN0cmluZywKKyAgICAgICAgb3IgY29uY2F0
ZW5hdGlvbiB3aXRoIHRoZSAiKyIgb3BlcmF0b3IgdG8gU3RyaW5nOjpmb3JtYXQgZm9yIG5ldyBj
b2RlLgorCisgICAgICAgIFRoaXMgaXMgbm90IGFzIGdvb2QgZm9yIHByb2dyYW1tZXJzIHdobyBh
cmUgZm9uZCBvZiBwcmludGYgZm9ybWF0dGluZworICAgICAgICBzdHlsZSwgYW5kIGluIHNvbWUg
Y2FzZXMgaXQncyBhIGxpdHRsZSBoYXJkZXIgdG8gcmVhZCB0aGUgc3RyaW5ncworICAgICAgICBp
bnRlcnNwZXJzZWQgd2l0aCB2YXJpYWJsZXMgcmF0aGVyIHRoYW4gYSBmb3JtYXQgc3RyaW5nLCBi
dXQgaXQncyBiZXR0ZXIKKyAgICAgICAgaW4gYSBmZXcgd2F5czoKKworICAgICAgICAtIG1vcmUg
ZWZmaWNpZW50IChJIGRpZG4ndCBtZWFzdXJlIHRoZSBkaWZmZXJlbmNlLCBidXQgaXQncyBkZWZp
bml0ZWx5CisgICAgICAgICAgc2xvd2VyIHRvIHVzZSBTdHJpbmc6OkZvcm1hdCB3aGljaCBjYWxs
cyB2c25wcmludGYgdHdpY2UgdGhhbiB0byB1c2UKKyAgICAgICAgICB0aGUgV1RGIGNvZGUpCisg
ICAgICAgIC0gd29ya3MgaW4gYSB0eXBlLXNhZmUgd2F5IHdpdGhvdXQgYSBuZWVkIHRvIHVzZSBh
IGZvcm1hdCBzcGVjaWZpZXIgc3VjaAorICAgICAgICAgIGFzICIlIiBQUkl1NjQgb3IgIiV0dSIg
bWFraW5nIGl0IG11Y2ggZWFzaWVyIHRvIGF2b2lkIHByb2JsZW1zIGR1ZSB0bworICAgICAgICAg
IHN1YnRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHBsYXRmb3JtcworICAgICAgICAtIGFsbG93cyB1
cyB0byB1c2UgU3RyaW5nVmlldyBpbiBzb21lIGNhc2VzIHRvIHNpZGVzdGVwIHRoZSBuZWVkIHRv
CisgICAgICAgICAgYWxsb2NhdGUgdGVtcG9yYXJ5IFdURjo6U3RyaW5nIG9iamVjdHMKKyAgICAg
ICAgLSBkb2VzIG5vdCByZXF1aXJlIGNvbnZlcnRpbmcgZWFjaCBXVEY6OlN0cmluZyB0byBhIEMg
c3RyaW5nLCBhbGxvd2luZworICAgICAgICAgIHVzIHRvIHJlbW92ZSBtYW55IGNhc2VzIG9mICIu
dXRmOCgpLmRhdGEoKSIgYW5kIHNpbWlsYXIgZXhwcmVzc2lvbnMsCisgICAgICAgICAgZWxpbWlu
YXRpbmcgdGhlIGFsbG9jYXRpb24gb2YgdGVtcG9yYXJ5IFdURjo6Q1N0cmluZyBvYmplY3RzCisK
KyAgICAgICAgVGhpcyBwYXRjaCBjb3ZlcnMgYSBiYXRjaCBvZiBlYXNpZXN0LXRvLWNvbnZlcnQg
Y2FsbCBzaXRlcy4KKyAgICAgICAgTGF0ZXIgcGF0Y2hlcyB3aWxsIGFsbG93IHVzIHRvIGRlcHJl
Y2F0ZSBvciByZW1vdmUgU3RyaW5nOjpmb3JtYXQuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQpOiBVc2UgbWFrZVN0
cmluZy4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJl
Y29yZHNEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldEFsbFJlY29yZHNEYXRhOjps
b2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQkdldFJlY29yZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVj
b3JkRGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpJREJJbmRleEluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcgY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCSXRlcmF0ZUN1cnNvckRhdGE6OmxvZ2dpbmdTdHJpbmcg
Y29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2Jq
ZWN0U3RvcmVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW5mbzo6
Y29uZGVuc2VkTG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyOjpsb2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8u
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpmb3JtYXRFcnJvck1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTEVycm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6Y3JlYXRl
KTogRGl0dG8uCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBVc2UgbWFrZVN0cmluZy4KKwor
ICAgICAgICAqIGNzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5UGFyc2VySGVscGVyczo6cGFyc2VIZXhDb2xvcik6IFVz
ZSBTdHJpbmc6Om51bWJlcgorICAgICAgICBhbmQgbWFrZVN0cmluZy4KKworICAgICAgICAqIGh0
bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVs
ZW1lbnQ6OnNldExlbmd0aCk6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAqIGh0bWwvSW1hZ2VE
b2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURvY3VtZW50OjppbWFnZVVwZGF0
ZWQpOiBEaXR0by4KKyAgICAgICAgKiBodG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmluaXQpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0
b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREb2NraW5nVW5hdmFpbGFibGUpOiBEaXR0
by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0
dGFjaGVkV2luZG93KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsOjpzZXREZWJ1Z2dpbmdFbmFibGVkKTogRGl0dG8uCisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0Vu
YWJsZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OnNob3dNYWluUmVzb3VyY2VGb3JGcmFtZSk6IERpdHRvLgorICAgICAgICAqIGluc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBpbnNw
ZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcDogRGl0dG8uCisgICAgICAg
ICogcGFnZS9NZW1vcnlSZWxlYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmxvZ01lbW9yeVN0
YXRpc3RpY3NBdFRpbWVPZkRlYXRoKTogRGl0dG8uCisKKyAgICAgICAgKiBwYWdlL2NvY29hL1Jl
c291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRCeXRl
TnVtYmVyKTogVXNlIFN0cmluZzo6bnVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VV
c2FnZU92ZXJsYXk6OnBsYXRmb3JtRHJhdyk6IFVzZSBzdHJpbmcgY29uY2F0ZW5hdGlvbi4KKwor
ICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6bG9nRm9vdHByaW50Q29tcGFyaXNvbik6IFVzZSBtYWtlU3RyaW5nLgorICAg
ICAgICAqIHBsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaW1pbmdGdW5jdGlvbjo6Y3NzVGV4dCBjb25zdCk6IERpdHRvLgorCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0lt
cGwubW06CisgICAgICAgIChXZWJDb3JlOjpBVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsOjppZCBj
b25zdCk6IFVzZSBBdG9taWNTdHJpbmc6Om51bWJlci4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2FtcGxlQVZGT2JqQzo6TWVkaWFTYW1wbGVBVkZPYmpDKTogRGl0dG8uCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpzZXRDb250ZW50c1RvU29saWRDb2xvcik6
IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjp1cGRh
dGVDb250ZW50c0ltYWdlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUNvbnRlbnRzUmVjdHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBo
aWNzTGF5ZXJDQTo6Y3JlYXRlVHJhbnNmb3JtQW5pbWF0aW9uc0Zyb21LZXlmcmFtZXMpOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpkcmF3VGV4dCk6IERp
dHRvLgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVm
ZmVyUHJpdmF0ZS5jcHA6IFVzZSBTdHJpbmc6Om51bWJlci4KKworICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUGFyc2VkQ29udGVudFJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhcnNl
ZENvbnRlbnRSYW5nZTo6aGVhZGVyVmFsdWUgY29uc3QpOiBVc2UgbWFrZVN0cmluZy4KKworICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvTmV0d29ya1N0b3JhZ2VTZXNzaW9uQ0ZOZXQuY3Bw
OiBSZW1vdmVkIHNvbWUgdW5uZWNlc3NhcnkKKyAgICAgICAgY29tcGlsZXIgY29uZGl0aW9uYWxz
IGFuZCByZW9yZ2FuaXplZCB0aGUgc3RhcnQvc3RvcCBvZiBuYW1lc3BhY2VzLgorICAgICAgICAo
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNzaW9u
KTogVXNlIG1ha2VTdHJpbmcuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dW5hdXRob3JpemVkU1FMRnVuY3Rpb24pOiBVc2Ug
bWFrZVN0cmluZy4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9zaXRvcjo6bG9nTGF5ZXJJbmZv
KTogRGl0dG8uCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25E
YXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWdpc3RyYXRpb25EYXRhYmFzZTo6ZW5z
dXJlVmFsaWRSZWNvcmRzVGFibGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJh
dGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKTogRGl0dG8uCisKIDIwMTgtMTItMTQgIEpvc2Vw
aCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9y
OiBBdm9pZCBjcmVhdGluZyBhbmQgZXZhbHVhdGluZyBpbiB0aGUgSW5zcGVjdG9yT3ZlcmxheSBw
YWdlIG9uIGlPUyBhcyBpdCBpcyB1bnVzZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BB
TC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IDUzZTUwMDg5
ZmM1MjEyZGRiZDFhYmIyYTk2MTMyOTA4ODZiY2U0ZDAuLmNmMDM4OGM2MjBjZGIwMWE5OTU3MmYy
Y2ZjMWFlODgzMWJhMzlmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDE4LTEyLTE1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBs
YWNlIG1hbnkgdXNlcyBvZiBTdHJpbmc6OmZvcm1hdCB3aXRoIG1vcmUgdHlwZS1zYWZlIGFsdGVy
bmF0aXZlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTkyNzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwYWwvRmlsZVNpemVGb3JtYXR0ZXIuY3BwOgorICAgICAgICAoZmlsZVNpemVEZXNjcmlwdGlv
bik6IFVzZSBtYWtlU3RyaW5nLgorCiAyMDE4LTEyLTExICBKdXN0aW4gTWljaGF1ZCAgPGp1c3Rp
bl9taWNoYXVkQGFwcGxlLmNvbT4KIAogICAgICAgICBJbXBsZW1lbnQgZmVhdHVyZSBmbGFnIGZv
ciBDU1MgVHlwZWQgT00KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTg4OGQ4YjBiMjM5M2M4ZjY0OTNiMTU4YmNlYTg0
ZjViNTYxOTM1My4uMzM4ODIxZDg0Mjc4M2E5OWYyYWNiNmE4NmQwNjdhM2E2MmJhZWIxNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQg
d2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhlYWRlcnMpOiBVc2UgbWFr
ZVN0cmluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRv
cjo6bWFrZUNyZWRlbnRpYWwpOiBVc2Ugc3RyaW5nIGNvbmNhdGVudGF0aW9uLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclV0aWxpdGllcy5jcHA6CisgICAgICAgIChXZWJLaXQ6
Omluc3BlY3RvclBhZ2VHcm91cElkZW50aWZpZXJGb3JQYWdlKTogVXNlIG1ha2VTdHJpbmcuCisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcpOiBEaXR0by4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0TWVtb3J5U2FtcGxlcik6IERpdHRvLgor
CiAyMDE4LTEyLTE0ICBSeWFuIEhhZGRhZCAgPHJ5YW5oYWRkYWRAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgYnVpbGQgd2l0aCByZWNlbnQgU0RLcy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNw
cAppbmRleCBlMzBjNjAxNDE3NGM4MTM4MzA4OWIwYmMwNTI3Njk1N2ZmOGEyM2NhLi44NjdlMGI1
MmQ0NmJlY2ZlYjZiNmY2MzUxN2JkMjdlYjY4MGRiMGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCkBAIC00MCw3
ICs0MCw3IEBACiAjaW5jbHVkZSAiTmF0aXZlU3RkRnVuY3Rpb25DZWxsLmgiCiAjaW5jbHVkZSAi
U2NyaXB0RnVuY3Rpb25DYWxsLmgiCiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIEluc3BlY3RvciB7CiAKQEAgLTkxLDcgKzkx
LDcgQEAgUmVmPEpTT046OlZhbHVlPiBJbmplY3RlZFNjcmlwdEJhc2U6Om1ha2VDYWxsKERlcHJl
Y2F0ZWQ6OlNjcmlwdEZ1bmN0aW9uQ2FsbCYgZnUKIAogICAgIFJlZlB0cjxKU09OOjpWYWx1ZT4g
cmVzdWx0SlNPTlZhbHVlID0gdG9JbnNwZWN0b3JWYWx1ZSgqbV9pbmplY3RlZFNjcmlwdE9iamVj
dC5zY3JpcHRTdGF0ZSgpLCByZXN1bHRKU1ZhbHVlKTsKICAgICBpZiAoIXJlc3VsdEpTT05WYWx1
ZSkKLSAgICAgICAgcmV0dXJuIEpTT046OlZhbHVlOjpjcmVhdGUoU3RyaW5nOjpmb3JtYXQoIk9i
amVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluIChtdXN0IG5vdCBiZSBsb25nZXIgdGhh
biAlZCkiLCBKU09OOjpWYWx1ZTo6bWF4RGVwdGgpKTsKKyAgICAgICAgcmV0dXJuIEpTT046OlZh
bHVlOjpjcmVhdGUobWFrZVN0cmluZygiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hh
aW4gKG11c3Qgbm90IGJlIGxvbmdlciB0aGFuICIsIEpTT046OlZhbHVlOjptYXhEZXB0aCwgJykn
KSk7CiAKICAgICByZXR1cm4gcmVzdWx0SlNPTlZhbHVlLnJlbGVhc2VOb25OdWxsKCk7CiB9CkBA
IC0xMjIsNyArMTIyLDcgQEAgdm9pZCBJbmplY3RlZFNjcmlwdEJhc2U6Om1ha2VBc3luY0NhbGwo
RGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsJiBmdW5jdGlvbiwKICAgICAgICAgICAgIGlm
IChhdXRvIHJlc3VsdEpTT05WYWx1ZSA9IHRvSW5zcGVjdG9yVmFsdWUoKmV4ZWMsIGV4ZWMtPmFy
Z3VtZW50KDApKSkKICAgICAgICAgICAgICAgICBjaGVja0FzeW5jQ2FsbFJlc3VsdChyZXN1bHRK
U09OVmFsdWUsIGNhbGxiYWNrKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBj
aGVja0FzeW5jQ2FsbFJlc3VsdChKU09OOjpWYWx1ZTo6Y3JlYXRlKFN0cmluZzo6Zm9ybWF0KCJP
YmplY3QgaGFzIHRvbyBsb25nIHJlZmVyZW5jZSBjaGFpbiAobXVzdCBub3QgYmUgbG9uZ2VyIHRo
YW4gJWQpIiwgSlNPTjo6VmFsdWU6Om1heERlcHRoKSksIGNhbGxiYWNrKTsKKyAgICAgICAgICAg
ICAgICBjaGVja0FzeW5jQ2FsbFJlc3VsdChKU09OOjpWYWx1ZTo6Y3JlYXRlKG1ha2VTdHJpbmco
Ik9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluIChtdXN0IG5vdCBiZSBsb25nZXIg
dGhhbiAiLCBKU09OOjpWYWx1ZTo6bWF4RGVwdGgsICcpJykpLCBjYWxsYmFjayk7CiAgICAgICAg
ICAgICByZXR1cm4gSlNDOjpKU1ZhbHVlOjplbmNvZGUoSlNDOjpqc1VuZGVmaW5lZCgpKTsKICAg
ICAgICAgfSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcAppbmRleCBhYTRlYjRl
M2Q5ZWJmZjAwNmM0ODc0NDU3YjUzZDYwZGU0MTYwMjBhLi43ZGZiNmNlNzBhNTdiY2RlZGFjZWNi
NjY4OWI3YjYyNWZlNzQxYTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcApAQCAtMjkx
LDE5ICsyOTEsMTkgQEAgVCBCYWNrZW5kRGlzcGF0Y2hlcjo6Z2V0UHJvcGVydHlWYWx1ZShKU09O
OjpPYmplY3QqIG9iamVjdCwgY29uc3QgU3RyaW5nJiBuYW1lLAogCiAgICAgaWYgKCFvYmplY3Qp
IHsKICAgICAgICAgaWYgKCFvdXRfb3B0aW9uYWxWYWx1ZUZvdW5kKQotICAgICAgICAgICAgcmVw
b3J0UHJvdG9jb2xFcnJvcihCYWNrZW5kRGlzcGF0Y2hlcjo6SW52YWxpZFBhcmFtcywgU3RyaW5n
Ojpmb3JtYXQoIidwYXJhbXMnIG9iamVjdCBtdXN0IGNvbnRhaW4gcmVxdWlyZWQgcGFyYW1ldGVy
ICclcycgd2l0aCB0eXBlICclcycuIiwgbmFtZS51dGY4KCkuZGF0YSgpLCB0eXBlTmFtZSkpOwor
ICAgICAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihCYWNrZW5kRGlzcGF0Y2hlcjo6SW52YWxp
ZFBhcmFtcywgbWFrZVN0cmluZygiJ3BhcmFtcycgb2JqZWN0IG11c3QgY29udGFpbiByZXF1aXJl
ZCBwYXJhbWV0ZXIgJyIsIG5hbWUsICInIHdpdGggdHlwZSAnIiwgdHlwZU5hbWUsICInLiIpKTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICBhdXRvIGZpbmRSZXN1bHQgPSBv
YmplY3QtPmZpbmQobmFtZSk7CiAgICAgaWYgKGZpbmRSZXN1bHQgPT0gb2JqZWN0LT5lbmQoKSkg
ewogICAgICAgICBpZiAoIW91dF9vcHRpb25hbFZhbHVlRm91bmQpCi0gICAgICAgICAgICByZXBv
cnRQcm90b2NvbEVycm9yKEJhY2tlbmREaXNwYXRjaGVyOjpJbnZhbGlkUGFyYW1zLCBTdHJpbmc6
OmZvcm1hdCgiUGFyYW1ldGVyICclcycgd2l0aCB0eXBlICclcycgd2FzIG5vdCBmb3VuZC4iLCBu
YW1lLnV0ZjgoKS5kYXRhKCksIHR5cGVOYW1lKSk7CisgICAgICAgICAgICByZXBvcnRQcm90b2Nv
bEVycm9yKEJhY2tlbmREaXNwYXRjaGVyOjpJbnZhbGlkUGFyYW1zLCBtYWtlU3RyaW5nKCJQYXJh
bWV0ZXIgJyIsIG5hbWUsICInIHdpdGggdHlwZSAnIiwgdHlwZU5hbWUsICInIHdhcyBub3QgZm91
bmQuIikpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIGlmICghYXNNZXRo
b2QoKmZpbmRSZXN1bHQtPnZhbHVlLCByZXN1bHQpKSB7Ci0gICAgICAgIHJlcG9ydFByb3RvY29s
RXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFsaWRQYXJhbXMsIFN0cmluZzo6Zm9ybWF0KCJQ
YXJhbWV0ZXIgJyVzJyBoYXMgd3JvbmcgdHlwZS4gSXQgbXVzdCBiZSAnJXMnLiIsIG5hbWUudXRm
OCgpLmRhdGEoKSwgdHlwZU5hbWUpKTsKKyAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihCYWNr
ZW5kRGlzcGF0Y2hlcjo6SW52YWxpZFBhcmFtcywgbWFrZVN0cmluZygiUGFyYW1ldGVyICciLCBu
YW1lLCAiJyBoYXMgd3JvbmcgdHlwZS4gSXQgbXVzdCBiZSAnIiwgdHlwZU5hbWUsICInLiIpKTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdl
bnQuY3BwCmluZGV4IDRjZmVkN2M1NWY0NjhkYjRlYjFiNTBmNTBhODI0YzNmZGQ3ZmVhOTkuLjNm
YzVlOTkyYTk1MGYyMDE5ZjkxNjQ4ZDBkMWFlN2QyNzM2ZTQyZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q29uc29sZUFnZW50LmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgIlNjcmlwdENhbGxT
dGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFja0ZhY3RvcnkuaCIKICNpbmNsdWRlICJT
Y3JpcHRPYmplY3QuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIEluc3Bl
Y3RvciB7CiAKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBJbnNwZWN0b3JDb25zb2xlQWdlbnQ6OmVu
YWJsZShFcnJvclN0cmluZyYpCiAgICAgbV9lbmFibGVkID0gdHJ1ZTsKIAogICAgIGlmIChtX2V4
cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSB7Ci0gICAgICAgIENvbnNvbGVNZXNzYWdlIGV4cGly
ZWRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdl
TGV2ZWw6Oldhcm5pbmcsIFN0cmluZzo6Zm9ybWF0KCIlZCBjb25zb2xlIG1lc3NhZ2VzIGFyZSBu
b3Qgc2hvd24uIiwgbV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCkpOworICAgICAgICBDb25z
b2xlTWVzc2FnZSBleHBpcmVkTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2FnZVR5
cGU6OkxvZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKG1fZXhwaXJlZENvbnNv
bGVNZXNzYWdlQ291bnQsICIgY29uc29sZSBtZXNzYWdlcyBhcmUgbm90IHNob3duLiIpKTsKICAg
ICAgICAgZXhwaXJlZE1lc3NhZ2UuYWRkVG9Gcm9udGVuZCgqbV9mcm9udGVuZERpc3BhdGNoZXIs
IG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLCBmYWxzZSk7CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2Mu
Y3BwCmluZGV4IGE4NGNjMjM4OTVlZWRkYTZkNGExZmVjNTQxYWMyNDA4MDM2NWVlM2YuLjU5OGYy
NTNkYjgyNTc5MmVhYTJhYTU2YWE1ZTNjNmY5NzcxMjA2NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9qc2MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
CkBAIC04OSw2ICs4OSw3IEBACiAjaW5jbHVkZSA8d3RmL1N0cmluZ1ByaW50U3RyZWFtLmg+CiAj
aW5jbHVkZSA8d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRl
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiAj
aWYgT1MoV0lORE9XUykKICNpbmNsdWRlIDxkaXJlY3QuaD4KQEAgLTExNjQsNyArMTE2NSw3IEBA
IHB1YmxpYzoKIAogICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tWaXNp
dG9yJiB2aXNpdG9yKSBjb25zdAogICAgIHsKLSAgICAgICAgbV90cmFjZS5hcHBlbmQoU3RyaW5n
Ojpmb3JtYXQoIiAgICAlenUgICAlc1xuIiwgdmlzaXRvci0+aW5kZXgoKSwgdmlzaXRvci0+dG9T
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIG1fdHJhY2UuYXBwZW5kKG1ha2VTdHJp
bmcoIiAgICAiLCB2aXNpdG9yLT5pbmRleCgpLCAiICAgIiwgdmlzaXRvci0+dG9TdHJpbmcoKSwg
J1xuJykpOwogICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZv
cm1hdC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3Jt
YXQuY3BwCmluZGV4IGFlM2Q2ODAxODUzMDBkNGZiMmMyYTIyMDdhNzNhMzkxN2RlOGYzNGEuLjFl
OGQ5ZTNjYjNjMDI2MWRjZDU4MzA3MzU4YTA0OTdiODUwNDYzZmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcApAQCAtNTA0
LDcgKzUwNCw3IEBAIHZvaWQgSW50bERhdGVUaW1lRm9ybWF0Ojppbml0aWFsaXplRGF0ZVRpbWVG
b3JtYXQoRXhlY1N0YXRlJiBleGVjLCBKU1ZhbHVlIGxvY2FsCiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIHZvaWQoKSk7CiAgICAgICAgIHR6ID0gY2Fub25pY2FsaXplVGltZVpv
bmVOYW1lKG9yaWdpbmFsVHopOwogICAgICAgICBpZiAodHouaXNOdWxsKCkpIHsKLSAgICAgICAg
ICAgIHRocm93UmFuZ2VFcnJvcigmZXhlYywgc2NvcGUsIFN0cmluZzo6Zm9ybWF0KCJpbnZhbGlk
IHRpbWUgem9uZTogJXMiLCBvcmlnaW5hbFR6LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgICAg
IHRocm93UmFuZ2VFcnJvcigmZXhlYywgc2NvcGUsICJpbnZhbGlkIHRpbWUgem9uZTogIiArIG9y
aWdpbmFsVHopOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgfSBlbHNlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsT2JqZWN0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwCmluZGV4IDdhMThi
M2RiZDg5ODA2M2Y1NDNkOTdiYjRkMGEzNzhmOTM1YzA4ZjguLjE3OTYwMTcxZjhiMjgxOGRlNjQ0
NmUxOTMyZGEwZWNjYjBjNzIwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuY3BwCkBAIC01NTMsNyArNTUzLDcgQEAgVmVjdG9yPFN0cmluZz4gY2Fub25p
Y2FsaXplTG9jYWxlTGlzdChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIGxvY2FsZXMpCiAKICAg
ICAgICAgICAgIFN0cmluZyBjYW5vbmljYWxpemVkVGFnID0gY2Fub25pY2FsaXplTGFuZ3VhZ2VU
YWcodGFnLT52YWx1ZSgmc3RhdGUpKTsKICAgICAgICAgICAgIGlmIChjYW5vbmljYWxpemVkVGFn
LmlzTnVsbCgpKSB7Ci0gICAgICAgICAgICAgICAgdGhyb3dFeGNlcHRpb24oJnN0YXRlLCBzY29w
ZSwgY3JlYXRlUmFuZ2VFcnJvcigmc3RhdGUsIFN0cmluZzo6Zm9ybWF0KCJpbnZhbGlkIGxhbmd1
YWdlIHRhZzogJXMiLCB0YWctPnZhbHVlKCZzdGF0ZSkudXRmOCgpLmRhdGEoKSkpKTsKKyAgICAg
ICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9y
KCZzdGF0ZSwgImludmFsaWQgbGFuZ3VhZ2UgdGFnOiAiICsgdGFnLT52YWx1ZSgmc3RhdGUpKSk7
CiAgICAgICAgICAgICAgICAgcmV0dXJuIFZlY3RvcjxTdHJpbmc+KCk7CiAgICAgICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAgYi9Tb3VyY2UvV1RG
L3d0Zi9Xb3JrUXVldWUuY3BwCmluZGV4IGU0MDU3N2M3NjYwMzE1ZmNjOGJlNTI4MTIwNzY0YjQ4
MjMxNTZhYTcuLjdhYjlmM2FmNmM0YWNiNWU2MjA2NjM4MWNiOGU1MWNmZGY0ZmVkZjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKKysrIGIvU291cmNlL1dURi93dGYv
V29ya1F1ZXVlLmNwcApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29uY3VycmVu
dEFwcGx5KHNpemVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHNpemVfdCBpbgog
CiAgICAgICAgICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aHJlYWRDb3Vu
dCk7CiAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhyZWFkQ291bnQ7ICsr
aSkgewotICAgICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoVGhyZWFkOjpjcmVhdGUoU3Ry
aW5nOjpmb3JtYXQoIlRocmVhZFBvb2wgV29ya2VyICV1IiwgaSkudXRmOCgpLmRhdGEoKSwgW3Ro
aXNdIHsKKyAgICAgICAgICAgICAgICBtX3dvcmtlcnMuYXBwZW5kKFRocmVhZDo6Y3JlYXRlKG1h
a2VTdHJpbmcoIlRocmVhZFBvb2wgV29ya2VyICIsIGkpLnV0ZjgoKS5kYXRhKCksIFt0aGlzXSB7
CiAgICAgICAgICAgICAgICAgICAgIHRocmVhZEJvZHkoKTsKICAgICAgICAgICAgICAgICB9KSk7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcCBiL1Nv
dXJjZS9XVEYvd3RmL2R0b2EuY3BwCmluZGV4IDg0NjU1ODMwZTkwZmI3ZWI3NTRlYzdkZDk0MGIy
NTNlY2E1ZTRlNTIuLjY4MzMxNGZmZDRlOThhNWZkYzA4NTg2ZmM4Nzc4ODFiMmFiNmNhYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2R0
b2EuY3BwCkBAIC0xMjcyLDcgKzEyNzIsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGZv
cm1hdFN0cmluZ1RydW5jYXRpbmdUcmFpbGluZ1plcm9zSWZOZWVkZWQoTnVtYmVyVG9TdAogCiBj
b25zdCBjaGFyKiBudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGRvdWJsZSBkLCB1bnNpZ25l
ZCBzaWduaWZpY2FudEZpZ3VyZXMsIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlciwgYm9vbCB0
cnVuY2F0ZVRyYWlsaW5nWmVyb3MpCiB7Ci0gICAgLy8gTWltaWMgU3RyaW5nOjpmb3JtYXQoIiUu
W3ByZWNpc2lvbl1nIiwgLi4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGluZyBmYWNpbGl0aWVzLgor
ICAgIC8vIE1pbWljIHNwcmludGYoIiUuW3ByZWNpc2lvbl1nIiwgLi4uKSwgYnV0IHVzZSBkdG9h
cyByb3VuZGluZyBmYWNpbGl0aWVzLgogICAgIC8vICJnIjogU2lnbmVkIHZhbHVlIHByaW50ZWQg
aW4gZiBvciBlIGZvcm1hdCwgd2hpY2hldmVyIGlzIG1vcmUgY29tcGFjdCBmb3IgdGhlIGdpdmVu
IHZhbHVlIGFuZCBwcmVjaXNpb24uCiAgICAgLy8gVGhlIGUgZm9ybWF0IGlzIHVzZWQgb25seSB3
aGVuIHRoZSBleHBvbmVudCBvZiB0aGUgdmFsdWUgaXMgbGVzcyB0aGFuIOKAkzQgb3IgZ3JlYXRl
ciB0aGFuIG9yIGVxdWFsIHRvIHRoZQogICAgIC8vIHByZWNpc2lvbiBhcmd1bWVudC4gVHJhaWxp
bmcgemVyb3MgYXJlIHRydW5jYXRlZCwgYW5kIHRoZSBkZWNpbWFsIHBvaW50IGFwcGVhcnMgb25s
eSBpZiBvbmUgb3IgbW9yZSBkaWdpdHMgZm9sbG93IGl0LgpAQCAtMTI4Nyw3ICsxMjg3LDcgQEAg
Y29uc3QgY2hhciogbnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhkb3VibGUgZCwgdW5zaWdu
ZWQgc2lnbmlmaWNhbnRGaWd1cmVzLAogCiBjb25zdCBjaGFyKiBudW1iZXJUb0ZpeGVkV2lkdGhT
dHJpbmcoZG91YmxlIGQsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMsIE51bWJlclRvU3RyaW5nQnVm
ZmVyIGJ1ZmZlcikKIHsKLSAgICAvLyBNaW1pYyBTdHJpbmc6OmZvcm1hdCgiJS5bcHJlY2lzaW9u
XWYiLCAuLi4pLCBidXQgdXNlIGR0b2FzIHJvdW5kaW5nIGZhY2lsaXRpZXMuCisgICAgLy8gTWlt
aWMgc3ByaW50ZigiJS5bcHJlY2lzaW9uXWYiLCAuLi4pLCBidXQgdXNlIGR0b2FzIHJvdW5kaW5n
IGZhY2lsaXRpZXMuCiAgICAgLy8gImYiOiBTaWduZWQgdmFsdWUgaGF2aW5nIHRoZSBmb3JtIFsg
4oCTIF1kZGRkLmRkZGQsIHdoZXJlIGRkZGQgaXMgb25lIG9yIG1vcmUgZGVjaW1hbCBkaWdpdHMu
CiAgICAgLy8gVGhlIG51bWJlciBvZiBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGRl
cGVuZHMgb24gdGhlIG1hZ25pdHVkZSBvZiB0aGUgbnVtYmVyLCBhbmQKICAgICAvLyB0aGUgbnVt
YmVyIG9mIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBkZXBlbmRzIG9uIHRoZSByZXF1
ZXN0ZWQgcHJlY2lzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBh
OGE0ODA2N2MwZGM2NzdkZTk1YjBmNjM1NTUyOThkMjM1Mjk1MDYwLi5hMmVlYjUyNGE5NDI1YWRh
MTk3MmI1MGE4YzZhNTZiOGVjYjY3ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZ0lu
bGluZXMuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CiAj
aW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVz
cGFjZSBKU0M7CkBAIC0xODQ0LDcgKzE4NDUsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmFkZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQog
ICAgICAgICB9CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGEgZmlsZSBmb3Ig
dGhpcyBibG9iVVJMLCBzbyBjb21taXQgb3VyIGZpbGUgYXMgYSB1bmlxdWUgZmlsZW5hbWUKLSAg
ICAgICAgU3RyaW5nIHN0b3JlZEZpbGVuYW1lID0gU3RyaW5nOjpmb3JtYXQoIiUiIFBSSWQ2NCAi
LmJsb2IiLCBwb3RlbnRpYWxGaWxlTmFtZUludGVnZXIpOworICAgICAgICBTdHJpbmcgc3RvcmVk
RmlsZW5hbWUgPSBtYWtlU3RyaW5nKHBvdGVudGlhbEZpbGVOYW1lSW50ZWdlciwgIi5ibG9iIik7
CiAgICAgICAgIHsKICAgICAgICAgICAgIGF1dG8qIHNxbCA9IGNhY2hlZFN0YXRlbWVudChTUUw6
OkFkZEJsb2JGaWxlbmFtZSwgIklOU0VSVCBJTlRPIEJsb2JGaWxlcyBWQUxVRVMgKD8sID8pOyJf
cyk7CiAgICAgICAgICAgICBpZiAoIXNxbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwCmluZGV4IDBkM2UzMzg4
ZjhmMjcyYjFkZmMzNTU2Njk5YTViZDg4YzlkNDY0MzEuLjBlNmQ5Y2RlYjFmZTFiN2Q3OTA5ZWVj
NjVjNTNlMjgzNmYyNDQzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5jcHAKQEAgLTMxLDYgKzMxLDcgQEAK
ICNpbmNsdWRlICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAj
aW5jbHVkZSAiSW5kZXhlZERCLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTAwLDEzICsxMDEsMTUg
QEAgSURCQ3Vyc29ySW5mbyBJREJDdXJzb3JJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogfQog
CiAjaWYgIUxPR19ESVNBQkxFRAorCiBTdHJpbmcgSURCQ3Vyc29ySW5mbzo6bG9nZ2luZ1N0cmlu
ZygpIGNvbnN0CiB7CiAgICAgaWYgKG1fc291cmNlID09IEluZGV4ZWREQjo6Q3Vyc29yU291cmNl
OjpJbmRleCkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8Q3JzcjogJXMgSWR4ICUi
IFBSSXU2NCAiLCBPUyAlIiBQUkl1NjQgIiwgdHggJXM+IiwgbV9jdXJzb3JJZGVudGlmaWVyLmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX3NvdXJjZUlkZW50aWZpZXIsIG1fb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBtX3RyYW5zYWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCI8Q3JzcjogIiwgbV9j
dXJzb3JJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgIiBJZHggIiwgbV9zb3VyY2VJZGVudGlm
aWVyLCAiLCBPUyAiLCBtX29iamVjdFN0b3JlSWRlbnRpZmllciwgIiwgdHggIiwgbV90cmFuc2Fj
dGlvbklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLCAnPicpOwogCi0gICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCI8Q3JzcjogJXMgT1MgJSIgUFJJdTY0ICIsIHR4ICVzPiIsIG1fY3Vyc29ySWRl
bnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9vYmplY3RTdG9yZUlkZW50
aWZpZXIsIG1fdHJhbnNhY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0
YSgpKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPENyc3I6ICIsIG1fY3Vyc29ySWRlbnRpZmll
ci5sb2dnaW5nU3RyaW5nKCksICIgT1MgIiwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIsICIsIHR4
ICIsIG1fdHJhbnNhY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKIH0KKwog
I2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0Rh
dGEuY3BwCmluZGV4IDkyYjZiOTIzZGM4ZmU5Mjg3MWY3ZGJiZDllNzA0MzUwMzJhNTlkMWIuLmM5
ODVkNzQ2Njg3ZjI0NDIxZmZlYTFiMmQ0Mjg4ZGY2Y2Q3NTc3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFs
bFJlY29yZHNEYXRhLmNwcApAQCAtMzgsMTIgKzM4LDE0IEBAIElEQkdldEFsbFJlY29yZHNEYXRh
IElEQkdldEFsbFJlY29yZHNEYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAjaWYgIUxP
R19ESVNBQkxFRAorCiBTdHJpbmcgSURCR2V0QWxsUmVjb3Jkc0RhdGE6OmxvZ2dpbmdTdHJpbmco
KSBjb25zdAogewogICAgIGlmIChpbmRleElkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBTdHJp
bmc6OmZvcm1hdCgiPEdldEFsbFJlY29yZHM6IElkeCAlIiBQUkl1NjQgIiwgT1MgJSIgUFJJdTY0
ICIsICVzLCByYW5nZSAlcz4iLCBpbmRleElkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgZ2V0QWxsVHlwZSA9PSBJbmRleGVkREI6OkdldEFsbFR5cGU6OktleXMgPyAiS2V5cyIgOiAi
VmFsdWVzIiwga2V5UmFuZ2VEYXRhLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAg
ICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjxHZXRBbGxSZWNvcmRzOiBPUyAlIiBQUkl1NjQgIiwg
JXMsIHJhbmdlICVzPiIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgZ2V0QWxsVHlwZSA9PSBJbmRl
eGVkREI6OkdldEFsbFR5cGU6OktleXMgPyAiS2V5cyIgOiAiVmFsdWVzIiwga2V5UmFuZ2VEYXRh
LmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJp
bmcoIjxHZXRBbGxSZWNvcmRzOiBJZHggIiwgaW5kZXhJZGVudGlmaWVyLCAiLCBPUyAiLCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsICIsICIsIGdldEFsbFR5cGUgPT0gSW5kZXhlZERCOjpHZXRBbGxU
eXBlOjpLZXlzID8gIktleXMiIDogIlZhbHVlcyIsICIsIHJhbmdlICIsIGtleVJhbmdlRGF0YS5s
b2dnaW5nU3RyaW5nKCksICc+Jyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxHZXRBbGxSZWNv
cmRzOiBPUyAiLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsICIsICIsIGdldEFsbFR5cGUgPT0gSW5k
ZXhlZERCOjpHZXRBbGxUeXBlOjpLZXlzID8gIktleXMiIDogIlZhbHVlcyIsICIsIHJhbmdlICIs
IGtleVJhbmdlRGF0YS5sb2dnaW5nU3RyaW5nKCksICc+Jyk7CiB9CisKICNlbmRpZgogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAKaW5kZXggZDc4OTYyNjA0
NzI5NmVkM2QxODY2NmNkZTM4ZGRiZWRhZDdmOGQ3OC4uNDYzNDZkYzM0OTI5YmRjY2YwMjYwNjQ2
YjA3MjJmZTU1ZWVjMjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkdldFJlY29yZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcApAQCAtMzgsMTAgKzM4
LDEyIEBAIElEQkdldFJlY29yZERhdGEgSURCR2V0UmVjb3JkRGF0YTo6aXNvbGF0ZWRDb3B5KCkg
Y29uc3QKIH0KIAogI2lmICFMT0dfRElTQUJMRUQKKwogU3RyaW5nIElEQkdldFJlY29yZERhdGE6
OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiPEdl
dFJlY29yZDogJXMgJXM+IiwgdHlwZSA9PSBJREJHZXRSZWNvcmREYXRhVHlwZTo6S2V5T25seSA/
ICJLZXlPbmx5IiA6ICJLZXkrVmFsdWUiLCBrZXlSYW5nZURhdGEubG9nZ2luZ1N0cmluZygpLnV0
ZjgoKS5kYXRhKCkpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8R2V0UmVjb3JkOiAiLCB0eXBl
ID09IElEQkdldFJlY29yZERhdGFUeXBlOjpLZXlPbmx5ID8gIktleU9ubHkiIDogIktleStWYWx1
ZSIsICcgJywga2V5UmFuZ2VEYXRhLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKIH0KKwogI2VuZGlm
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKaW5kZXggMjcyOTBmNGE0
YTU0ZDhkZWQ5YmY0Yjc3MWU5OTU5Nzg5ZDY0YWJiMC4uMTJjNWU2ZjJiNWM5YzcyYTYyY2YyMGNi
ZTA3NGY5NDRhZWNkNzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAog
I2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSURCSW5kZXhJ
bmZvOjpJREJJbmRleEluZm8oKQpAQCAtNTAsMTkgKzUyLDIwIEBAIElEQkluZGV4SW5mbyBJREJJ
bmRleEluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECisK
IFN0cmluZyBJREJJbmRleEluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QKIHsK
ICAgICBTdHJpbmcgaW5kZW50U3RyaW5nOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50
OyArK2kpCiAgICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoIiAiKTsKLQotICAgIHJldHVybiBt
YWtlU3RyaW5nKGluZGVudFN0cmluZywgIkluZGV4OiAiLCBtX25hbWUsIFN0cmluZzo6Zm9ybWF0
KCIgKCUiIFBSSXU2NCAiKSBrZXlQYXRoOiAlc1xuIiwgbV9pZGVudGlmaWVyLCBXZWJDb3JlOjps
b2dnaW5nU3RyaW5nKG1fa2V5UGF0aCkudXRmOCgpLmRhdGEoKSkpOworICAgIHJldHVybiBtYWtl
U3RyaW5nKGluZGVudFN0cmluZywgIkluZGV4OiAiLCBtX25hbWUsICIgKCIsIG1faWRlbnRpZmll
ciwgIikga2V5UGF0aDogIiwgV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyhtX2tleVBhdGgpLCAnXG4n
KTsKIH0KIAogU3RyaW5nIElEQkluZGV4SW5mbzo6Y29uZGVuc2VkTG9nZ2luZ1N0cmluZygpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8SWR4OiAlcyAoJSIgUFJJdTY0ICIp
LCBPUyAoJSIgUFJJdTY0ICIpPiIsIG1fbmFtZS51dGY4KCkuZGF0YSgpLCBtX2lkZW50aWZpZXIs
IG1fb2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPElkeDog
IiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIpLCBPUyAoIiwgbV9vYmplY3RTdG9yZUlk
ZW50aWZpZXIsICIpPiIpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0
ZXJhdGVDdXJzb3JEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5jcHAKaW5kZXggZmFhZWRhOWZlYmU3NDA0ZjQ2NDcz
MzQ5ZTAxYjAzMGY5NWU3OTM1MC4uOGEzYjQ3MDQ1YTEwMjEwMWE2NTg0ODVjZDViZWU2ZDNlMThh
OGFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwCkBAIC0zOCw3ICszOCw3IEBA
IElEQkl0ZXJhdGVDdXJzb3JEYXRhIElEQkl0ZXJhdGVDdXJzb3JEYXRhOjppc29sYXRlZENvcHko
KSBjb25zdAogI2lmICFMT0dfRElTQUJMRUQKIFN0cmluZyBJREJJdGVyYXRlQ3Vyc29yRGF0YTo6
bG9nZ2luZ1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8SXRy
OENyc3I6IGtleSAlcywgcHJpbWFyeUtleSAlcywgY291bnQgJXU+Iiwga2V5RGF0YS5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcHJpbWFyeUtleURhdGEubG9nZ2luZ1N0cmluZygpLnV0
ZjgoKS5kYXRhKCksIGNvdW50KTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPEl0cjhDcnNyOiBr
ZXkgIiwga2V5RGF0YS5sb2dnaW5nU3RyaW5nKCksICIsIHByaW1hcnlLZXkgIiwgcHJpbWFyeUtl
eURhdGEubG9nZ2luZ1N0cmluZygpLCAiLCBjb3VudCAiLCBjb3VudCwgJz4nKTsKIH0KICNlbmRp
ZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCT2JqZWN0U3RvcmVJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCmluZGV4IGIwMDc1ZmUzNzgyOTc2YTZjNTAw
ZDM3MWExMzk5ODdhZjY4MTY0OWEuLmNlNjYzY2U5MjdjMGUxNWRmYmY4MTBiZjRmMTliOGFkMGM2
ZTY2YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAg
U3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25z
dAogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpjb25kZW5zZWRMb2dnaW5nU3RyaW5nKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjxPUzogJXMgKCUiIFBSSXU2NCAi
KT4iLCBtX25hbWUudXRmOCgpLmRhdGEoKSwgbV9pZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbWFr
ZVN0cmluZygiPE9TOiAiLCBtX25hbWUsICIgKCIsIG1faWRlbnRpZmllciwgIik+Iik7CiB9CiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcAppbmRleCBkN2UzZjE3NDJk
MzBmZGQ0NWJiZTViZmM4ZjFjZWY4NDg3ODIzOTlmLi40YTJhYmNhZDBkODlmYTRiMWJlNmU3ZGI2
NGQzOTc5ZGRiMjc5ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcApAQCAt
OTgsMTEgKzk4LDE0IEBAIGJvb2wgSURCUmVzb3VyY2VJZGVudGlmaWVyOjppc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSgpIGNvbnN0CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJREJS
ZXNvdXJjZUlkZW50aWZpZXI6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiPCUiIFBSSXU2NCIsICUiIFBSSXU2NCI+IiwgbV9pZGJDb25uZWN0aW9u
SWRlbnRpZmllciwgbV9yZXNvdXJjZU51bWJlcik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoJzwn
LCBtX2lkYkNvbm5lY3Rpb25JZGVudGlmaWVyLCAiLCAiLCBtX3Jlc291cmNlTnVtYmVyLCAnPicp
OwogfQorCiAjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IGVjOWIwNWY5ZTZlZWU0NjkzMjU3ZDNiOTkwZjAwYmQ2
YjczY2Y1MGEuLjg3MzE0M2M3YzQzOTZiY2U2Nzg0OTdiN2QxOWZiZDVmOWJmOWE1YWMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0x
MDcsNyArMTA3LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGZ1bGx5UXVhbGlmaWVkSW5mb1RhYmxl
TmFtZSgpCiAKIHN0YXRpYyBTdHJpbmcgZm9ybWF0RXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1l
c3NhZ2UsIGludCBzcWxpdGVFcnJvckNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZUVycm9yTWVzc2Fn
ZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVzICglZCAlcykiLCBtZXNzYWdlLCBz
cWxpdGVFcnJvckNvZGUsIHNxbGl0ZUVycm9yTWVzc2FnZSk7CisgICAgcmV0dXJuIG1ha2VTdHJp
bmcobWVzc2FnZSwgIiAoIiwgc3FsaXRlRXJyb3JDb2RlLCAnICcsIHNxbGl0ZUVycm9yTWVzc2Fn
ZSwgJyknKTsKIH0KIAogc3RhdGljIGJvb2wgc2V0VGV4dFZhbHVlSW5EYXRhYmFzZShTUUxpdGVE
YXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYgcXVlcnksIGNvbnN0IFN0cmluZyYgdmFsdWUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgKaW5kZXggNGUy
NzZjYTc4ZmM5NWQ3NTljYWQzMGRlYWQwN2FkNmExNzhlNzMyNi4uNmIwNzJiYmI0MjdhODliYmZm
M2FhMDQwMDNhOWZlNzFlZDgyOTI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvU1FMRXJyb3IuaApAQCAtMjksNyArMjksNyBAQAogI3ByYWdtYSBvbmNlCiAKICNp
bmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zOCwxMSArMzgsMTEgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2Fn
ZSkpOyB9CiAgICAgc3RhdGljIFJlZjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNv
bnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJu
IGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZvcm1hdCgiJXMgKCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNv
ZGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBtYWtlU3RyaW5nKG1lc3NhZ2UsICIg
KCIsIHNxbGl0ZUNvZGUsICcpJykpOwogICAgIH0KICAgICBzdGF0aWMgUmVmPFNRTEVycm9yPiBj
cmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUs
IGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2UpCiAgICAgewotICAgICAgICByZXR1cm4gY3JlYXRl
KGNvZGUsIFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwg
c3FsaXRlTWVzc2FnZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIG1ha2VTdHJpbmco
bWVzc2FnZSwgIiAoIiwgc3FsaXRlQ29kZSwgJyAnLCBzcWxpdGVNZXNzYWdlLCAnKScpKTsKICAg
ICB9CiAKICAgICB1bnNpZ25lZCBjb2RlKCkgY29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL0ZpbGVTaXplRm9ybWF0dGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvRmlsZVNpemVGb3JtYXR0ZXIuY3BwCmluZGV4IDZhZjY1MTI3
YjRhZDgzOTNjNTRmYTBhMjA1MDk2NTFkYzY0NDhlNjQuLmM4MmRlYzg2ZWNlZGQ0NGQzYzcwOWU1
MzkwZjVhNGI0ZDg4ZGVkYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvRmls
ZVNpemVGb3JtYXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvRmlsZVNpemVG
b3JtYXR0ZXIuY3BwCkBAIC0zMyw3ICszMyw3IEBAIFN0cmluZyBmaWxlU2l6ZURlc2NyaXB0aW9u
KHVpbnQ2NF90IHNpemUpCiAgICAgLy8gRklYTUU6IFRoZXNlIHN0cmluZ3Mgc2hvdWxkIGJlIGxv
Y2FsaXplZCwgYnV0IHRoYXQgd291bGQgcmVxdWlyZSBicmluZ2luZyBMb2NhbGl6ZWRTdHJpbmdz
IGludG8gUEFMLgogICAgIC8vIFNlZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE3OTAxOT4gZm9yIG1vcmUgZGV0YWlscy4KICAgICBpZiAoc2l6ZSA8IDEwMDApCi0g
ICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJXR1IGJ5dGVzIiwgc2l6ZSk7CisgICAgICAg
IHJldHVybiBtYWtlU3RyaW5nKHNpemUsICIgYnl0ZXMiKTsKICAgICBpZiAoc2l6ZSA8IDEwMDAw
MDApCiAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJS4xZiBLQiIsIHNpemUgLyAxMDAw
Lik7CiAgICAgaWYgKHNpemUgPCAxMDAwMDAwMDAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCAxMjJjNTBmMWZkMTZlNTM4
YmI0NDc4ZDExY2Q5ZDNkNDg3ZjRjZTdhLi5hOTM0NTNhYWZmNDQ2YjJhMjcwZmQ4NWE5ODA1MTJm
ZWUyOWY3NzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDU1Nyw3ICs0NTU3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAg
IGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpXG4iKTsKLSAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
IFN0cmluZzo6Zm9ybWF0KFwidXJsICVzXCIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpO1xuIik7CisgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBc
InVybCBcIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9D
U1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCmluZGV4IGFlOTQ4NjRjZTEzYjkzZDI4NjgxNDcz
MGI0ZDgxYjBmMjMxOTNmZTcuLjZjMTY2OGNhNDcyY2Y4NWJhODkwNDQwZDk5YWE3NWZlODFhODBj
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5
UGFyc2VySGVscGVycy5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZVBv
b2wuaCIKICNpbmNsdWRlICJQYWlyLmgiCiAjaW5jbHVkZSAiU3R5bGVDb2xvci5oIgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTY0MSw5ICs2NDIsOSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VIZXhDb2xvcihD
U1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwgYm9vbCBhY2NlcHRRdWlya3lDb2xvcnMpCiAgICAg
ICAgICAgICAgICAgfHwgdG9rZW4ubnVtZXJpY1ZhbHVlKCkgPCAwLiB8fCB0b2tlbi5udW1lcmlj
VmFsdWUoKSA+PSAxMDAwMDAwLikKICAgICAgICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKICAg
ICAgICAgICAgIGlmICh0b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4pIC8vIGUuZy4gMTEyMjMz
Ci0gICAgICAgICAgICAgICAgY29sb3IgPSBTdHJpbmc6OmZvcm1hdCgiJWQiLCBzdGF0aWNfY2Fz
dDxpbnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgY29sb3IgPSBT
dHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDxpbnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSk7CiAg
ICAgICAgICAgICBlbHNlIC8vIGUuZy4gMDAwMUZGCi0gICAgICAgICAgICAgICAgY29sb3IgPSBT
dHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDxpbnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSkgKyB0
b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCk7CisgICAgICAgICAgICAgICAgY29sb3IgPSBtYWtlU3Ry
aW5nKHN0YXRpY19jYXN0PGludD4odG9rZW4ubnVtZXJpY1ZhbHVlKCkpLCB0b2tlbi52YWx1ZSgp
LnRvU3RyaW5nKCkpOwogICAgICAgICAgICAgd2hpbGUgKGNvbG9yLmxlbmd0aCgpIDwgNikKICAg
ICAgICAgICAgICAgICBjb2xvciA9ICIwIiArIGNvbG9yOwogICAgICAgICB9IGVsc2UgaWYgKHRv
a2VuLnR5cGUoKSA9PSBJZGVudFRva2VuKSB7IC8vIGUuZy4gRkYwMDAwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IDdhMjMzNDJhOGNkOWZlNDYxZDFiZWY5
NDk5NzY3M2VhYmM2Mzk1MTAuLmMxNzQwYjc3NDc3Y2YyM2NiODY0MDZiZDRkNjU0MjY0ZTkxYTFj
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC01NSw2
ICs1NSw3IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdh
dGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNDU4LDcgKzQ1OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxTZWxlY3RFbGVtZW50
OjpzZXRJdGVtKHVuc2lnbmVkIGluZGV4LCBIVE1MT3B0aW9uRWxlbWVudCoKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuZ3RoKQog
ewogICAgIGlmIChuZXdMZW5ndGggPiBsZW5ndGgoKSAmJiBuZXdMZW5ndGggPiBtYXhTZWxlY3RJ
dGVtcykgewotICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIFN0cmluZzo6Zm9ybWF0KCJCbG9ja2Vk
IGF0dGVtcHQgdG8gZXhwYW5kIHRoZSBvcHRpb24gbGlzdCB0byAldSBpdGVtcy4gVGhlIG1heGlt
dW0gbnVtYmVyIG9mIGl0ZW1zIGFsbG93ZWQgaXMgJXUuIiwgbmV3TGVuZ3RoLCBtYXhTZWxlY3RJ
dGVtcykpOworICAgICAgICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkJsb2NrZWQgYXR0
ZW1wdCB0byBleHBhbmQgdGhlIG9wdGlvbiBsaXN0IHRvICIsIG5ld0xlbmd0aCwgIiBpdGVtcy4g
VGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGFsbG93ZWQgaXMgIiwgbWF4U2VsZWN0SXRlbXMs
ICcuJykpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEb2N1bWVudC5jcHAKaW5kZXggOGVjY2E3MDljMTBkMWQzNjM3ZmJkNTNlYzM5OTBiZGM4N2Jl
MjZhZi4uZjQyOTIyMzJlOWRjMjJkNzI5YWI1OTUwODk2YWI4Njg4MzgwYTJmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAi
UmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0lz
b01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51
bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNzMsNyArMjc0LDcgQEAgdm9p
ZCBJbWFnZURvY3VtZW50OjppbWFnZVVwZGF0ZWQoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CiAgICAgICAgIEZsb2F0U2l6ZSBzY3JlZW5TaXplID0gcGFnZSgpLT5jaHJvbWUoKS5zY3JlZW5T
aXplKCk7CiAgICAgICAgIGlmIChpbWFnZVNpemUud2lkdGgoKSA+IHNjcmVlblNpemUud2lkdGgo
KSkKLSAgICAgICAgICAgIHByb2Nlc3NWaWV3cG9ydChTdHJpbmc6OmZvcm1hdCgid2lkdGg9JXUs
dmlld3BvcnQtZml0PWNvdmVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGltYWdlU2l6ZS53aWR0
aCgpLnRvSW50KCkpKSwgVmlld3BvcnRBcmd1bWVudHM6OkltYWdlRG9jdW1lbnQpOworICAgICAg
ICAgICAgcHJvY2Vzc1ZpZXdwb3J0KG1ha2VTdHJpbmcoIndpZHRoPSIsIGltYWdlU2l6ZS53aWR0
aCgpLnRvSW50KCksICIsdmlld3BvcnQtZml0PWNvdmVyIiksIFZpZXdwb3J0QXJndW1lbnRzOjpJ
bWFnZURvY3VtZW50KTsKIAogICAgICAgICBpZiAocGFnZSgpKQogICAgICAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS5jbGllbnQoKS5pbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKEludFNp
emUoaW1hZ2VTaXplLndpZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAppbmRleCBkNjM1NzQ3YzFmMDYzMmFlMzQ1ZDY1
ZGQxYTVlNTMwZmVlNzBhZGVjLi44NDRlMjYyMzI0YjNkZTQ5ZTYzZjZkMTA3MDVlN2JjMGJiZDBm
MmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtNDUs
NyArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL01h
aW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzMyLDcgKzMzMiw3IEBA
IHZvaWQgWFNTQXVkaXRvcjo6aW5pdChEb2N1bWVudCogZG9jdW1lbnQsIFhTU0F1ZGl0b3JEZWxl
Z2F0ZSogYXVkaXRvckRlbGVnYXRlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAg
IGlmIChtX3hzc1Byb3RlY3Rpb24gPT0gWFNTUHJvdGVjdGlvbkRpc3Bvc2l0aW9uOjpJbnZhbGlk
KSB7Ci0gICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJj
ZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6RXJyb3IsICJFcnJvciBwYXJzaW5nIGhlYWRlciBY
LVhTUy1Qcm90ZWN0aW9uOiAiICsgaGVhZGVyVmFsdWUgKyAiOiAiICArIGVycm9yRGV0YWlscyAr
ICIgYXQgY2hhcmFjdGVyIHBvc2l0aW9uICIgKyBTdHJpbmc6OmZvcm1hdCgiJXUiLCBlcnJvclBv
c2l0aW9uKSArICIuIFRoZSBkZWZhdWx0IHByb3RlY3Rpb25zIHdpbGwgYmUgYXBwbGllZC4iKTsK
KyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpT
ZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiRXJyb3IgcGFyc2luZyBo
ZWFkZXIgWC1YU1MtUHJvdGVjdGlvbjogIiwgaGVhZGVyVmFsdWUsICI6ICIsIGVycm9yRGV0YWls
cywgIiBhdCBjaGFyYWN0ZXIgcG9zaXRpb24gIiwgZXJyb3JQb3NpdGlvbiwgIi4gVGhlIGRlZmF1
bHQgcHJvdGVjdGlvbnMgd2lsbCBiZSBhcHBsaWVkLiIpKTsKICAgICAgICAgICAgIG1feHNzUHJv
dGVjdGlvbiA9IFhTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbjo6RW5hYmxlZDsKICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbC5jcHAKaW5kZXggOGUxYzQ4MjlkZmY1YmVhYzFkNmZjMDMyMDljZWJmZDBj
NDUwNTc3NC4uN2M4MTg5YWQ2Yjk5MDFmMzc4YzI5MjA1YTc4ZmVmNzdjOWRjMTM5MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9j
YWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsLmNwcApAQCAtMjA1LDcgKzIwNSw3IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6Y2FuQXR0YWNoV2luZG93KCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENs
aWVudExvY2FsOjpzZXREb2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJsZSkKIHsKLSAg
ICBldmFsdWF0ZU9uTG9hZChTdHJpbmc6OmZvcm1hdCgiW1wic2V0RG9ja2luZ1VuYXZhaWxhYmxl
XCIsICVzXSIsIHVuYXZhaWxhYmxlID8gInRydWUiIDogImZhbHNlIikpOworICAgIGV2YWx1YXRl
T25Mb2FkKG1ha2VTdHJpbmcoIltcInNldERvY2tpbmdVbmF2YWlsYWJsZVwiLCAiLCB1bmF2YWls
YWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIsICddJykpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdo
dCkKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNldEF0dGFjaGVkV2luZG93KERvY2tTaWRlIGRvY2tTaWRlKQogCiAgICAgbV9kb2NrU2lkZSA9
IGRvY2tTaWRlOwogCi0gICAgZXZhbHVhdGVPbkxvYWQoU3RyaW5nOjpmb3JtYXQoIltcInNldERv
Y2tTaWRlXCIsIFwiJXNcIl0iLCBzaWRlKSk7CisgICAgZXZhbHVhdGVPbkxvYWQobWFrZVN0cmlu
ZygiW1wic2V0RG9ja1NpZGVcIiwgXCIiLCBzaWRlLCAiXCJdIikpOwogfQogCiB2b2lkIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnJlc3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgpCkBA
IC0yOTQsNyArMjk0LDcgQEAgYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc0Rl
YnVnZ2luZ0VuYWJsZWQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNl
dERlYnVnZ2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGV2YWx1YXRlT25Mb2FkKFN0
cmluZzo6Zm9ybWF0KCJbXCJzZXREZWJ1Z2dpbmdFbmFibGVkXCIsICVzXSIsIGVuYWJsZWQgPyAi
dHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgZXZhbHVhdGVPbkxvYWQobWFrZVN0cmluZygiW1wic2V0
RGVidWdnaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7
CiB9CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2Zp
bGluZ0VuYWJsZWQoKQpAQCAtMzA2LDcgKzMwNiw3IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoKQogCiB2b2lkIEluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVu
YWJsZWQpCiB7Ci0gICAgZXZhbHVhdGVPbkxvYWQoU3RyaW5nOjpmb3JtYXQoIltcInNldFRpbWVs
aW5lUHJvZmlsaW5nRW5hYmxlZFwiLCAlc10iLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIikp
OworICAgIGV2YWx1YXRlT25Mb2FkKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJvZmlsaW5n
RW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CiB9CiAKIGJv
b2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNQcm9maWxpbmdKYXZhU2NyaXB0KCkK
QEAgLTMzOSw3ICszMzksNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNo
b3dSZXNvdXJjZXMoKQogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93TWFp
blJlc291cmNlRm9yRnJhbWUoRnJhbWUqIGZyYW1lKQogewogICAgIFN0cmluZyBmcmFtZUlkID0g
bV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+cGFnZUFnZW50KCktPmZyYW1lSWQoZnJhbWUpOwot
ICAgIGV2YWx1YXRlT25Mb2FkKFN0cmluZzo6Zm9ybWF0KCJbXCJzaG93TWFpblJlc291cmNlRm9y
RnJhbWVcIiwgXCIlc1wiXSIsIGZyYW1lSWQuYXNjaWkoKS5kYXRhKCkpKTsKKyAgICBldmFsdWF0
ZU9uTG9hZChtYWtlU3RyaW5nKCJbXCJzaG93TWFpblJlc291cmNlRm9yRnJhbWVcIiwgXCIiLCBm
cmFtZUlkLCAiXCJdIikpOwogfQogCiB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpjb25zdHJhaW5lZEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhl
aWdodCwgdW5zaWduZWQgdG90YWxXaW5kb3dIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDVhM2E0YjJi
OGE1YzFkYTcyNGU4OWY0M2FiNGM4OGRjNmYwY2U0OGIuLjM0ZDg0MDNiODIxZmVlYWUzYjQxNWRk
OWIwYWJiYTZmZTBhMzc3NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgcHJpdmF0
ZToKIAogICAgIFN0cmluZyBtZXJnZUlkKCkgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBT
dHJpbmc6OmZvcm1hdCgiU2V0U3R5bGVTaGVldFRleHQgJXMiLCBtX3N0eWxlU2hlZXQtPmlkKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiAiU2V0U3R5bGVTaGVldFRleHQgIiArIG1f
c3R5bGVTaGVldC0+aWQoKTsKICAgICB9CiAKICAgICB2b2lkIG1lcmdlKHN0ZDo6dW5pcXVlX3B0
cjxBY3Rpb24+IGFjdGlvbikgb3ZlcnJpZGUKQEAgLTE5OCw3ICsxOTgsNyBAQCBwdWJsaWM6CiAg
ICAgU3RyaW5nIG1lcmdlSWQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc3R5
bGVTaGVldC0+aWQoKSA9PSBtX2Nzc0lkLnN0eWxlU2hlZXRJZCgpKTsKLSAgICAgICAgcmV0dXJu
IFN0cmluZzo6Zm9ybWF0KCJTZXRTdHlsZVRleHQgJXM6JXUiLCBtX3N0eWxlU2hlZXQtPmlkKCku
dXRmOCgpLmRhdGEoKSwgbV9jc3NJZC5vcmRpbmFsKCkpOworICAgICAgICByZXR1cm4gbWFrZVN0
cmluZygiU2V0U3R5bGVUZXh0ICIsIG1fc3R5bGVTaGVldC0+aWQoKSwgJzonLCBtX2Nzc0lkLm9y
ZGluYWwoKSk7CiAgICAgfQogCiAgICAgdm9pZCBtZXJnZShzdGQ6OnVuaXF1ZV9wdHI8QWN0aW9u
PiBhY3Rpb24pIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IGFlM2FjYWZkMDkw
YjBhYzE1YzdlZmQ2ZmViODk1OTQ2NDhkODk5NTAuLjgwNjRhZmZlNmE3NDAzYTMyM2RiMGVhZjg0
N2FjNzJmMGVjMDJhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2Vu
dHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC02OCw2ICs2OCw3IEBA
CiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95
ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5n
Q29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIHVzaW5nIEpTT046OkFycmF5T2Y7CiB1c2luZyBJbnNw
ZWN0b3I6OlByb3RvY29sOjpJbmRleGVkREI6OkRhdGFiYXNlV2l0aE9iamVjdFN0b3JlczsKQEAg
LTcxMSw3ICs3MTIsNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGlkYk9i
amVjdFN0b3JlLT5jbGVhcigqZXhlYyk7CiAgICAgICAgICAgICBBU1NFUlQoIXJlc3VsdC5oYXNF
eGNlcHRpb24oKSk7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0g
ICAgICAgICAgICAgICAgbV9yZXF1ZXN0Q2FsbGJhY2stPnNlbmRGYWlsdXJlKFN0cmluZzo6Zm9y
bWF0KCJDb3VsZCBub3QgY2xlYXIgb2JqZWN0IHN0b3JlICclcyc6ICVkIiwgbV9vYmplY3RTdG9y
ZU5hbWUudXRmOCgpLmRhdGEoKSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpKTsK
KyAgICAgICAgICAgICAgICBtX3JlcXVlc3RDYWxsYmFjay0+c2VuZEZhaWx1cmUobWFrZVN0cmlu
ZygiQ291bGQgbm90IGNsZWFyIG9iamVjdCBzdG9yZSAnIiwgbV9vYmplY3RTdG9yZU5hbWUsICIn
OiAiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKSkp
OwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlk
YlJlcXVlc3QgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9N
ZW1vcnlSZWxlYXNlLmNwcAppbmRleCAwOGYwNGE0NmRjYmNmZDQyMmQzOTgzZmIwYTNiNTVmMzgz
N2EwOTNiLi4xZjVmNjMzMDg0MzNlZWEwZWVjMThiNDk3NTY3ZDk2M2QxMWNlMjk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIGxv
Z01lbW9yeVN0YXRpc3RpY3NBdFRpbWVPZkRlYXRoKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBTdHJpbmcgdGFnTmFtZSA9IGRpc3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAg
IGlmICghdGFnTmFtZSkKLSAgICAgICAgICAgIHRhZ05hbWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFn
ICV1IiwgaSk7CisgICAgICAgICAgICB0YWdOYW1lID0gbWFrZVN0cmluZygiVGFnICIsIGkpOwog
ICAgICAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3VyZSwgIiUxNnM6ICVsdSBNQiIsIHRhZ05h
bWUubGF0aW4xKCkuZGF0YSgpLCBkaXJ0eSAvIE1CKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5t
bQppbmRleCBlMDNlMDZmNTFiNjI1NTg4MjAyYzA2MjhhNmNhZTBhMDc1NGYyZDlkLi4wY2I1YzM1
MzI3YjFkMjk3ZDA0ODk0MmExOWZhYTUwMGU2Zjc0MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC00MzEs
NyArNDMxLDcgQEAgc3RhdGljIFN0cmluZyBmb3JtYXRCeXRlTnVtYmVyKHNpemVfdCBudW1iZXIp
CiAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiJS4yZiBNQiIsIHN0YXRpY19jYXN0PGRv
dWJsZT4obnVtYmVyKSAvIDEwNDg1NzYpOwogICAgIGlmIChudW1iZXIgPj0gMTAyNCkKICAgICAg
ICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlLjFmIGtCIiwgc3RhdGljX2Nhc3Q8ZG91YmxlPihu
dW1iZXIpIC8gMTAyNCk7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlbHUiLCBudW1iZXIp
OworICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihudW1iZXIpOwogfQogCiBzdGF0aWMgU3RyaW5n
IGdjVGltZXJTdHJpbmcoTW9ub3RvbmljVGltZSB0aW1lckZpcmVEYXRlLCBNb25vdG9uaWNUaW1l
IG5vdykKQEAgLTQ2OSw5ICs0NjksOSBAQCB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5OjpwbGF0
Zm9ybURyYXcoQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAgICAgICAgIAogICAgICAgICBTdHJpbmcg
bGFiZWwgPSBTdHJpbmc6OmZvcm1hdCgiJSAxMXM6ICVzIiwgY2F0ZWdvcnkubmFtZS5hc2NpaSgp
LmRhdGEoKSwgZm9ybWF0Qnl0ZU51bWJlcihkaXJ0eSkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAg
ICBpZiAoZXh0ZXJuYWwpCi0gICAgICAgICAgICBsYWJlbCA9IGxhYmVsICsgU3RyaW5nOjpmb3Jt
YXQoIiArICVzIiwgZm9ybWF0Qnl0ZU51bWJlcihleHRlcm5hbCkuYXNjaWkoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCArIG1ha2VTdHJpbmcoIiArICIsIGZvcm1hdEJ5dGVO
dW1iZXIoZXh0ZXJuYWwpKTsKICAgICAgICAgaWYgKHJlY2xhaW1hYmxlKQotICAgICAgICAgICAg
bGFiZWwgPSBsYWJlbCArIFN0cmluZzo6Zm9ybWF0KCIgWyVzXSIsIGZvcm1hdEJ5dGVOdW1iZXIo
cmVjbGFpbWFibGUpLmFzY2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGxhYmVsID0gbGFiZWwg
KyBtYWtlU3RyaW5nKCIgWyIsIGZvcm1hdEJ5dGVOdW1iZXIocmVjbGFpbWFibGUpLCAnXScpOwog
CiAgICAgICAgIC8vIEZJWE1FOiBTaG93IHNpemUvY2FwYWNpdHkgb2YgR0MgaGVhcC4KICAgICAg
ICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHksIGNhdGVnb3J5LmNvbG9yLmdldCgpLCBsYWJlbCk7
CkBAIC00ODAsOCArNDgwLDggQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1E
cmF3KENHQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHkgLT0gNTsKIAogICAgIE1vbm90b25pY1Rp
bWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0gICAgc2hvd1RleHQoY29udGV4dCwgMTAs
IHkgKyAxMCwgY29sb3JGb3JMYWJlbHMsIFN0cmluZzo6Zm9ybWF0KCIgICAgRWRlbiBHQzogJXMi
LCBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEVkZW5Db2xsZWN0aW9uLCBub3cpLmFzY2lp
KCkuZGF0YSgpKSk7Ci0gICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAyMCwgY29sb3JGb3JM
YWJlbHMsIFN0cmluZzo6Zm9ybWF0KCIgICAgRnVsbCBHQzogJXMiLCBnY1RpbWVyU3RyaW5nKGRh
dGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9uLCBub3cpLmFzY2lpKCkuZGF0YSgpKSk7CisgICAg
c2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAxMCwgY29sb3JGb3JMYWJlbHMsICIgICAgRWRlbiBH
QzogIiArIGdjVGltZXJTdHJpbmcoZGF0YS50aW1lT2ZOZXh0RWRlbkNvbGxlY3Rpb24sIG5vdykp
OworICAgIHNob3dUZXh0KGNvbnRleHQsIDEwLCB5ICsgMjAsIGNvbG9yRm9yTGFiZWxzLCAiICAg
IEZ1bGwgR0M6ICIgKyBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9u
LCBub3cpKTsKIAogICAgIGRyYXdDcHVIaXN0b3J5KGNvbnRleHQsIHZpZXdCb3VuZHMuc2l6ZS53
aWR0aCAtIDcwLCAwLCB2aWV3Qm91bmRzLnNpemUuaGVpZ2h0LCBkYXRhLmNwdSk7CiAgICAgZHJh
d0dDSGlzdG9yeShjb250ZXh0LCB2aWV3Qm91bmRzLnNpemUud2lkdGggLSAxNDAsIDAsIHZpZXdC
b3VuZHMuc2l6ZS5oZWlnaHQsIGRhdGEuZ2NIZWFwU2l6ZSwgZGF0YS5jYXRlZ29yaWVzW01lbW9y
eUNhdGVnb3J5OjpHQ0hlYXBdLmRpcnR5U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCmluZGV4IGVmZDgzNmFmZDY4
ZDMyMzk0ZmU1NDcyNzQ0OWQ2OGRiOWY0M2Q0ODYuLjAzNWU2MDNjMjAzNTcyODk1ODNiMzhiYWNj
ZDc1MDNhOTY2NTZlYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVz
b3VyY2VVc2FnZVRocmVhZENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
UmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8
bWFjaC92bV9zdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9NYWNoVk1TUEku
aD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYy
LDcgKzYzLDcgQEAgdm9pZCBsb2dGb290cHJpbnRDb21wYXJpc29uKGNvbnN0IHN0ZDo6YXJyYXk8
VGFnSW5mbywgMjU2PiYgYmVmb3JlLCBjb25zdCBzdGQ6OmEKICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICBTdHJpbmcgdGFnTmFtZSA9IGRpc3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAg
ICAgIGlmICghdGFnTmFtZSkKLSAgICAgICAgICAgIHRhZ05hbWUgPSBTdHJpbmc6OmZvcm1hdCgi
VGFnICV1IiwgaSk7CisgICAgICAgICAgICB0YWdOYW1lID0gbWFrZVN0cmluZygiVGFnICIsIGkp
OwogICAgICAgICBXVEZMb2dBbHdheXMoIiAgJTAyWCAlMTZzICUxMGxkICUxMGxkICUxMGxkIiwK
ICAgICAgICAgICAgIGksCiAgICAgICAgICAgICB0YWdOYW1lLmFzY2lpKCkuZGF0YSgpLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5j
cHAKaW5kZXggY2ZkMGIzNjAyNzkzOWQ0Yjg2YWZkNmZlN2U4NzNlMDRmYjg2ZmY2NS4uOTQwNzM0
MjA2NWZlOWZjNTI4ZDU0NTc0NDQ2Mzc2YTFkNGQ3ZDdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiU3ByaW5nU29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0
aWVzLmgiCiAjaW5jbHVkZSAiVW5pdEJlemllci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTgxLDcgKzE4Miw3IEBAIFN0cmluZyBUaW1pbmdG
dW5jdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYgKG1fdHlwZSA9PSBUaW1pbmdGdW5jdGlv
bjo6U3RlcHNGdW5jdGlvbikgewogICAgICAgICBhdXRvJiBmdW5jdGlvbiA9IGRvd25jYXN0PFN0
ZXBzVGltaW5nRnVuY3Rpb24+KCp0aGlzKTsKICAgICAgICAgaWYgKCFmdW5jdGlvbi5zdGVwQXRT
dGFydCgpKQotICAgICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJzdGVwcyglZCkiLCBm
dW5jdGlvbi5udW1iZXJPZlN0ZXBzKCkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmco
InN0ZXBzKCIsIGZ1bmN0aW9uLm51bWJlck9mU3RlcHMoKSwgJyknKTsKICAgICB9CiAKICAgICBU
ZXh0U3RyZWFtIHN0cmVhbTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZG
T2JqQ0ltcGwubW0KaW5kZXggNmU0OGZkYWYxODU5MDcwYTI2OTM0YmNiNjA2ZmU1YTQwY2ZiZGUy
Yy4uZWI2OTg4ODQwYTEzMDcxNTc4MzFmZTM4YWFiMjNmMGU4NWE4YmU3NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2
YXRlQVZGT2JqQ0ltcGwubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KQEAgLTE4MCw3ICsxODAs
NyBAQCBpbnQgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5kZXgoKSBjb25zdAogQXRvbWlj
U3RyaW5nIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmlkKCkgY29uc3QKIHsKICAgICBpZiAo
bV9hc3NldFRyYWNrKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVkIiwgW21fYXNz
ZXRUcmFjayB0cmFja0lEXSk7CisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmc6Om51bWJlcihb
bV9hc3NldFRyYWNrIHRyYWNrSURdKTsKICAgICBpZiAobV9tZWRpYVNlbGVjdGlvbk9wdGlvbikK
ICAgICAgICAgcmV0dXJuIFtbbV9tZWRpYVNlbGVjdGlvbk9wdGlvbi0+YXZNZWRpYVNlbGVjdGlv
bk9wdGlvbigpIG9wdGlvbklEXSBzdHJpbmdWYWx1ZV07CiAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDYw
ZWU5NmY0MDI0MzM2MjJmNTg1NDEyNmZmYjIzOTUxMDY5OGNlMzEuLjk2NmNjZDU1NjlmOWUwNmI2
ZjlhNTgxOTk3YWE3YjM4OWQxZGQyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5oCkBAIC04NCw3ICs4NCw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAgICAg
TWVkaWFTYW1wbGVBVkZPYmpDKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgaW50IHRyYWNrSUQp
CiAgICAgICAgIDogbV9zYW1wbGUoc2FtcGxlKQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3Jt
YXQoIiVkIiwgdHJhY2tJRCkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJpbmc6Om51bWJlcih0
cmFja0lEKSkKICAgICB7CiAgICAgfQogICAgIE1lZGlhU2FtcGxlQVZGT2JqQyhDTVNhbXBsZUJ1
ZmZlclJlZiBzYW1wbGUsIFZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xh
eWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NM
YXllckNBLmNwcAppbmRleCBkMzUxMjc0ZmQzMDQ2MTVkOWJlZTM2YjI0OWZmYzkxNjRiZTI0NTc3
Li5jNTVmNWZmOGQwMGNiYTQ0NTQyOGIxNDEzMDFhMjRmOWI3MmQ3Mzg1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5j
cHAKQEAgLTUyLDggKzUyLDggQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNp
bmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1
ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiU3lzdGVtTWVtb3J5Lmgi
CkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNU
b1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJQdXJwb3NlOjpCYWNrZ3JvdW5kQ29sb3I7CiAgICAg
ICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1D
QUxheWVyOjpMYXllclR5cGVMYXllciwgdGhpcyk7CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5H
KQotICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5zZXROYW1lKFN0cmluZzo6Zm9ybWF0KCJj
b250ZW50cyBjb2xvciAlbGx1IiwgbV9jb250ZW50c0xheWVyLT5sYXllcklEKCkpKTsKKyAgICAg
ICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJjb250ZW50cyBjb2xv
ciAiLCBtX2NvbnRlbnRzTGF5ZXItPmxheWVySUQoKSkpOwogI2Vsc2UKICAgICAgICAgICAgIG1f
Y29udGVudHNMYXllci0+c2V0TmFtZSgiY29udGVudHMgY29sb3IiKTsKICNlbmRpZgpAQCAtMjU1
NSw3ICsyNTU1LDcgQEAgdm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2Uo
KQogICAgICAgICBpZiAoIW1fY29udGVudHNMYXllci5nZXQoKSkgewogICAgICAgICAgICAgbV9j
b250ZW50c0xheWVyID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5
ZXJUeXBlTGF5ZXIsIHRoaXMpOwogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAg
ICAgIG1fY29udGVudHNMYXllci0+c2V0TmFtZShTdHJpbmc6OmZvcm1hdCgiY29udGVudHMgaW1h
Z2UgJWxsdSIsIG1fY29udGVudHNMYXllci0+bGF5ZXJJRCgpKSk7CisgICAgICAgICAgICBtX2Nv
bnRlbnRzTGF5ZXItPnNldE5hbWUobWFrZVN0cmluZygiY29udGVudHMgaW1hZ2UgIiwgbV9jb250
ZW50c0xheWVyLT5sYXllcklEKCkpKTsKICNlbHNlCiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5
ZXItPnNldE5hbWUoImNvbnRlbnRzIGltYWdlIik7CiAjZW5kaWYKQEAgLTI2NjEsNyArMjY2MSw3
IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVDb250ZW50c1JlY3RzKCkKICAgICAgICAg
ICAgIG1fY29udGVudHNDbGlwcGluZ0xheWVyID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIHRoaXMpOwogICAgICAgICAgICAgbV9jb250ZW50
c0NsaXBwaW5nTGF5ZXItPnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoKSk7CiAjaWYgRU5BQkxF
KFRSRUVfREVCVUdHSU5HKQotICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNl
dE5hbWUoU3RyaW5nOjpmb3JtYXQoImNvbnRlbnRzIGNsaXBwaW5nICVsbHUiLCBtX2NvbnRlbnRz
Q2xpcHBpbmdMYXllci0+bGF5ZXJJRCgpKSk7CisgICAgICAgICAgICBtX2NvbnRlbnRzQ2xpcHBp
bmdMYXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJjb250ZW50cyBjbGlwcGluZyAiLCBtX2NvbnRl
bnRzQ2xpcHBpbmdMYXllci0+bGF5ZXJJRCgpKSk7CiAjZWxzZQogICAgICAgICAgICAgbV9jb250
ZW50c0NsaXBwaW5nTGF5ZXItPnNldE5hbWUoImNvbnRlbnRzIGNsaXBwaW5nIik7CiAjZW5kaWYK
QEAgLTMxNDUsNyArMzE0NSw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29t
bWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsCiAgICAgZm9yIChp
bnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4ID0gMDsgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0
eUluZGV4IDwgbnVtQW5pbWF0ZWRQcm9wZXJ0aWVzOyArK2ludGVybmFsRmlsdGVyUHJvcGVydHlJ
bmRleCkgewogICAgICAgICBib29sIHZhbHVlc09LOwogICAgICAgICBSZWZQdHI8UGxhdGZvcm1D
QUFuaW1hdGlvbj4gY2FBbmltYXRpb247Ci0gICAgICAgIFN0cmluZyBrZXlQYXRoID0gU3RyaW5n
Ojpmb3JtYXQoImZpbHRlcnMuZmlsdGVyXyVkLiVzIiwgYW5pbWF0aW9uSW5kZXgsIFBsYXRmb3Jt
Q0FGaWx0ZXJzOjphbmltYXRlZEZpbHRlclByb3BlcnR5TmFtZShmaWx0ZXJPcCwgaW50ZXJuYWxG
aWx0ZXJQcm9wZXJ0eUluZGV4KSk7CisgICAgICAgIFN0cmluZyBrZXlQYXRoID0gbWFrZVN0cmlu
ZygiZmlsdGVycy5maWx0ZXJfIiwgYW5pbWF0aW9uSW5kZXgsICcuJywgUGxhdGZvcm1DQUZpbHRl
cnM6OmFuaW1hdGVkRmlsdGVyUHJvcGVydHlOYW1lKGZpbHRlck9wLCBpbnRlcm5hbEZpbHRlclBy
b3BlcnR5SW5kZXgpKTsKICAgICAgICAgCiAgICAgICAgIGlmIChpc0tleWZyYW1lKSB7CiAgICAg
ICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwg
a2V5UGF0aCwgZmFsc2UpOwpAQCAtMzkwMyw3ICszOTAzLDcgQEAgUmVmUHRyPFBsYXRmb3JtQ0FM
YXllcj4gR3JhcGhpY3NMYXllckNBOjpmaW5kT3JNYWtlQ2xvbmUoQ2xvbmVJRCBjbG9uZUlELCBQ
bGF0Zm8KICAgICB9IGVsc2UgewogICAgICAgICByZXN1bHRMYXllciA9IGNsb25lTGF5ZXIoc291
cmNlTGF5ZXIsIGNsb25lTGV2ZWwpOwogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAg
ICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3RyaW5nOjpmb3JtYXQoImNsb25lICVkIG9mICVsbHUi
LCBjbG9uZUlEWzBVXSwgc291cmNlTGF5ZXItPmxheWVySUQoKSkpOworICAgICAgICByZXN1bHRM
YXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJjbG9uZSAiLCBjbG9uZUlEWzBVXSwgIiBvZiAiLCBz
b3VyY2VMYXllci0+bGF5ZXJJRCgpKSk7CiAjZWxzZQogICAgICAgICByZXN1bHRMYXllci0+c2V0
TmFtZSgiY2xvbmUgb2YgIiArIG1fbmFtZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXgg
ZDk0OGQ1NjFiYTZkMmQ0ZDdmNGFiOGEwNWU4NjRkZmY4ZDYwNDIyZi4uNGU3MzM2ZTJjODEyMWZj
NTRmOWUyMGQ2MjcyMzUyNGI1M2FiYzBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKICNpbmNsdWRl
IDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzY3LDEyICszNjcsMTIgQEAgdm9pZCBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQog
CiAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOwogICAgIHN0YXRzTG9jYXRpb24ubW92ZSgw
LCBtX3N0YXRzRm9udFNpemUpOwotICAgIHN0cmluZyA9IFN0cmluZzo6Zm9ybWF0KCJTaXplOiAl
dSB4ICV1Iiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyAgICBzdHJpbmcgPSBtYWtl
U3RyaW5nKCJTaXplOiAiLCBzaXplLndpZHRoKCksICIgeCAiLCBzaXplLmhlaWdodCgpKTsKICAg
ICBjb250ZXh0LmRyYXdUZXh0KHN0YXRzRm9udCwgVGV4dFJ1bigoU3RyaW5nVmlldyhzdHJpbmcp
KSksIHN0YXRzTG9jYXRpb24pOwogCiAgICAgaWYgKG1vY2tDYW1lcmEoKSkgewogICAgICAgICBz
dGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0c0ZvbnRTaXplKTsKLSAgICAgICAgc3RyaW5nID0g
U3RyaW5nOjpmb3JtYXQoIlByZXNldCBzaXplOiAldSB4ICV1IiwgY2FwdHVyZVNpemUud2lkdGgo
KSwgY2FwdHVyZVNpemUuaGVpZ2h0KCkpOworICAgICAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJQ
cmVzZXQgc2l6ZTogIiwgY2FwdHVyZVNpemUud2lkdGgoKSwgIiB4ICIsIGNhcHR1cmVTaXplLmhl
aWdodCgpKTsKICAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0
cmluZ1ZpZXcoc3RyaW5nKSkpLCBzdGF0c0xvY2F0aW9uKTsKIAogICAgICAgICBjb25zdCBjaGFy
KiBjYW1lcmE7CkBAIC0zOTMsNyArMzkzLDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgICAgICAgICAgY2FtZXJh
ID0gIlVua25vd24iOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgc3Ry
aW5nID0gU3RyaW5nOjpmb3JtYXQoIkNhbWVyYTogJXMiLCBjYW1lcmEpOworICAgICAgICBzdHJp
bmcgPSBtYWtlU3RyaW5nKCJDYW1lcmE6ICIsIGNhbWVyYSk7CiAgICAgICAgIHN0YXRzTG9jYXRp
b24ubW92ZSgwLCBtX3N0YXRzRm9udFNpemUpOwogICAgICAgICBjb250ZXh0LmRyYXdUZXh0KHN0
YXRzRm9udCwgVGV4dFJ1bigoU3RyaW5nVmlldyhzdHJpbmcpKSksIHN0YXRzTG9jYXRpb24pOwog
ICAgIH0gZWxzZSBpZiAoIW5hbWUoKS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VC
dWZmZXJQcml2YXRlLmNwcAppbmRleCAyYThiMjRiZDJmOTIxZTFjMWYzNTAwMjIyNzdhODMzODdl
YzM3YWZlLi5hZDg3YWE3N2ExMTJmNjU4MjdiZjJlOTI3MGI1MzNhMGQ5M2M1YmRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VC
dWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlh
c291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcApAQCAtNDksNyArNDksNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIE1vY2tNZWRpYVNhbXBsZShjb25zdCBNb2NrU2FtcGxlQm94JiBi
b3gpCiAgICAgICAgIDogbV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQo
IiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwgbV9pZChTdHJpbmc6Om51bWJlcihib3gu
dHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRlbnRSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRlbnRSYW5nZS5jcHAKaW5kZXggMDBiOTBjNDg1M2U4
ZTIwYmI0ZTkyODU3YWYwZTE3ZTkxNTBkZjQyNS4uYTNkNGYwNDQwNTlkZmQ5YTU3YjMxOTI5ZGI4
ZjExMmMxNWY2MjExMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9QYXJzZWRDb250ZW50UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUGFyc2VkQ29udGVudFJhbmdlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUg
IlBhcnNlZENvbnRlbnRSYW5nZS5oIgogCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNyw4
ICsxMjcsOCBAQCBTdHJpbmcgUGFyc2VkQ29udGVudFJhbmdlOjpoZWFkZXJWYWx1ZSgpIGNvbnN0
CiAgICAgaWYgKCFtX2lzVmFsaWQpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBpZiAo
bV9pbnN0YW5jZUxlbmd0aCA9PSBVbmtub3duTGVuZ3RoKQotICAgICAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoImJ5dGVzICUiIFBSSWQ2NCAiLSUiIFBSSWQ2NCAiLyoiLCBtX2ZpcnN0Qnl0ZVBv
c2l0aW9uLCBtX2xhc3RCeXRlUG9zaXRpb24pOwotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
Ynl0ZXMgJSIgUFJJZDY0ICItJSIgUFJJZDY0ICIvJSIgUFJJZDY0LCBtX2ZpcnN0Qnl0ZVBvc2l0
aW9uLCBtX2xhc3RCeXRlUG9zaXRpb24sIG1faW5zdGFuY2VMZW5ndGgpOworICAgICAgICByZXR1
cm4gbWFrZVN0cmluZygiYnl0ZXMgIiwgbV9maXJzdEJ5dGVQb3NpdGlvbiwgJy0nLCBtX2xhc3RC
eXRlUG9zaXRpb24sICIvKiIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJieXRlcyAiLCBtX2Zp
cnN0Qnl0ZVBvc2l0aW9uLCAnLScsIG1fbGFzdEJ5dGVQb3NpdGlvbiwgJy8nLCBtX2luc3RhbmNl
TGVuZ3RoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAppbmRleCAx
Y2NhYjQzYzdhOGNiOGE3MzBhNWFkNjIzMTU1MTRmOGYwNzNhZDQwLi41MjI2Zjg1NWI2YmZhNmM1
ZWI5M2U5Mjg5YTkyM2QwZWQyYzc4MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0
LmNwcApAQCAtMzAsMTIgKzMwLDE1IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmls
ZWdlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRl
ICJSZXNvdXJjZVJlcXVlc3QuaCIKICNlbmRpZgorCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikK
KwogI2luY2x1ZGUgIkNvb2tpZS5oIgogI2luY2x1ZGUgIkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5LmgiCiAjaW5jbHVkZSAiQ29va2llc1N0cmF0ZWd5LmgiCkBAIC00Nyw3ICs1MCw2IEBA
CiAjaW5jbHVkZSA8d3RmL1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2lu
Y2x1ZGUgPHd0Zi9jZi9UeXBlQ2FzdHNDRi5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgogCiBlbnVtIHsKICAgICBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVz
aXZlbHlGcm9tTWFpbkRvY3VtZW50RG9tYWluID0gMwpAQCAtNjEsMTggKzYzLDE1IEBAIHN0cnVj
dCBDRlR5cGVUcmFpdDxDbGFzc05hbWUjI1JlZj4geyBcCiBzdGF0aWMgaW5saW5lIENGVHlwZUlE
IHR5cGVJRCgpIHsgcmV0dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAogfTsKIAotI2lm
IENPTVBJTEVSKENMQU5HKQogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSNl
bmRpZgogREVDTEFSRV9DRl9UWVBFX1RSQUlUKENGSFRUUENvb2tpZSk7Ci0jaWYgQ09NUElMRVIo
Q0xBTkcpCiBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSNlbmRpZgogCiAjdW5k
ZWYgREVDTEFSRV9DRl9UWVBFX1RSQUlUCisKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jZW5kaWYK
KyNlbmRpZiAvLyAgVVNFKENGVVJMQ09OTkVDVElPTikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0xMzIsNiArMTMxLDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFn
ZVNlc3Npb24+JiBkZWZhdWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkKIH0KIAogI2lmICFQTEFU
Rk9STShDT0NPQSkKKwogc3RhdGljIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgY3JlYXRlUHJpdmF0
ZVN0b3JhZ2VTZXNzaW9uKENGU3RyaW5nUmVmIGlkZW50aWZpZXIsIENGVVJMU3RvcmFnZVNlc3Np
b25SZWYgZGVmYXVsdFN0b3JhZ2VTZXNzaW9uKQogewogICAgIGNvbnN0IHZvaWQqIHNlc3Npb25Q
cm9wZXJ0eUtleXNbXSA9IHsgX2tDRlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlIH07CkBAIC0x
NjUsMTIgKzE2NSwxMyBAQCBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBjcmVhdGVQcml2
YXRlU3RvcmFnZVNlc3Npb24oQ0ZTdHJpbmdSZWYgaWRlbnRpZmllcgogCiAgICAgcmV0dXJuIHN0
b3JhZ2VTZXNzaW9uOwogfQorCiAjZW5kaWYKIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246
OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24oKQogewogICAgIC8vIFNlc3Npb24gbmFtZSBzaG91
bGQgYmUgc2hvcnQgZW5vdWdoIGZvciBzaGFyZWQgbWVtb3J5IHJlZ2lvbiBuYW1lIHRvIGJlIHVu
ZGVyIHRoZSBsaW1pdCwgb3RlaHJ3aXNlIHNhbmRib3ggcnVsZXMgd29uJ3Qgd29yayAoc2VlIDxy
ZGFyOi8vcHJvYmxlbS8xMzY0Mjg1Mj4pLgotICAgIFN0cmluZyBzZXNzaW9uTmFtZSA9IFN0cmlu
Zzo6Zm9ybWF0KCJXZWJLaXQgVGVzdC0ldSIsIHN0YXRpY19jYXN0PHVpbnQzMl90PihnZXRDdXJy
ZW50UHJvY2Vzc0lEKCkpKTsKKyAgICBTdHJpbmcgc2Vzc2lvbk5hbWUgPSBtYWtlU3RyaW5nKCJX
ZWJLaXQgVGVzdC0iLCBnZXRDdXJyZW50UHJvY2Vzc0lEKCkpOwogCiAgICAgUmV0YWluUHRyPENG
VVJMU3RvcmFnZVNlc3Npb25SZWY+IHNlc3Npb247CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0y
NTUsMTggKzI1NiwxNiBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0U3RvcmFnZUFj
Y2Vzc0FQSUVuYWJsZWQoYm9vbCBlbmFibGVkKQogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQor
CiB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29v
a2llPiYsIGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCB0aGlzLiA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTU2Mjk4PgogfQotI2VuZGlmCiAKLX0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKKyNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKIAot
bmFtZXNwYWNlIFdlYkNvcmUgewotCiBzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYgc19zZXRDb29r
aWVLZXlDRiA9IENGU1RSKCJTZXQtQ29va2llIik7CiBzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYg
c19jb29raWVDRiA9IENGU1RSKCJDb29raWUiKTsKIHN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiBz
X2NyZWF0ZWRDRiA9IENGU1RSKCJDcmVhdGVkIik7CkBAIC01MTgsNiArNTE3LDYgQEAgdm9pZCBO
ZXR3b3JrU3RvcmFnZVNlc3Npb246OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFdhbGxU
aW1lKQogewogfQogCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KICNlbmRpZiAvLyBVU0UoQ0ZV
UkxDT05ORUNUSU9OKQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCA2NjNlMGJjMGI4NTY3MDgz
YWE5N2VmODExNWE1NDY4YzUxN2U5NmM1Li5kN2JjNjEzMmI0MjY4NmRlNDllNThkYTI4NGQ2Njdk
OTdhYjczNjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRl
RGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRh
YmFzZS5jcHAKQEAgLTQ2LDggKzQ2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9y
TWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5vdCBvcGVuIjsKIHN0YXRpYyB2b2lkIHVuYXV0aG9y
aXplZFNRTEZ1bmN0aW9uKHNxbGl0ZTNfY29udGV4dCAqY29udGV4dCwgaW50LCBzcWxpdGUzX3Zh
bHVlICoqKQogewogICAgIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSA9IChjb25zdCBjaGFyKilz
cWxpdGUzX3VzZXJfZGF0YShjb250ZXh0KTsKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gU3Ry
aW5nOjpmb3JtYXQoIkZ1bmN0aW9uICVzIGlzIHVuYXV0aG9yaXplZCIsIGZ1bmN0aW9uTmFtZSk7
Ci0gICAgc3FsaXRlM19yZXN1bHRfZXJyb3IoY29udGV4dCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5k
YXRhKCksIC0xKTsKKyAgICBzcWxpdGUzX3Jlc3VsdF9lcnJvcihjb250ZXh0LCBtYWtlU3RyaW5n
KCJGdW5jdGlvbiAiLCBmdW5jdGlvbk5hbWUsICIgaXMgdW5hdXRob3JpemVkIikudXRmOCgpLmRh
dGEoKSwgLTEpOwogfQogCiBzdGF0aWMgdm9pZCBpbml0aWFsaXplU1FMaXRlSWZOZWNlc3Nhcnko
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9z
aXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9y
LmNwcAppbmRleCBhYzJlMDM2MDNkMDlmODgyOWIwNmJjZjBkNGRmMjhhYjY0Zjg3ZTE4Li43Zjkx
NzQzMjZkYjAzNDQ1NTAzY2E4MTU2OGJjODYwNzU0MmE3MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTMwMSw3ICsx
MzAxLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyhjb25zdCBS
ZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IGNoYXIqIHAKICAgICAgICAgYmFja2luZy0+YmFja2lu
Z1N0b3JlTWVtb3J5RXN0aW1hdGUoKSAvIDEwMjQpKTsKICAgICAKICAgICBpZiAoIWxheWVyLnJl
bmRlcmVyKCkuc3R5bGUoKS5oYXNBdXRvWkluZGV4KCkpCi0gICAgICAgIGxvZ1N0cmluZy5hcHBl
bmQoU3RyaW5nOjpmb3JtYXQoIiB6LWluZGV4OiAlZCIsIGxheWVyLnJlbmRlcmVyKCkuc3R5bGUo
KS56SW5kZXgoKSkpOyAKKyAgICAgICAgbG9nU3RyaW5nLmFwcGVuZChtYWtlU3RyaW5nKCIgei1p
bmRleDogIiwgbGF5ZXIucmVuZGVyZXIoKS5zdHlsZSgpLnpJbmRleCgpKSk7CiAKICAgICBsb2dT
dHJpbmcuYXBwZW5kTGl0ZXJhbCgiICgiKTsKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxvZ1JlYXNv
bnNGb3JDb21wb3NpdGluZyhsYXllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRl
eCA3NzBjOWQ2MGI4Y2Y4ZGRmYTJhMmY5N2Q1NmQ1N2FiNGVjNWU0OWJhLi5hNGNiMjUzNDI2MjMz
MmRhZDFjNTVmY2ZmYzY2ZDFiODE5NGRhMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNw
cApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50
Q29kZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnREZWNvZGVyLmg+
CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtMjAxLDcgKzIwMiw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6
ZW5zdXJlVmFsaWRSZWNvcmRzVGFibGUoKQogICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBSZWNv
cmRzIHRhYmxlIGF0IGFsbCwgY3JlYXRlIGl0IGFuZCB0aGVuIGJhaWwuCiAgICAgICAgIGlmIChz
cWxpdGVSZXN1bHQgPT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgICAgIGlmICghbV9kYXRhYmFz
ZS0+ZXhlY3V0ZUNvbW1hbmQocmVjb3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiQ291bGQgbm90IGNyZWF0ZSBSZWNvcmRzIHRhYmxlIGlu
IGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNl
LT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNv
dWxkIG5vdCBjcmVhdGUgUmVjb3JkcyB0YWJsZSBpbiBkYXRhYmFzZSAoIiwgbV9kYXRhYmFzZS0+
bGFzdEVycm9yKCksICIpIC0gIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAgfQogCkBAIC0zNTgsNyArMzU5LDcgQEAgU3RyaW5n
IFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKIAogICAgIFNRTGl0ZVN0YXRl
bWVudCBzcWwoKm1fZGF0YWJhc2UsICJTRUxFQ1QgKiBGUk9NIFJlY29yZHM7Il9zKTsKICAgICBp
ZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxJVEVfT0spCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZv
cm1hdCgiRmFpbGVkIHRvIHByZXBhcmUgc3RhdGVtZW50IHRvIHJldHJpZXZlIHJlZ2lzdHJhdGlv
bnMgZnJvbSByZWNvcmRzIHRhYmxlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigp
LCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5n
KCJGYWlsZWQgdG8gcHJlcGFyZSBzdGF0ZW1lbnQgdG8gcmV0cmlldmUgcmVnaXN0cmF0aW9ucyBm
cm9tIHJlY29yZHMgdGFibGUgKCIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1f
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKIAogICAgIGludCByZXN1bHQgPSBzcWwuc3RlcCgp
OwogCkBAIC00MDgsNyArNDA5LDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBv
cnRSZWNvcmRzKCkKICAgICB9CiAKICAgICBpZiAocmVzdWx0ICE9IFNRTElURV9ET05FKQotICAg
ICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIkZhaWxlZCB0byBpbXBvcnQgYXQgbGVhc3Qgb25l
IHJlZ2lzdHJhdGlvbiBmcm9tIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+
bGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0dXJu
IG1ha2VTdHJpbmcoIkZhaWxlZCB0byBpbXBvcnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBm
cm9tIHJlY29yZHMgdGFibGUgKCIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1f
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCmluZGV4IDJiODUyMDBkZWM5Mjc4Yzc0
ZGJhZjYyYWU1MzMwZDlmOGQzN2RjMDcuLjg3ZTZlZWIzYTk0MzFlNWM1NzI3ZmE1MjViNzFmZDc1
NmViY2VhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBA
IC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0
Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNDIsNyArMTQzLDcgQEAg
dm9pZCBXZWJNZW1vcnlTYW1wbGVyOjppbml0aWFsaXplU2FuZGJveGVkTG9nRmlsZShTYW5kYm94
RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW0KIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhl
YWRlcnMoKQogewotICAgIFN0cmluZyBwcm9jZXNzRGV0YWlscyA9IFN0cmluZzo6Zm9ybWF0KCJQ
cm9jZXNzOiAlcyBQaWQ6ICVkXG4iLCBwcm9jZXNzTmFtZSgpLnV0ZjgoKS5kYXRhKCksIGdldEN1
cnJlbnRQcm9jZXNzSUQoKSk7CisgICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gbWFrZVN0cmlu
ZygiUHJvY2VzczogIiwgcHJvY2Vzc05hbWUoKSwgIiBQaWQ6ICIsIGdldEN1cnJlbnRQcm9jZXNz
SUQoKSwgJ1xuJyk7CiAKICAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBwcm9jZXNzRGV0YWlscy51
dGY4KCk7CiAgICAgRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4
U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0
b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9M
b2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggMDI1N2MwZDhhNmJiMjI5MDQ5ZjMxNGJlMDFkYzk0
OThkNzE4MjVmNC4uODVkODFmYzU4ZDRmYzhiNDdkNDRmNTg2OTM3ODE5YjFjOTIyM2Y2ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
TG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtMTkxLDcgKzE5MSw3
IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgpCiAgICAgICAgIHdl
YWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyQ29uc2VudGVkKGNvbnNlbnQp
OwogICAgIH07CiAgICAgbV9jb25uZWN0aW9uLT5nZXRVc2VyQ29uc2VudCgKLSAgICAgICAgU3Ry
aW5nOjpmb3JtYXQoIkFsbG93ICVzIHRvIGNyZWF0ZSBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBm
b3IgJXMiLCByZXF1ZXN0RGF0YSgpLmNyZWF0aW9uT3B0aW9ucy5ycC5pZC51dGY4KCkuZGF0YSgp
LCByZXF1ZXN0RGF0YSgpLmNyZWF0aW9uT3B0aW9ucy51c2VyLm5hbWUudXRmOCgpLmRhdGEoKSks
CisgICAgICAgICJBbGxvdyAiICsgcmVxdWVzdERhdGEoKS5jcmVhdGlvbk9wdGlvbnMucnAuaWQg
KyAiIHRvIGNyZWF0ZSBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBmb3IgIiArIHJlcXVlc3REYXRh
KCkuY3JlYXRpb25PcHRpb25zLnVzZXIubmFtZSwKICAgICAgICAgV1RGTW92ZShjYWxsYmFjaykp
OwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclV0aWxpdGllcy5jcHAKaW5kZXggYzVkYjQwMWVlMWM2
MTk1ODk0MmQ2YTNiMzBjZjMwZjEzZmE2YjgwNi4uM2I0OWNlMDM0YTlhYWIwMzIzZGIxNGIzMzYw
OGRlYmE2NGZmYmY5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5z
cGVjdG9yVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JVdGlsaXRpZXMuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJE
ZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTU3LDcgKzU4LDcgQEAgdW5zaWduZWQgaW5z
cGVjdG9yTGV2ZWxGb3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIAogU3RyaW5nIGluc3BlY3Rv
clBhZ2VHcm91cElkZW50aWZpZXJGb3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICBy
ZXR1cm4gU3RyaW5nOjpmb3JtYXQoIl9fV2ViSW5zcGVjdG9yUGFnZUdyb3VwTGV2ZWwldV9fIiwg
aW5zcGVjdG9yTGV2ZWxGb3JQYWdlKHBhZ2UpKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiX19X
ZWJJbnNwZWN0b3JQYWdlR3JvdXBMZXZlbCIsIGluc3BlY3RvckxldmVsRm9yUGFnZShwYWdlKSwg
Il9fIik7CiB9CiAKIHZvaWQgdHJhY2tJbnNwZWN0b3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBjOGY4MDVl
ODk4NGIzMjM1MmY5MjU3MDdjN2FiNWQ0MzZmMWE1MGVlLi5lOTczYzk4YjMwZjAxYmIwYWQxZDA0
YWMyNGFlMWEwMGVhYjY1ODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwCkBAIC00MSw5ICs0MSw2IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiR2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFu
Y2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIgotI2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RP
Q09MX01BTkFHRVIpCi0jaW5jbHVkZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2Fn
ZXMuaCIKLSNlbmRpZgogI2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgi
CkBAIC05Nyw2ICs5NCwxMSBAQAogI2luY2x1ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KICNpbmNsdWRl
IDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CisKKyNpZiBFTkFC
TEUoTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9NQU5BR0VSKQorI2luY2x1ZGUgIkxlZ2FjeUN1c3Rv
bVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgiCisjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNF
X0NPTlRST0xTKQogI2luY2x1ZGUgIlNlcnZpY2VzQ29udHJvbGxlci5oIgpAQCAtMTAxNyw3ICsx
MDE5LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhX
ZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAgICAgaWYgKG1fbWVtb3J5U2FtcGxlckVuYWJsZWQp
IHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbXBsZUxvZ1NhbmRib3hIYW5k
bGU7ICAgICAgICAKICAgICAgICAgV2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwotICAg
ICAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2Vz
cyVsbHVwaWQlZCIsIHN0YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obm93LnNlY29uZHNT
aW5jZUVwb2NoKCkuc2Vjb25kcygpKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7Cisg
ICAgICAgIFN0cmluZyBzYW1wbGVMb2dGaWxlUGF0aCA9IG1ha2VTdHJpbmcoIldlYlByb2Nlc3Mi
LCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nIGxvbmc+KG5vdy5zZWNvbmRzU2luY2VFcG9jaCgp
LnNlY29uZHMoKSksICJwaWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICAg
ICAgc2FtcGxlTG9nRmlsZVBhdGggPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JU
ZW1wb3JhcnlGaWxlKHNhbXBsZUxvZ0ZpbGVQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpS
ZWFkV3JpdGUsIHNhbXBsZUxvZ1NhbmRib3hIYW5kbGUpOwogICAgICAgICAKICAgICAgICAgcHJv
Y2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U3RhcnRNZW1vcnlTYW1wbGVyKHNhbXBs
ZUxvZ1NhbmRib3hIYW5kbGUsIHNhbXBsZUxvZ0ZpbGVQYXRoLCBtX21lbW9yeVNhbXBsZXJJbnRl
cnZhbCksIDApOwpAQCAtMTU3NCw3ICsxNTc2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3Rh
cnRNZW1vcnlTYW1wbGVyKGNvbnN0IGRvdWJsZSBpbnRlcnZhbCkKICAgICAvLyBGb3IgV2ViUHJv
Y2VzcwogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBzYW1wbGVMb2dTYW5kYm94SGFuZGxl
OyAgICAKICAgICBXYWxsVGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgU3RyaW5nIHNh
bXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5nOjpmb3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRz
KCkpKTsKKyAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBhdGggPSBtYWtlU3RyaW5nKCJXZWJQcm9j
ZXNzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBv
Y2goKS5zZWNvbmRzKCkpKTsKICAgICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNp
b246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRi
b3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAg
ICAgCiAgICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1l
bW9yeVNhbXBsZXIoc2FtcGxlTG9nU2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIGlu
dGVydmFsKSk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggYTJhMjk5ZjRiNzMwNWU0MDk5NmZjNjRmZGY2ODBhMGRhZDNmOWJkZS4uYWIxNjdiOTFm
ZjY5YTI5ZWFkMjBiMzk0M2RlMDgyMGZiNGUzZTRiYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEyLTE1ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIG1hbnkgdXNl
cyBvZiBTdHJpbmc6OmZvcm1hdCB3aXRoIG1vcmUgdHlwZS1zYWZlIGFsdGVybmF0aXZlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpjYWNo
ZVRlc3RSdW5uZXJDYWxsYmFjayk6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxl
cjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTogVXNlIG1ha2VTdHJpbmcuCisg
ICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwpOiBVc2UgYW4gQVND
SUlMaXRlcmFsIHZpYSB0aGUgX3Mgc3ludGF4LgorCiAyMDE4LTEyLTE0ICBBbGV4ZXkgUHJvc2t1
cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIHN0eWxlIGNoZWNrZXIgcnVs
ZSBmb3IgWGNvZGUgdmVyc2lvbiBtYWNyb3MgdXNlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAyMjU3OWU4OTE4NTU5
YjhlMzI4ZjQxODM2ZjcwZDE1NzExNzYwODkyLi44ODIyZjE1ZDBhNWU3ZjkxYTNiYmE0N2ZkYmVk
MGVhZGYwMjgyYTJjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDx3dGYv
U3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTgxMyw3ICs4MTQsNyBA
QCBzdGF0aWMgdm9pZCBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayh1bnNpZ25lZCBpbmRleCwgSlNW
YWx1ZVJlZiBjYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNhbGxiYWNrTWFw
KCkuY29udGFpbnMoaW5kZXgpKSB7Ci0gICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5vdXRwdXRUZXh0KFN0cmluZzo6Zm9ybWF0KCJGQUlMOiBUcmllZCB0byBpbnN0YWxsIGEgc2Vj
b25kIFRlc3RSdW5uZXIgY2FsbGJhY2sgZm9yIHRoZSBzYW1lIGV2ZW50IChpZCAlZClcblxuIiwg
aW5kZXgpKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQo
bWFrZVN0cmluZygiRkFJTDogVHJpZWQgdG8gaW5zdGFsbCBhIHNlY29uZCBUZXN0UnVubmVyIGNh
bGxiYWNrIGZvciB0aGUgc2FtZSBldmVudCAoaWQgIiwgaW5kZXgsICIpXG5cbiIpKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVy
LmNwcAppbmRleCAwODUwNTU4MTMwYmM1Yjc2Mjg1YWZiODI0NWE3ZmI4ZmU0M2MxZjA1Li5hOTdh
YzllZWVkNTU2OGJlZmM0MmQyY2IyMTkzMjc5ZWEzMDJhYmVjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzgsNyArNzgsNyBAQAogI2luY2x1ZGUgPHd0
Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8d3RmL3Rl
eHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGVNYWMuaD4KQEAgLTIwNjEsMTEg
KzIwNjEsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdLUGFnZVJlZiBwYWdlLCBXS0F1dGhlbnQKIAogICAgIHN0ZDo6c3RyaW5nIGhv
c3QgPSB0b1NURChhZG9wdFdLKFdLUHJvdGVjdGlvblNwYWNlQ29weUhvc3QocHJvdGVjdGlvblNw
YWNlKSkuZ2V0KCkpOwogICAgIGludCBwb3J0ID0gV0tQcm90ZWN0aW9uU3BhY2VHZXRQb3J0KHBy
b3RlY3Rpb25TcGFjZSk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXM6
JWQgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSAlcyAtICIsIGhvc3QuY19z
dHIoKSwgcG9ydCwgdG9TdHJpbmcoYXV0aGVudGljYXRpb25TY2hlbWUpKTsKKyAgICBTdHJpbmcg
bWVzc2FnZSA9IG1ha2VTdHJpbmcoaG9zdC5jX3N0cigpLCAnOicsIHBvcnQsICIgLSBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSAiLCB0b1N0cmluZyhhdXRoZW50aWNhdGlvblNj
aGVtZSksICIgLSAiKTsKICAgICBpZiAoIW1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
cykKICAgICAgICAgbWVzc2FnZS5hcHBlbmQoIlNpbXVsYXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRp
Y2F0aW9uIHNoZWV0XG4iKTsKICAgICBlbHNlCi0gICAgICAgIG1lc3NhZ2UuYXBwZW5kKFN0cmlu
Zzo6Zm9ybWF0KCJSZXNwb25kaW5nIHdpdGggJXM6JXNcbiIsIG1fYXV0aGVudGljYXRpb25Vc2Vy
bmFtZS51dGY4KCkuZGF0YSgpLCBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQudXRmOCgpLmRhdGEo
KSkpOworICAgICAgICBtZXNzYWdlLmFwcGVuZCgiUmVzcG9uZGluZyB3aXRoICIgKyBtX2F1dGhl
bnRpY2F0aW9uVXNlcm5hbWUgKyAiOiIgKyBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQgKyAiXG4i
KTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1lc3NhZ2UpOwogCiAgICAg
aWYgKCFtX2hhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMpIHsKQEAgLTIxNjMsOCArMjE2
Myw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0VG9VUkwoV0tDb250ZXh0UmVmLCBXS0Rvd25sCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3du
bG9hZERpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS0Vycm9yUmVmIGVycm9y
KQogewogICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKSB7Ci0gICAgICAgIFN0
cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIkRvd25sb2FkIGZhaWxlZC5cbiIpOwotICAg
ICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1lc3NhZ2UpOworICAgICAgICBt
X2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9hZCBmYWlsZWQuXG4iX3MpOwog
CiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBlcnJvckRvbWFpbiA9IGFkb3B0V0so
V0tFcnJvckNvcHlEb21haW4oZXJyb3IpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdS
ZWY+IGVycm9yRGVzY3JpcHRpb24gPSBhZG9wdFdLKFdLRXJyb3JDb3B5TG9jYWxpemVkRGVzY3Jp
cHRpb24oZXJyb3IpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>357406</attachid>
            <date>2018-12-15 14:58:42 -0800</date>
            <delta_ts>2019-01-26 11:29:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192742-20181215145841.patch</filename>
            <type>text/plain</type>
            <size>138168</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM5MjUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
NzA0NjNmNDZlM2NlZDg2M2Y3NTM5M2MyYjI0MDBlYjFlYTU5ODUwLi43ZTZiMzZiZDY2NDVmMzRk
ZTk1OWM3ZTBhZDljM2MwYzMxZGY5NjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5
cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAg
IChJbnNwZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUNhbGwpOiBVc2UgbWFrZVN0cmlu
Zy4KKyAgICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQXN5bmNDYWxs
KTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVy
LmNwcDoKKyAgICAgICAgKEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OmdldFByb3BlcnR5
VmFsdWUpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6
ZW5hYmxlKTogRGl0dG8uCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEZ1bmN0aW9uSlND
U3RhY2tGdW5jdG9yOjpvcGVyYXRvcigpIGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBydW50
aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZv
cm1hdDo6aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KTogVXNlIHN0cmluZyBjb25jYXRlbmF0aW9u
LgorICAgICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNhbm9u
aWNhbGl6ZUxvY2FsZUxpc3QpOiBEaXR0by4KKwogMjAxOC0xMi0xNCAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CiAKICAgICAgICAgTGl0ZXJhbFBhcnNlciBoYXMgYSBidW5jaCBvZiB1
c2VzIG9mIFN0cmluZzo6Zm9ybWF0IHdpdGggdW50cnVzdGVkIGRhdGEKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKaW5kZXggOTZiZGI5MDg3
NzFiZWYwNDYxNTRhODIwMzNhNGQ4NGEzYjZkOTM5NS4uOTAzOTNjODQzYTEyYjA2MjM0MWNiYTA4
ZGFlMDVlMjQ0YjgyNmNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0xMi0xNSAgRGFyaW4g
QWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2Yg
U3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd3RmL1dvcmtRdWV1ZS5j
cHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KTogVXNlIG1ha2VT
dHJpbmcuCisKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAgICAgIChXVEY6OmR0b2EpOiBV
c2Ugc3ByaW50ZiBpbnN0ZWFkIG9mIFN0cmluZzo6Zm9ybWF0IGluIHRoZSBjb21tZW50cywKKyAg
ICAgICAgc2luY2UgdGhlc2UgZnVuY3Rpb25zIGhhdmUgbm90aGluZyB0byBkbyB3aXRoIFdURjo6
U3RyaW5nLgorCiAyMDE4LTEyLTE0ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBWZXJpZnkgc2l6ZSBpcyB2YWxpZCBpbiBVU0VfU1lTVEVNX01BTExPQyB2ZXJzaW9u
IG9mIHRyeUFsbG9jYXRlWmVyb2VkVmlydHVhbFBhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjgzZjM1YTA1
YWZhNjE2M2IyZWE0ZGUxMWRhZGUyMjdiMWZkNmE1MC4uYmRkMDJlNDE4MTI0NDlmNjViNTBmODkx
MjJhZjM2ZDVjYzNmZDk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4MyBAQAorMjAxOC0xMi0x
NSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55
IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0Mgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgd2hpbGUg
YmFjaywgU3RyaW5nOjpmb3JtYXQgd2FzIG1vcmUgZWZmaWNpZW50IHRoYW4gc3RyaW5nIGNvbmNh
dGVuYXRpb24sCisgICAgICAgIGJ1dCB0aGF0IGlzIG5vIGxvbmdlciB0cnVlLCBhbmQgd2Ugc2hv
dWxkIHByZWZlciBTdHJpbmc6Om51bWJlciwgbWFrZVN0cmluZywKKyAgICAgICAgb3IgY29uY2F0
ZW5hdGlvbiB3aXRoIHRoZSAiKyIgb3BlcmF0b3IgdG8gU3RyaW5nOjpmb3JtYXQgZm9yIG5ldyBj
b2RlLgorCisgICAgICAgIFRoaXMgaXMgbm90IGFzIGdvb2QgZm9yIHByb2dyYW1tZXJzIHdobyBh
cmUgZm9uZCBvZiBwcmludGYgZm9ybWF0dGluZworICAgICAgICBzdHlsZSwgYW5kIGluIHNvbWUg
Y2FzZXMgaXQncyBhIGxpdHRsZSBoYXJkZXIgdG8gcmVhZCB0aGUgc3RyaW5ncworICAgICAgICBp
bnRlcnNwZXJzZWQgd2l0aCB2YXJpYWJsZXMgcmF0aGVyIHRoYW4gYSBmb3JtYXQgc3RyaW5nLCBi
dXQgaXQncyBiZXR0ZXIKKyAgICAgICAgaW4gYSBmZXcgd2F5czoKKworICAgICAgICAtIG1vcmUg
ZWZmaWNpZW50IChJIGRpZG4ndCBtZWFzdXJlIHRoZSBkaWZmZXJlbmNlLCBidXQgaXQncyBkZWZp
bml0ZWx5CisgICAgICAgICAgc2xvd2VyIHRvIHVzZSBTdHJpbmc6OkZvcm1hdCB3aGljaCBjYWxs
cyB2c25wcmludGYgdHdpY2UgdGhhbiB0byB1c2UKKyAgICAgICAgICB0aGUgV1RGIGNvZGUpCisg
ICAgICAgIC0gd29ya3MgaW4gYSB0eXBlLXNhZmUgd2F5IHdpdGhvdXQgYSBuZWVkIHRvIHVzZSBh
IGZvcm1hdCBzcGVjaWZpZXIgc3VjaAorICAgICAgICAgIGFzICIlIiBQUkl1NjQgb3IgIiV0dSIg
bWFraW5nIGl0IG11Y2ggZWFzaWVyIHRvIGF2b2lkIHByb2JsZW1zIGR1ZSB0bworICAgICAgICAg
IHN1YnRsZSBkaWZmZXJlbmNlcyBiZXR3ZWVuIHBsYXRmb3JtcworICAgICAgICAtIGFsbG93cyB1
cyB0byB1c2UgU3RyaW5nVmlldyBpbiBzb21lIGNhc2VzIHRvIHNpZGVzdGVwIHRoZSBuZWVkIHRv
CisgICAgICAgICAgYWxsb2NhdGUgdGVtcG9yYXJ5IFdURjo6U3RyaW5nIG9iamVjdHMKKyAgICAg
ICAgLSBkb2VzIG5vdCByZXF1aXJlIGNvbnZlcnRpbmcgZWFjaCBXVEY6OlN0cmluZyB0byBhIEMg
c3RyaW5nLCBhbGxvd2luZworICAgICAgICAgIHVzIHRvIHJlbW92ZSBtYW55IGNhc2VzIG9mICIu
dXRmOCgpLmRhdGEoKSIgYW5kIHNpbWlsYXIgZXhwcmVzc2lvbnMsCisgICAgICAgICAgZWxpbWlu
YXRpbmcgdGhlIGFsbG9jYXRpb24gb2YgdGVtcG9yYXJ5IFdURjo6Q1N0cmluZyBvYmplY3RzCisK
KyAgICAgICAgVGhpcyBwYXRjaCBjb3ZlcnMgYSBiYXRjaCBvZiBlYXNpZXN0LXRvLWNvbnZlcnQg
Y2FsbCBzaXRlcy4KKyAgICAgICAgTGF0ZXIgcGF0Y2hlcyB3aWxsIGFsbG93IHVzIHRvIGRlcHJl
Y2F0ZSBvciByZW1vdmUgU3RyaW5nOjpmb3JtYXQuCisKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjphZGRSZWNvcmQpOiBVc2UgbWFrZVN0
cmluZy4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDdXJzb3JJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJl
Y29yZHNEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldEFsbFJlY29yZHNEYXRhOjps
b2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQkdldFJlY29yZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCR2V0UmVj
b3JkRGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpJREJJbmRleEluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcgY29uc3QpOiBEaXR0by4KKyAg
ICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCSXRlcmF0ZUN1cnNvckRhdGE6OmxvZ2dpbmdTdHJpbmcg
Y29uc3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2Jq
ZWN0U3RvcmVJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlSW5mbzo6
Y29uZGVuc2VkTG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZpZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SURCUmVzb3VyY2VJZGVudGlmaWVyOjpsb2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8u
CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpmb3JtYXRFcnJvck1lc3NhZ2UpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTEVycm9yLmg6CisgICAgICAgIChXZWJDb3JlOjpTUUxFcnJvcjo6Y3JlYXRl
KTogRGl0dG8uCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bToKKyAgICAgICAgKEdlbmVyYXRlSW1wbGVtZW50YXRpb24pOiBVc2UgbWFrZVN0cmluZy4KKwor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxUcmFjZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RE9NSklU
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RW5hYmxlZEJ5
U2V0dGluZy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEV4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5v
SWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnNXaXRoU2VxdWVuY2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdElu
aGVyaXRhbmNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVu
dGVkQXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RUeXBlZGVmcy5jcHA6CisgICAgICAgIFVwZGF0ZWQgZXhwZWN0ZWQgcmVzdWx0cy4KKzoKKyAg
ICAgICAgKiBjc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OnBhcnNlSGV4Q29sb3IpOiBVc2Ug
U3RyaW5nOjpudW1iZXIKKyAgICAgICAgYW5kIG1ha2VTdHJpbmcuCisKKyAgICAgICAgKiBodG1s
L0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVt
ZW50OjpzZXRMZW5ndGgpOiBVc2UgbWFrZVN0cmluZy4KKyAgICAgICAgKiBodG1sL0ltYWdlRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEb2N1bWVudDo6aW1hZ2VVcGRhdGVk
KTogRGl0dG8uCisgICAgICAgICogaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpYU1NBdWRpdG9yOjppbml0KTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9y
L0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9ja2luZ1VuYXZhaWxhYmxlKTogRGl0dG8u
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXRBdHRh
Y2hlZFdpbmRvdyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRD
bGllbnRMb2NhbDo6c2V0RGVidWdnaW5nRW5hYmxlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFi
bGVkKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUpOiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0
b3IvYWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaW5zcGVj
dG9yL2FnZW50cy9JbnNwZWN0b3JJbmRleGVkREJBZ2VudC5jcHA6IERpdHRvLgorICAgICAgICAq
IHBhZ2UvTWVtb3J5UmVsZWFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsb2dNZW1vcnlTdGF0
aXN0aWNzQXRUaW1lT2ZEZWF0aCk6IERpdHRvLgorCisgICAgICAgICogcGFnZS9jb2NvYS9SZXNv
dXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0Qnl0ZU51
bWJlcik6IFVzZSBTdHJpbmc6Om51bWJlci4KKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlVXNh
Z2VPdmVybGF5OjpwbGF0Zm9ybURyYXcpOiBVc2Ugc3RyaW5nIGNvbmNhdGVuYXRpb24uCisKKyAg
ICAgICAgKiBwYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmxvZ0Zvb3RwcmludENvbXBhcmlzb24pOiBVc2UgbWFrZVN0cmluZy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6VGltaW5nRnVuY3Rpb246OmNzc1RleHQgY29uc3QpOiBEaXR0by4KKworICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBs
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbDo6aWQgY29u
c3QpOiBVc2UgQXRvbWljU3RyaW5nOjpudW1iZXIuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFTYW1wbGVBVkZPYmpDLmg6CisgICAgICAgIChXZWJD
b3JlOjpNZWRpYVNhbXBsZUFWRk9iakM6Ok1lZGlhU2FtcGxlQVZGT2JqQyk6IERpdHRvLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3IpOiBV
c2UgbWFrZVN0cmluZy4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRl
Q29udGVudHNJbWFnZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNB
Ojp1cGRhdGVDb250ZW50c1JlY3RzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0xheWVyQ0E6OmNyZWF0ZVRyYW5zZm9ybUFuaW1hdGlvbnNGcm9tS2V5ZnJhbWVzKTogRGl0dG8u
CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQpOiBEaXR0
by4KKworICAgICAgICAqIHBsYXRmb3JtL21vY2svbWVkaWFzb3VyY2UvTW9ja1NvdXJjZUJ1ZmZl
clByaXZhdGUuY3BwOiBVc2UgU3RyaW5nOjpudW1iZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9u
ZXR3b3JrL1BhcnNlZENvbnRlbnRSYW5nZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXJzZWRD
b250ZW50UmFuZ2U6OmhlYWRlclZhbHVlIGNvbnN0KTogVXNlIG1ha2VTdHJpbmcuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcDog
UmVtb3ZlZCBzb21lIHVubmVjZXNzYXJ5CisgICAgICAgIGNvbXBpbGVyIGNvbmRpdGlvbmFscyBh
bmQgcmVvcmdhbml6ZWQgdGhlIHN0YXJ0L3N0b3Agb2YgbmFtZXNwYWNlcy4KKyAgICAgICAgKFdl
YkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbik6
IFVzZSBtYWtlU3RyaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVuYXV0aG9yaXplZFNRTEZ1bmN0aW9uKTogVXNlIG1h
a2VTdHJpbmcuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyk6
IERpdHRvLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvUmVnaXN0cmF0aW9uRGF0
YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmVuc3Vy
ZVZhbGlkUmVjb3Jkc1RhYmxlKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpSZWdpc3RyYXRp
b25EYXRhYmFzZTo6aW1wb3J0UmVjb3Jkcyk6IERpdHRvLgorCiAyMDE4LTEyLTE1ICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFJUQ1J0cFNlbmRlci5z
ZXRQYXJhbWV0ZXJzIHRvIGFjdGl2YXRlIHNwZWNpZmljIGVuY29kaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKaW5kZXggNTNlNTAwODlmYzUyMTJkZGJkMWFiYjJhOTYxMzI5MDg4NmJjZTRkMC4uY2YwMzg4
YzYyMGNkYjAxYTk5NTcyZjJjZmMxYWU4ODMxYmEzOWYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTgtMTItMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJlcGxhY2UgbWFueSB1c2VzIG9mIFN0cmluZzo6Zm9ybWF0IHdpdGggbW9y
ZSB0eXBlLXNhZmUgYWx0ZXJuYXRpdmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTI3NDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHBhbC9GaWxlU2l6ZUZvcm1hdHRlci5jcHA6CisgICAgICAgIChm
aWxlU2l6ZURlc2NyaXB0aW9uKTogVXNlIG1ha2VTdHJpbmcuCisKIDIwMTgtMTItMTEgIEp1c3Rp
biBNaWNoYXVkICA8anVzdGluX21pY2hhdWRAYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVu
dCBmZWF0dXJlIGZsYWcgZm9yIENTUyBUeXBlZCBPTQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlODg4ZDhiMGIyMzkz
YzhmNjQ5M2IxNThiY2VhODRmNWI1NjE5MzUzLi4zMzg4MjFkODQyNzgzYTk5ZjJhY2I2YTg2ZDA2
N2EzYTYyYmFlYjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE4LTEyLTE1ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIG1hbnkgdXNlcyBv
ZiBTdHJpbmc6OmZvcm1hdCB3aXRoIG1vcmUgdHlwZS1zYWZlIGFsdGVybmF0aXZlcworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzQyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViTWVt
b3J5U2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1lbW9yeVNhbXBsZXI6OndyaXRl
SGVhZGVycyk6IFVzZSBtYWtlU3RyaW5nLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6
TG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6IFVzZSBzdHJpbmcgY29uY2F0ZW50
YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6aW5zcGVjdG9yUGFnZUdyb3VwSWRlbnRpZmllckZvclBhZ2UpOiBV
c2UgbWFrZVN0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGlu
Zyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6c3RhcnRNZW1vcnlT
YW1wbGVyKTogRGl0dG8uCisKIDIwMTgtMTItMTQgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBh
cHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IHRoZSBidWlsZCB3aXRoIHJlY2Vu
dCBTREtzLgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdEJhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdEJhc2UuY3BwCmluZGV4IGUzMGM2MDE0MTc0YzgxMzgzMDg5YjBiYzA1Mjc2OTU3
ZmY4YTIzY2EuLjg2N2UwYjUyZDQ2YmVjZmViNmI2ZjYzNTE3YmQyN2ViNjgwZGIwZWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNl
LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
QmFzZS5jcHAKQEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlICJOYXRpdmVTdGRGdW5jdGlvbkNl
bGwuaCIKICNpbmNsdWRlICJTY3JpcHRGdW5jdGlvbkNhbGwuaCIKICNpbmNsdWRlIDx3dGYvSlNP
TlZhbHVlcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9y
IHsKIApAQCAtOTEsNyArOTEsNyBAQCBSZWY8SlNPTjo6VmFsdWU+IEluamVjdGVkU2NyaXB0QmFz
ZTo6bWFrZUNhbGwoRGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsJiBmdQogCiAgICAgUmVm
UHRyPEpTT046OlZhbHVlPiByZXN1bHRKU09OVmFsdWUgPSB0b0luc3BlY3RvclZhbHVlKCptX2lu
amVjdGVkU2NyaXB0T2JqZWN0LnNjcmlwdFN0YXRlKCksIHJlc3VsdEpTVmFsdWUpOwogICAgIGlm
ICghcmVzdWx0SlNPTlZhbHVlKQotICAgICAgICByZXR1cm4gSlNPTjo6VmFsdWU6OmNyZWF0ZShT
dHJpbmc6OmZvcm1hdCgiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hhaW4gKG11c3Qg
bm90IGJlIGxvbmdlciB0aGFuICVkKSIsIEpTT046OlZhbHVlOjptYXhEZXB0aCkpOworICAgICAg
ICByZXR1cm4gSlNPTjo6VmFsdWU6OmNyZWF0ZShtYWtlU3RyaW5nKCJPYmplY3QgaGFzIHRvbyBs
b25nIHJlZmVyZW5jZSBjaGFpbiAobXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gIiwgSlNPTjo6VmFs
dWU6Om1heERlcHRoLCAnKScpKTsKIAogICAgIHJldHVybiByZXN1bHRKU09OVmFsdWUucmVsZWFz
ZU5vbk51bGwoKTsKIH0KQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEluamVjdGVkU2NyaXB0QmFz
ZTo6bWFrZUFzeW5jQ2FsbChEZXByZWNhdGVkOjpTY3JpcHRGdW5jdGlvbkNhbGwmIGZ1bmN0aW9u
LAogICAgICAgICAgICAgaWYgKGF1dG8gcmVzdWx0SlNPTlZhbHVlID0gdG9JbnNwZWN0b3JWYWx1
ZSgqZXhlYywgZXhlYy0+YXJndW1lbnQoMCkpKQogICAgICAgICAgICAgICAgIGNoZWNrQXN5bmND
YWxsUmVzdWx0KHJlc3VsdEpTT05WYWx1ZSwgY2FsbGJhY2spOwogICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIGNoZWNrQXN5bmNDYWxsUmVzdWx0KEpTT046OlZhbHVlOjpjcmVhdGUo
U3RyaW5nOjpmb3JtYXQoIk9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluIChtdXN0
IG5vdCBiZSBsb25nZXIgdGhhbiAlZCkiLCBKU09OOjpWYWx1ZTo6bWF4RGVwdGgpKSwgY2FsbGJh
Y2spOworICAgICAgICAgICAgICAgIGNoZWNrQXN5bmNDYWxsUmVzdWx0KEpTT046OlZhbHVlOjpj
cmVhdGUobWFrZVN0cmluZygiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hhaW4gKG11
c3Qgbm90IGJlIGxvbmdlciB0aGFuICIsIEpTT046OlZhbHVlOjptYXhEZXB0aCwgJyknKSksIGNh
bGxiYWNrKTsKICAgICAgICAgICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6Ompz
VW5kZWZpbmVkKCkpOwogICAgICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIu
Y3BwCmluZGV4IGFhNGViNGUzZDllYmZmMDA2YzQ4NzQ0NTdiNTNkNjBkZTQxNjAyMGEuLjdkZmI2
Y2U3MGE1N2JjZGVkYWNlY2I2Njg5YjdiNjI1ZmU3NDFhNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3Bh
dGNoZXIuY3BwCkBAIC0yOTEsMTkgKzI5MSwxOSBAQCBUIEJhY2tlbmREaXNwYXRjaGVyOjpnZXRQ
cm9wZXJ0eVZhbHVlKEpTT046Ok9iamVjdCogb2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUsCiAK
ICAgICBpZiAoIW9iamVjdCkgewogICAgICAgICBpZiAoIW91dF9vcHRpb25hbFZhbHVlRm91bmQp
Ci0gICAgICAgICAgICByZXBvcnRQcm90b2NvbEVycm9yKEJhY2tlbmREaXNwYXRjaGVyOjpJbnZh
bGlkUGFyYW1zLCBTdHJpbmc6OmZvcm1hdCgiJ3BhcmFtcycgb2JqZWN0IG11c3QgY29udGFpbiBy
ZXF1aXJlZCBwYXJhbWV0ZXIgJyVzJyB3aXRoIHR5cGUgJyVzJy4iLCBuYW1lLnV0ZjgoKS5kYXRh
KCksIHR5cGVOYW1lKSk7CisgICAgICAgICAgICByZXBvcnRQcm90b2NvbEVycm9yKEJhY2tlbmRE
aXNwYXRjaGVyOjpJbnZhbGlkUGFyYW1zLCBtYWtlU3RyaW5nKCIncGFyYW1zJyBvYmplY3QgbXVz
dCBjb250YWluIHJlcXVpcmVkIHBhcmFtZXRlciAnIiwgbmFtZSwgIicgd2l0aCB0eXBlICciLCB0
eXBlTmFtZSwgIicuIikpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIGF1
dG8gZmluZFJlc3VsdCA9IG9iamVjdC0+ZmluZChuYW1lKTsKICAgICBpZiAoZmluZFJlc3VsdCA9
PSBvYmplY3QtPmVuZCgpKSB7CiAgICAgICAgIGlmICghb3V0X29wdGlvbmFsVmFsdWVGb3VuZCkK
LSAgICAgICAgICAgIHJlcG9ydFByb3RvY29sRXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFs
aWRQYXJhbXMsIFN0cmluZzo6Zm9ybWF0KCJQYXJhbWV0ZXIgJyVzJyB3aXRoIHR5cGUgJyVzJyB3
YXMgbm90IGZvdW5kLiIsIG5hbWUudXRmOCgpLmRhdGEoKSwgdHlwZU5hbWUpKTsKKyAgICAgICAg
ICAgIHJlcG9ydFByb3RvY29sRXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFsaWRQYXJhbXMs
IG1ha2VTdHJpbmcoIlBhcmFtZXRlciAnIiwgbmFtZSwgIicgd2l0aCB0eXBlICciLCB0eXBlTmFt
ZSwgIicgd2FzIG5vdCBmb3VuZC4iKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
CiAgICAgaWYgKCFhc01ldGhvZCgqZmluZFJlc3VsdC0+dmFsdWUsIHJlc3VsdCkpIHsKLSAgICAg
ICAgcmVwb3J0UHJvdG9jb2xFcnJvcihCYWNrZW5kRGlzcGF0Y2hlcjo6SW52YWxpZFBhcmFtcywg
U3RyaW5nOjpmb3JtYXQoIlBhcmFtZXRlciAnJXMnIGhhcyB3cm9uZyB0eXBlLiBJdCBtdXN0IGJl
ICclcycuIiwgbmFtZS51dGY4KCkuZGF0YSgpLCB0eXBlTmFtZSkpOworICAgICAgICByZXBvcnRQ
cm90b2NvbEVycm9yKEJhY2tlbmREaXNwYXRjaGVyOjpJbnZhbGlkUGFyYW1zLCBtYWtlU3RyaW5n
KCJQYXJhbWV0ZXIgJyIsIG5hbWUsICInIGhhcyB3cm9uZyB0eXBlLiBJdCBtdXN0IGJlICciLCB0
eXBlTmFtZSwgIicuIikpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29u
c29sZUFnZW50LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0lu
c3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKaW5kZXggNGNmZWQ3YzU1ZjQ2OGRiNGViMWI1MGY1MGE4
MjRjM2ZkZDdmZWE5OS4uM2ZjNWU5OTJhOTUwZjIwMTlmOTE2NDhkMGQxYWU3ZDI3MzZlNDJmYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ29uc29sZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5j
bHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9y
eS5oIgogI2luY2x1ZGUgIlNjcmlwdE9iamVjdC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgog
CiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtNzksNyArNzksNyBAQCB2b2lkIEluc3BlY3Rv
ckNvbnNvbGVBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKICAgICBtX2VuYWJsZWQgPSB0cnVl
OwogCiAgICAgaWYgKG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpIHsKLSAgICAgICAgQ29u
c29sZU1lc3NhZ2UgZXhwaXJlZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VU
eXBlOjpMb2csIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgU3RyaW5nOjpmb3JtYXQoIiVkIGNvbnNv
bGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50
KSk7CisgICAgICAgIENvbnNvbGVNZXNzYWdlIGV4cGlyZWRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
Ok90aGVyLCBNZXNzYWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJp
bmcobV9leHBpcmVkQ29uc29sZU1lc3NhZ2VDb3VudCwgIiBjb25zb2xlIG1lc3NhZ2VzIGFyZSBu
b3Qgc2hvd24uIikpOwogICAgICAgICBleHBpcmVkTWVzc2FnZS5hZGRUb0Zyb250ZW5kKCptX2Zy
b250ZW5kRGlzcGF0Y2hlciwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIsIGZhbHNlKTsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2pzYy5jcHAKaW5kZXggYTg0Y2MyMzg5NWVlZGRhNmQ0YTFmZWM1NDFhYzI0
MDgwMzY1ZWUzZi4uNTk4ZjI1M2RiODI1NzkyZWFhMmFhNTZhYTVlM2M2Zjk3NzEyMDY1MCAxMDA2
NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2pzYy5jcHAKQEAgLTg5LDYgKzg5LDcgQEAKICNpbmNsdWRlIDx3dGYvU3RyaW5n
UHJpbnRTdHJlYW0uaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CiAKICNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUgPGRpcmVjdC5oPgpAQCAt
MTE2NCw3ICsxMTY1LDcgQEAgcHVibGljOgogCiAgICAgU3RhY2tWaXNpdG9yOjpTdGF0dXMgb3Bl
cmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0CiAgICAgewotICAgICAgICBtX3Ry
YWNlLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiICAgICV6dSAgICVzXG4iLCB2aXNpdG9yLT5pbmRl
eCgpLCB2aXNpdG9yLT50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgbV90cmFj
ZS5hcHBlbmQobWFrZVN0cmluZygiICAgICIsIHZpc2l0b3ItPmluZGV4KCksICIgICAiLCB2aXNp
dG9yLT50b1N0cmluZygpLCAnXG4nKSk7CiAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0b3I6OkNv
bnRpbnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYWUzZDY4MDE4NTMwMGQ0ZmIyYzJhMjIwN2E3
M2EzOTE3ZGU4ZjM0YS4uMWU4ZDllM2NiM2MwMjYxZGNkNTgzMDczNThhMDQ5N2I4NTA0NjNmYyAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9y
bWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVG
b3JtYXQuY3BwCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6Omlu
aXRpYWxpemVEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9jYWwKICAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICAgICAgdHogPSBj
YW5vbmljYWxpemVUaW1lWm9uZU5hbWUob3JpZ2luYWxUeik7CiAgICAgICAgIGlmICh0ei5pc051
bGwoKSkgewotICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKCZleGVjLCBzY29wZSwgU3RyaW5n
Ojpmb3JtYXQoImludmFsaWQgdGltZSB6b25lOiAlcyIsIG9yaWdpbmFsVHoudXRmOCgpLmRhdGEo
KSkpOworICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKCZleGVjLCBzY29wZSwgImludmFsaWQg
dGltZSB6b25lOiAiICsgb3JpZ2luYWxUeik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
IH0KICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dC5jcHAKaW5kZXggN2ExOGIzZGJkODk4MDYzZjU0M2Q5N2JiNGQwYTM3OGY5MzVjMDhmOC4uMTc5
NjAxNzFmOGIyODE4ZGU2NDQ2ZTE5MzJkYTBlY2NiMGM3MjBmOCAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTU1Myw3ICs1NTMsNyBAQCBWZWN0
b3I8U3RyaW5nPiBjYW5vbmljYWxpemVMb2NhbGVMaXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFs
dWUgbG9jYWxlcykKIAogICAgICAgICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6ZWRUYWcgPSBjYW5v
bmljYWxpemVMYW5ndWFnZVRhZyh0YWctPnZhbHVlKCZzdGF0ZSkpOwogICAgICAgICAgICAgaWYg
KGNhbm9uaWNhbGl6ZWRUYWcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2Vw
dGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKCZzdGF0ZSwgU3RyaW5nOjpmb3Jt
YXQoImludmFsaWQgbGFuZ3VhZ2UgdGFnOiAlcyIsIHRhZy0+dmFsdWUoJnN0YXRlKS51dGY4KCku
ZGF0YSgpKSkpOworICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUs
IGNyZWF0ZVJhbmdlRXJyb3IoJnN0YXRlLCAiaW52YWxpZCBsYW5ndWFnZSB0YWc6ICIgKyB0YWct
PnZhbHVlKCZzdGF0ZSkpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4o
KTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVl
LmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKaW5kZXggZTQwNTc3Yzc2NjAzMTVm
Y2M4YmU1MjgxMjA3NjRiNDgyMzE1NmFhNy4uNzEzYTc5ZWY3OGVhZGRhNWQ1ZTliY2QyMmIxZTQ2
ODhhMjg5ZWRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVk
ZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8
d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV1RG
IHsKIApAQCAtNzUsNyArNzUsNyBAQCB2b2lkIFdvcmtRdWV1ZTo6Y29uY3VycmVudEFwcGx5KHNp
emVfdCBpdGVyYXRpb25zLCBXVEY6OkZ1bmN0aW9uPHZvaWQgKHNpemVfdCBpbgogCiAgICAgICAg
ICAgICBtX3dvcmtlcnMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eSh0aHJlYWRDb3VudCk7CiAgICAg
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgdGhyZWFkQ291bnQ7ICsraSkgewotICAg
ICAgICAgICAgICAgIG1fd29ya2Vycy5hcHBlbmQoVGhyZWFkOjpjcmVhdGUoU3RyaW5nOjpmb3Jt
YXQoIlRocmVhZFBvb2wgV29ya2VyICV1IiwgaSkudXRmOCgpLmRhdGEoKSwgW3RoaXNdIHsKKyAg
ICAgICAgICAgICAgICBtX3dvcmtlcnMuYXBwZW5kKFRocmVhZDo6Y3JlYXRlKG1ha2VTdHJpbmco
IlRocmVhZFBvb2wgV29ya2VyICIsIGkpLnV0ZjgoKS5kYXRhKCksIFt0aGlzXSB7CiAgICAgICAg
ICAgICAgICAgICAgIHRocmVhZEJvZHkoKTsKICAgICAgICAgICAgICAgICB9KSk7CiAgICAgICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcCBiL1NvdXJjZS9XVEYv
d3RmL2R0b2EuY3BwCmluZGV4IDg0NjU1ODMwZTkwZmI3ZWI3NTRlYzdkZDk0MGIyNTNlY2E1ZTRl
NTIuLjY4MzMxNGZmZDRlOThhNWZkYzA4NTg2ZmM4Nzc4ODFiMmFiNmNhYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL2R0b2EuY3BwCkBA
IC0xMjcyLDcgKzEyNzIsNyBAQCBzdGF0aWMgaW5saW5lIGNvbnN0IGNoYXIqIGZvcm1hdFN0cmlu
Z1RydW5jYXRpbmdUcmFpbGluZ1plcm9zSWZOZWVkZWQoTnVtYmVyVG9TdAogCiBjb25zdCBjaGFy
KiBudW1iZXJUb0ZpeGVkUHJlY2lzaW9uU3RyaW5nKGRvdWJsZSBkLCB1bnNpZ25lZCBzaWduaWZp
Y2FudEZpZ3VyZXMsIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZlciwgYm9vbCB0cnVuY2F0ZVRy
YWlsaW5nWmVyb3MpCiB7Ci0gICAgLy8gTWltaWMgU3RyaW5nOjpmb3JtYXQoIiUuW3ByZWNpc2lv
bl1nIiwgLi4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGluZyBmYWNpbGl0aWVzLgorICAgIC8vIE1p
bWljIHNwcmludGYoIiUuW3ByZWNpc2lvbl1nIiwgLi4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGlu
ZyBmYWNpbGl0aWVzLgogICAgIC8vICJnIjogU2lnbmVkIHZhbHVlIHByaW50ZWQgaW4gZiBvciBl
IGZvcm1hdCwgd2hpY2hldmVyIGlzIG1vcmUgY29tcGFjdCBmb3IgdGhlIGdpdmVuIHZhbHVlIGFu
ZCBwcmVjaXNpb24uCiAgICAgLy8gVGhlIGUgZm9ybWF0IGlzIHVzZWQgb25seSB3aGVuIHRoZSBl
eHBvbmVudCBvZiB0aGUgdmFsdWUgaXMgbGVzcyB0aGFuIOKAkzQgb3IgZ3JlYXRlciB0aGFuIG9y
IGVxdWFsIHRvIHRoZQogICAgIC8vIHByZWNpc2lvbiBhcmd1bWVudC4gVHJhaWxpbmcgemVyb3Mg
YXJlIHRydW5jYXRlZCwgYW5kIHRoZSBkZWNpbWFsIHBvaW50IGFwcGVhcnMgb25seSBpZiBvbmUg
b3IgbW9yZSBkaWdpdHMgZm9sbG93IGl0LgpAQCAtMTI4Nyw3ICsxMjg3LDcgQEAgY29uc3QgY2hh
ciogbnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhkb3VibGUgZCwgdW5zaWduZWQgc2lnbmlm
aWNhbnRGaWd1cmVzLAogCiBjb25zdCBjaGFyKiBudW1iZXJUb0ZpeGVkV2lkdGhTdHJpbmcoZG91
YmxlIGQsIHVuc2lnbmVkIGRlY2ltYWxQbGFjZXMsIE51bWJlclRvU3RyaW5nQnVmZmVyIGJ1ZmZl
cikKIHsKLSAgICAvLyBNaW1pYyBTdHJpbmc6OmZvcm1hdCgiJS5bcHJlY2lzaW9uXWYiLCAuLi4p
LCBidXQgdXNlIGR0b2FzIHJvdW5kaW5nIGZhY2lsaXRpZXMuCisgICAgLy8gTWltaWMgc3ByaW50
ZigiJS5bcHJlY2lzaW9uXWYiLCAuLi4pLCBidXQgdXNlIGR0b2FzIHJvdW5kaW5nIGZhY2lsaXRp
ZXMuCiAgICAgLy8gImYiOiBTaWduZWQgdmFsdWUgaGF2aW5nIHRoZSBmb3JtIFsg4oCTIF1kZGRk
LmRkZGQsIHdoZXJlIGRkZGQgaXMgb25lIG9yIG1vcmUgZGVjaW1hbCBkaWdpdHMuCiAgICAgLy8g
VGhlIG51bWJlciBvZiBkaWdpdHMgYmVmb3JlIHRoZSBkZWNpbWFsIHBvaW50IGRlcGVuZHMgb24g
dGhlIG1hZ25pdHVkZSBvZiB0aGUgbnVtYmVyLCBhbmQKICAgICAvLyB0aGUgbnVtYmVyIG9mIGRp
Z2l0cyBhZnRlciB0aGUgZGVjaW1hbCBwb2ludCBkZXBlbmRzIG9uIHRoZSByZXF1ZXN0ZWQgcHJl
Y2lzaW9uLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCBhOGE0ODA2N2Mw
ZGM2NzdkZTk1YjBmNjM1NTUyOThkMjM1Mjk1MDYwLi5hMmVlYjUyNGE5NDI1YWRhMTk3MmI1MGE4
YzZhNTZiOGVjYjY3ZjQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApAQCAt
NTUsNiArNTUsNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL1N0cm9uZ0lubGluZXMuaD4K
ICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7
CkBAIC0xODQ0LDcgKzE4NDUsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmFk
ZFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQogICAgICAgICB9
CiAKICAgICAgICAgLy8gV2UgZG9uJ3QgYWxyZWFkeSBoYXZlIGEgZmlsZSBmb3IgdGhpcyBibG9i
VVJMLCBzbyBjb21taXQgb3VyIGZpbGUgYXMgYSB1bmlxdWUgZmlsZW5hbWUKLSAgICAgICAgU3Ry
aW5nIHN0b3JlZEZpbGVuYW1lID0gU3RyaW5nOjpmb3JtYXQoIiUiIFBSSWQ2NCAiLmJsb2IiLCBw
b3RlbnRpYWxGaWxlTmFtZUludGVnZXIpOworICAgICAgICBTdHJpbmcgc3RvcmVkRmlsZW5hbWUg
PSBtYWtlU3RyaW5nKHBvdGVudGlhbEZpbGVOYW1lSW50ZWdlciwgIi5ibG9iIik7CiAgICAgICAg
IHsKICAgICAgICAgICAgIGF1dG8qIHNxbCA9IGNhY2hlZFN0YXRlbWVudChTUUw6OkFkZEJsb2JG
aWxlbmFtZSwgIklOU0VSVCBJTlRPIEJsb2JGaWxlcyBWQUxVRVMgKD8sID8pOyJfcyk7CiAgICAg
ICAgICAgICBpZiAoIXNxbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwCmluZGV4IDBkM2UzMzg4ZjhmMjcyYjFk
ZmMzNTU2Njk5YTViZDg4YzlkNDY0MzEuLjBlNmQ5Y2RlYjFmZTFiN2Q3OTA5ZWVjNjVjNTNlMjgz
NmYyNDQzNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3No
YXJlZC9JREJDdXJzb3JJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJJREJEYXRhYmFzZS5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uLmgiCiAjaW5jbHVkZSAi
SW5kZXhlZERCLmgiCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMTAwLDEzICsxMDEsMTUgQEAgSURCQ3Vy
c29ySW5mbyBJREJDdXJzb3JJbmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAjaWYgIUxP
R19ESVNBQkxFRAorCiBTdHJpbmcgSURCQ3Vyc29ySW5mbzo6bG9nZ2luZ1N0cmluZygpIGNvbnN0
CiB7CiAgICAgaWYgKG1fc291cmNlID09IEluZGV4ZWREQjo6Q3Vyc29yU291cmNlOjpJbmRleCkK
LSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8Q3JzcjogJXMgSWR4ICUiIFBSSXU2NCAi
LCBPUyAlIiBQUkl1NjQgIiwgdHggJXM+IiwgbV9jdXJzb3JJZGVudGlmaWVyLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpLCBtX3NvdXJjZUlkZW50aWZpZXIsIG1fb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBtX3RyYW5zYWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCI8Q3JzcjogIiwgbV9jdXJzb3JJZGVu
dGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgIiBJZHggIiwgbV9zb3VyY2VJZGVudGlmaWVyLCAiLCBP
UyAiLCBtX29iamVjdFN0b3JlSWRlbnRpZmllciwgIiwgdHggIiwgbV90cmFuc2FjdGlvbklkZW50
aWZpZXIubG9nZ2luZ1N0cmluZygpLCAnPicpOwogCi0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0
KCI8Q3JzcjogJXMgT1MgJSIgUFJJdTY0ICIsIHR4ICVzPiIsIG1fY3Vyc29ySWRlbnRpZmllci5s
b2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIsIG1f
dHJhbnNhY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAg
ICByZXR1cm4gbWFrZVN0cmluZygiPENyc3I6ICIsIG1fY3Vyc29ySWRlbnRpZmllci5sb2dnaW5n
U3RyaW5nKCksICIgT1MgIiwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIsICIsIHR4ICIsIG1fdHJh
bnNhY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKIH0KKwogI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0RhdGEuY3BwCmlu
ZGV4IDkyYjZiOTIzZGM4ZmU5Mjg3MWY3ZGJiZDllNzA0MzUwMzJhNTlkMWIuLmM5ODVkNzQ2Njg3
ZjI0NDIxZmZlYTFiMmQ0Mjg4ZGY2Y2Q3NTc3OTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNE
YXRhLmNwcApAQCAtMzgsMTIgKzM4LDE0IEBAIElEQkdldEFsbFJlY29yZHNEYXRhIElEQkdldEFs
bFJlY29yZHNEYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAjaWYgIUxPR19ESVNBQkxF
RAorCiBTdHJpbmcgSURCR2V0QWxsUmVjb3Jkc0RhdGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAog
ewogICAgIGlmIChpbmRleElkZW50aWZpZXIpCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1h
dCgiPEdldEFsbFJlY29yZHM6IElkeCAlIiBQUkl1NjQgIiwgT1MgJSIgUFJJdTY0ICIsICVzLCBy
YW5nZSAlcz4iLCBpbmRleElkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgZ2V0QWxs
VHlwZSA9PSBJbmRleGVkREI6OkdldEFsbFR5cGU6OktleXMgPyAiS2V5cyIgOiAiVmFsdWVzIiwg
a2V5UmFuZ2VEYXRhLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKLSAgICByZXR1cm4g
U3RyaW5nOjpmb3JtYXQoIjxHZXRBbGxSZWNvcmRzOiBPUyAlIiBQUkl1NjQgIiwgJXMsIHJhbmdl
ICVzPiIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgZ2V0QWxsVHlwZSA9PSBJbmRleGVkREI6Okdl
dEFsbFR5cGU6OktleXMgPyAiS2V5cyIgOiAiVmFsdWVzIiwga2V5UmFuZ2VEYXRhLmxvZ2dpbmdT
dHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxHZXRB
bGxSZWNvcmRzOiBJZHggIiwgaW5kZXhJZGVudGlmaWVyLCAiLCBPUyAiLCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsICIsICIsIGdldEFsbFR5cGUgPT0gSW5kZXhlZERCOjpHZXRBbGxUeXBlOjpLZXlz
ID8gIktleXMiIDogIlZhbHVlcyIsICIsIHJhbmdlICIsIGtleVJhbmdlRGF0YS5sb2dnaW5nU3Ry
aW5nKCksICc+Jyk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxHZXRBbGxSZWNvcmRzOiBPUyAi
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsICIsICIsIGdldEFsbFR5cGUgPT0gSW5kZXhlZERCOjpH
ZXRBbGxUeXBlOjpLZXlzID8gIktleXMiIDogIlZhbHVlcyIsICIsIHJhbmdlICIsIGtleVJhbmdl
RGF0YS5sb2dnaW5nU3RyaW5nKCksICc+Jyk7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAKaW5kZXggZDc4OTYyNjA0NzI5NmVkM2Qx
ODY2NmNkZTM4ZGRiZWRhZDdmOGQ3OC4uNDYzNDZkYzM0OTI5YmRjY2YwMjYwNjQ2YjA3MjJmZTU1
ZWVjMjQzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkdldFJlY29yZERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcApAQCAtMzgsMTAgKzM4LDEyIEBAIElE
QkdldFJlY29yZERhdGEgSURCR2V0UmVjb3JkRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIH0K
IAogI2lmICFMT0dfRElTQUJMRUQKKwogU3RyaW5nIElEQkdldFJlY29yZERhdGE6OmxvZ2dpbmdT
dHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiPEdldFJlY29yZDog
JXMgJXM+IiwgdHlwZSA9PSBJREJHZXRSZWNvcmREYXRhVHlwZTo6S2V5T25seSA/ICJLZXlPbmx5
IiA6ICJLZXkrVmFsdWUiLCBrZXlSYW5nZURhdGEubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRh
KCkpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8R2V0UmVjb3JkOiAiLCB0eXBlID09IElEQkdl
dFJlY29yZERhdGFUeXBlOjpLZXlPbmx5ID8gIktleU9ubHkiIDogIktleStWYWx1ZSIsICcgJywg
a2V5UmFuZ2VEYXRhLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKIH0KKwogI2VuZGlmCiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKaW5kZXggMjcyOTBmNGE0YTU0ZDhkZWQ5
YmY0Yjc3MWU5OTU5Nzg5ZDY0YWJiMC4uMTJjNWU2ZjJiNWM5YzcyYTYyY2YyMGNiZTA3NGY5NDRh
ZWNkNzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkluZGV4SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKQEAgLTI4LDYgKzI4LDggQEAKIAogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogSURCSW5kZXhJbmZvOjpJREJJ
bmRleEluZm8oKQpAQCAtNTAsMTkgKzUyLDIwIEBAIElEQkluZGV4SW5mbyBJREJJbmRleEluZm86
Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJ
REJJbmRleEluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QKIHsKICAgICBTdHJp
bmcgaW5kZW50U3RyaW5nOwogICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZW50OyArK2kpCiAg
ICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoIiAiKTsKLQotICAgIHJldHVybiBtYWtlU3RyaW5n
KGluZGVudFN0cmluZywgIkluZGV4OiAiLCBtX25hbWUsIFN0cmluZzo6Zm9ybWF0KCIgKCUiIFBS
SXU2NCAiKSBrZXlQYXRoOiAlc1xuIiwgbV9pZGVudGlmaWVyLCBXZWJDb3JlOjpsb2dnaW5nU3Ry
aW5nKG1fa2V5UGF0aCkudXRmOCgpLmRhdGEoKSkpOworICAgIHJldHVybiBtYWtlU3RyaW5nKGlu
ZGVudFN0cmluZywgIkluZGV4OiAiLCBtX25hbWUsICIgKCIsIG1faWRlbnRpZmllciwgIikga2V5
UGF0aDogIiwgV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyhtX2tleVBhdGgpLCAnXG4nKTsKIH0KIAog
U3RyaW5nIElEQkluZGV4SW5mbzo6Y29uZGVuc2VkTG9nZ2luZ1N0cmluZygpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8SWR4OiAlcyAoJSIgUFJJdTY0ICIpLCBPUyAoJSIg
UFJJdTY0ICIpPiIsIG1fbmFtZS51dGY4KCkuZGF0YSgpLCBtX2lkZW50aWZpZXIsIG1fb2JqZWN0
U3RvcmVJZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPElkeDogIiwgbV9uYW1l
LCAiICgiLCBtX2lkZW50aWZpZXIsICIpLCBPUyAoIiwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIs
ICIpPiIpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJz
b3JEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJ
dGVyYXRlQ3Vyc29yRGF0YS5jcHAKaW5kZXggZmFhZWRhOWZlYmU3NDA0ZjQ2NDczMzQ5ZTAxYjAz
MGY5NWU3OTM1MC4uNTkzZTE0OGQyNDUyODMwZTI5MWY2ZTY1YjZiZjg5NmQwOTY4MDIyYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJh
dGVDdXJzb3JEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwCkBAIC0zNiwxMCArMzYsMTIgQEAgSURCSXRl
cmF0ZUN1cnNvckRhdGEgSURCSXRlcmF0ZUN1cnNvckRhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0
CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJREJJdGVyYXRlQ3Vyc29yRGF0YTo6
bG9nZ2luZ1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8SXRy
OENyc3I6IGtleSAlcywgcHJpbWFyeUtleSAlcywgY291bnQgJXU+Iiwga2V5RGF0YS5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgcHJpbWFyeUtleURhdGEubG9nZ2luZ1N0cmluZygpLnV0
ZjgoKS5kYXRhKCksIGNvdW50KTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPEl0cjhDcnNyOiBr
ZXkgIiwga2V5RGF0YS5sb2dnaW5nU3RyaW5nKCksICIsIHByaW1hcnlLZXkgIiwgcHJpbWFyeUtl
eURhdGEubG9nZ2luZ1N0cmluZygpLCAiLCBjb3VudCAiLCBjb3VudCwgJz4nKTsKIH0KKwogI2Vu
ZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAK
aW5kZXggYjAwNzVmZTM3ODI5NzZhNmM1MDBkMzcxYTEzOTk4N2FmNjgxNjQ5YS4uY2U2NjNjZTky
N2MwZTE1ZGZiZjgxMGJmNGYxOWI4YWQwYzZlNjZiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5m
by5jcHAKQEAgLTE1Myw3ICsxNTMsNyBAQCBTdHJpbmcgSURCT2JqZWN0U3RvcmVJbmZvOjpsb2dn
aW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiAKIFN0cmluZyBJREJPYmplY3RTdG9yZUluZm86
OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmc6OmZv
cm1hdCgiPE9TOiAlcyAoJSIgUFJJdTY0ICIpPiIsIG1fbmFtZS51dGY4KCkuZGF0YSgpLCBtX2lk
ZW50aWZpZXIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8T1M6ICIsIG1fbmFtZSwgIiAoIiwg
bV9pZGVudGlmaWVyLCAiKT4iKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50
aWZpZXIuY3BwCmluZGV4IGQ3ZTNmMTc0MmQzMGZkZDQ1YmJlNWJmYzhmMWNlZjg0ODc4MjM5OWYu
LjRhMmFiY2FkMGQ4OWZhNGIxYmU2ZTdkYjY0ZDM5NzlkZGIyNzlmMjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlkZW50aWZp
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJS
ZXNvdXJjZUlkZW50aWZpZXIuY3BwCkBAIC05OCwxMSArOTgsMTQgQEAgYm9vbCBJREJSZXNvdXJj
ZUlkZW50aWZpZXI6OmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QKIH0KIAogI2lmICFM
T0dfRElTQUJMRUQKKwogU3RyaW5nIElEQlJlc291cmNlSWRlbnRpZmllcjo6bG9nZ2luZ1N0cmlu
ZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCI8JSIgUFJJdTY0IiwgJSIg
UFJJdTY0Ij4iLCBtX2lkYkNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3Jlc291cmNlTnVtYmVyKTsK
KyAgICByZXR1cm4gbWFrZVN0cmluZygnPCcsIG1faWRiQ29ubmVjdGlvbklkZW50aWZpZXIsICIs
ICIsIG1fcmVzb3VyY2VOdW1iZXIsICc+Jyk7CiB9CisKICNlbmRpZgorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggZWM5YjA1
ZjllNmVlZTQ2OTMyNTdkM2I5OTBmMDBiZDZiNzNjZjUwYS4uODczMTQzYzdjNDM5NmJjZTY3ODQ5
N2I3ZDE5ZmJkNWY5YmY5YTVhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTEwNyw3ICsxMDcsNyBAQCBzdGF0aWMgY29uc3QgY2hh
ciogZnVsbHlRdWFsaWZpZWRJbmZvVGFibGVOYW1lKCkKIAogc3RhdGljIFN0cmluZyBmb3JtYXRF
cnJvck1lc3NhZ2UoY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUVycm9yQ29kZSwgY29u
c3QgY2hhciogc3FsaXRlRXJyb3JNZXNzYWdlKQogewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1h
dCgiJXMgKCVkICVzKSIsIG1lc3NhZ2UsIHNxbGl0ZUVycm9yQ29kZSwgc3FsaXRlRXJyb3JNZXNz
YWdlKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVFcnJvckNv
ZGUsICcgJywgc3FsaXRlRXJyb3JNZXNzYWdlLCAnKScpOwogfQogCiBzdGF0aWMgYm9vbCBzZXRU
ZXh0VmFsdWVJbkRhdGFiYXNlKFNRTGl0ZURhdGFiYXNlJiBkYiwgY29uc3QgU3RyaW5nJiBxdWVy
eSwgY29uc3QgU3RyaW5nJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMRXJyb3IuaAppbmRleCA0ZTI3NmNhNzhmYzk1ZDc1OWNhZDMwZGVhZDA3YWQ2YTE3
OGU3MzI2Li42YjA3MmJiYjQyN2E4OWJiZmYzYWEwNDAwM2E5ZmU3MWVkODI5MjdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCkBAIC0yOSw3ICsy
OSw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgPHd0Zi9UaHJlYWRTYWZlUmVmQ291bnRl
ZC5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTM4LDExICszOCwxMSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxTUUxFcnJvcj4gY3JlYXRl
KHVuc2lnbmVkIGNvZGUsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgeyByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTUUxFcnJvcihjb2RlLCBtZXNzYWdlKSk7IH0KICAgICBzdGF0aWMgUmVmPFNRTEVycm9y
PiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgY2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNv
ZGUpCiAgICAgewotICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6Zm9ybWF0KCIl
cyAoJWQpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSkpOworICAgICAgICByZXR1cm4gY3JlYXRlKGNv
ZGUsIG1ha2VTdHJpbmcobWVzc2FnZSwgIiAoIiwgc3FsaXRlQ29kZSwgJyknKSk7CiAgICAgfQog
ICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFy
KiBtZXNzYWdlLCBpbnQgc3FsaXRlQ29kZSwgY29uc3QgY2hhciogc3FsaXRlTWVzc2FnZSkKICAg
ICB7Ci0gICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3RyaW5nOjpmb3JtYXQoIiVzICglZCAl
cykiLCBtZXNzYWdlLCBzcWxpdGVDb2RlLCBzcWxpdGVNZXNzYWdlKSk7CisgICAgICAgIHJldHVy
biBjcmVhdGUoY29kZSwgbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVDb2RlLCAnICcs
IHNxbGl0ZU1lc3NhZ2UsICcpJykpOwogICAgIH0KIAogICAgIHVuc2lnbmVkIGNvZGUoKSBjb25z
dCB7IHJldHVybiBtX2NvZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
RmlsZVNpemVGb3JtYXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9GaWxlU2l6ZUZv
cm1hdHRlci5jcHAKaW5kZXggNmFmNjUxMjdiNGFkODM5M2M1NGZhMGEyMDUwOTY1MWRjNjQ0OGU2
NC4uYzgyZGVjODZlY2VkZDQ0ZDNjNzA5ZTUzOTBmNWE0YjRkODhkZWRiNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9GaWxlU2l6ZUZvcm1hdHRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9GaWxlU2l6ZUZvcm1hdHRlci5jcHAKQEAgLTMzLDcgKzMzLDcgQEAg
U3RyaW5nIGZpbGVTaXplRGVzY3JpcHRpb24odWludDY0X3Qgc2l6ZSkKICAgICAvLyBGSVhNRTog
VGhlc2Ugc3RyaW5ncyBzaG91bGQgYmUgbG9jYWxpemVkLCBidXQgdGhhdCB3b3VsZCByZXF1aXJl
IGJyaW5naW5nIExvY2FsaXplZFN0cmluZ3MgaW50byBQQUwuCiAgICAgLy8gU2VlIDxodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc5MDE5PiBmb3IgbW9yZSBkZXRhaWxz
LgogICAgIGlmIChzaXplIDwgMTAwMCkKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIl
dHUgYnl0ZXMiLCBzaXplKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoc2l6ZSwgIiBieXRl
cyIpOwogICAgIGlmIChzaXplIDwgMTAwMDAwMCkKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9y
bWF0KCIlLjFmIEtCIiwgc2l6ZSAvIDEwMDAuKTsKICAgICBpZiAoc2l6ZSA8IDEwMDAwMDAwMDAp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpT
LnBtCmluZGV4IDEyMmM1MGYxZmQxNmU1MzhiYjQ0NzhkMTFjZDlkM2Q0ODdmNGNlN2EuLmE5MzQ1
M2FhZmY0NDZiMmEyNzBmZDg1YTk4MDUxMmZlZTI5Zjc3MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCkBAIC00NTU3LDcgKzQ1
NTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwp
O1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSlcbiIpOwotICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoXCJ1cmwgJXNcIiwgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFwidXJsIFwiICsgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4iKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5h
bWUuY3BwCmluZGV4IDZkOWJkMTdiNmQxNTRlMGJmMGE2ZmY4YjAxYjAwMWQzMzU2ZGZlNmUuLjE0
MWViOGVlNTY5MDRjZjM3NzJkOTZiZTZmYjM0ZTQ3ODIzNDBmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU0ludGVyZmFjZU5h
bWUuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBKU0ludGVyZmFjZU5hbWU6OmhlYXBTbmFw
c2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0ludGVyZmFjZU5hbWUqPihjZWxsKTsKICAgICBidWls
ZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkp
OwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAi
ICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7
CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCmlu
ZGV4IDA3OWM2NjYyOTRhZWVjYTgyNzRhZTJiY2U1ZWZlNGVhNzdiMTZiNGQuLjM1NjdhNzJkMDdm
ZDZjN2FlMWU0OGNiM2IzNDg4NDlmMjA4ODUzZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExpa2UuY3BwCkBAIC0zNDUsNyArMzQ1
LDcgQEAgdm9pZCBKU01hcExpa2U6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU01h
cExpa2UqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1
aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtlLmNwcAppbmRleCA5N2Q0ZjNhYjRmYTE2
MDJhZTQ5MGFlODZjOTZlMGMzODQ3OGJmOTM0Li5hYjI4MWYwNTlkNmIzMTdjMmM5MjMzZDBjNjgw
OWExZmY3OTZjZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFwTGlrZS5jcHAKQEAgLTI5NCw3ICsyOTQs
NyBAQCB2b2lkIEpTUmVhZE9ubHlNYXBMaWtlOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNSZWFkT25seU1hcExpa2UqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAg
ICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3Qu
Y3BwCmluZGV4IDZjYzIzYWQwMTMxZDExMmYyMmRhOGQ4YWRmMTIwNWJiYjFhZGIxNTcuLjJiNjE0
MTc2ZmMwODA5YTg1YTRmMGI2OWM3ZGJmZGM5ZTlhYzJiY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3Rp
dmVET01PYmplY3QuY3BwCkBAIC0yNTUsNyArMjU1LDcgQEAgdm9pZCBKU1Rlc3RBY3RpdmVET01P
YmplY3Q6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1
aWwKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+
KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpm
b3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCmluZGV4IDRhMDI3OTM2YjlkYjk5MzYwYmZk
ZDc4YTk3YjZiMzVkNjQ2ODZjYWUuLmExYmRhYjEwZjVlYTI5Njg4MGZhMDg4MjJkYWRjZTNkMWMw
OGU2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNwcApAQCAtNDM1LDcgKzQzNSw3IEBAIHZv
aWQgSlNUZXN0Q0VSZWFjdGlvbnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RDRVJlYWN0aW9ucyo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmlu
Z2lmaWVyLmNwcAppbmRleCAzNDJhMGRmOGQxZTI4MzUyODRiYzM2YmU2MWRiYmJmMjdiYjI4ZDBj
Li41ODBlMjQzNzM5M2M1ZTBmODljOWEyNzUyZTc0M2VjODk0NjY4MTI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAg
dm9pZCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBj
ZWxsLCBIZWFwU25hcHNob3RCdWlsZGUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0
TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsK
KyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6
aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAK
aW5kZXggM2FkOGMyMzc5M2E3YTY5YjgzMzRkZjViZDc1NDMyM2ZkOWFhYjcxMC4uZGJkNzE4MThj
MjkwZDAzZGFiZjNjMTU1NzA5MmQ4YWJkNjdiNjg0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNw
cApAQCAtNTI4LDcgKzUyOCw3IEBAIHZvaWQgSlNUZXN0Q2FsbFRyYWNlcjo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENhbGxUcmFjZXIqPihjZWxsKTsKICAgICBidWlsZGVy
LnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwog
ICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1
aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAg
ICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNC
dWlsdGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAppbmRleCAwMDhi
NWU4OTc2ODY5NWYyNWM4MzNiYTM0NjAxZDRiZTU3ZDBlMjQ4Li41YzhjNzg1NThjNTlhMmIxYjIz
NjhiMGJiNjE0M2MwNmQxY2UwYTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFz
c1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKQEAgLTE2OCw3ICsxNjgsNyBAQCB2b2lkIEpT
VGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yOjpoZWFwU25hcHNob3QoSlNDZWxsKiBj
ZWxsLCBIZWFwU25hcHNobwogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q2xh
c3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBw
ZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0
TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsK
KyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6
aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRo
Tm9JbnRlcmZhY2VPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50ZXJmYWNlT2JqZWN0LmNwcApp
bmRleCA1ZmU3NmM4OWViZmM4MDcwN2U0MzM4ODFhMTNmNmQwYTk1N2NkNTQ0Li5hMDE5MzZiZDll
NTc3ODQ2MmVlZDAwYzg4YzdmZmYwYWY1MTUwODZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9J
bnRlcmZhY2VPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHAK
QEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIEpTVGVzdEN1c3RvbUNvbnN0cnVjdG9yV2l0aE5vSW50
ZXJmYWNlT2JqZWN0OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZQogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q3VzdG9tQ29uc3RydWN0b3JXaXRoTm9JbnRlcmZhY2VP
YmplY3QqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1
aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RET01KSVQuY3BwCmluZGV4IDk1ZDc2NzA0NzM4OGUzOGMwMTAwNDI5
NWQ4Y2YxMzQ1NmJkNDRiZGUuLjgzYjBmN2Q5ZTRiNTM5NGMxZGQ0MDM0NGE0NjZlNTNkMDMzZGJl
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RET01KSVQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RET01KSVQuY3BwCkBAIC0xMjY2LDcgKzEyNjYsNyBAQCB2b2lkIEpTVGVzdERP
TUpJVDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdERPTUpJVCo+KGNlbGwp
OwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQo
InVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRleCAxMjdmYWE5NjdkMmFjNTM2
ZTQ2YWI5M2RiZjU2ZmQ1MjU0ZmUxOTExLi41YTMyOTYwMDU4NTVhM2Y2NGE0YWNjODQxYjNkZjNm
ODk5ZjJhMGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCkBAIC0zMDIs
NyArMzAyLDcgQEAgdm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWkKICAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdEVuYWJsZWRCeVNldHRpbmcqPihjZWxsKTsKICAgICBidWlsZGVyLnNl
dFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAg
IGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDVkYzE5MjcwNDliZTI3MjA1NTJhOThiN2RmMjM1YjBm
NWExNWJkMC4uMzNlMmY5ZDRhMGZjMzgxZjk2NmFiOWZiOGIxYzllNzA5MmYyODZjOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtMzExLDcgKzMxMSw3IEBAIHZvaWQg
SlNUZXN0RXZlbnRDb25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNu
YXBzaG90QnVpbGRlciYgYnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RF
dmVudENvbnN0cnVjdG9yKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1
aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggNzFl
M2JmMzc1NDQyOWVjN2E3Y2NjYTgzNTUxZDM5Mjg4YWMxZWVmMy4uNTRiOTIwNTc4MmY5NjVkM2I3
NTY5ZTljMzFkM2U1YTZiZmY1MWE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0y
NTQsNyArMjU0LDcgQEAgdm9pZCBKU1Rlc3RFdmVudFRhcmdldDo6aGVhcFNuYXBzaG90KEpTQ2Vs
bCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBp
ZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cAppbmRleCBkMzJjMDRjYzUwZWVkZjI2OWVkODAxZDY5MTIzZjZiNTA1NDA0NzIxLi4zNmQ2MjQx
MWE4ZDk5ZTEzM2U3NWFlMmJiMTIwMGI5OTNkNWQwYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNw
cApAQCAtMTg1LDcgKzE4NSw3IEBAIHZvaWQgSlNUZXN0RXhjZXB0aW9uOjpoZWFwU25hcHNob3Qo
SlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5z
ZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAg
ICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAg
IEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFj
aGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCmluZGV4IGFjMmJlYmIyZDkzMjRhMWEyYzJhZGQ2YTE2
MGQzN2M3NzVjMjNiOGYuLmE1OGZhNzhhNGJjOWIwYzcyZDdhZTUxNDkzNDliOTcyNWU1YmJhN2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTE5MCw3ICsx
OTAsNyBAQCB2b2lkIEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmhlYXBTbmFwc2hvdChKU0Nl
bGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBp
ZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2Jq
ZWN0LmNwcAppbmRleCBiMjBiODNjN2JlOWU1YjM3YjljYzU3NTg2NjNlMTc4NTU4NWUzOTJjLi5j
ZWMzNzFmNjhkNGRjN2RjOTkzNjczM2Y0N2I1NTlmYTdmNGY5MTU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xv
YmFsT2JqZWN0LmNwcApAQCAtNjE0LDcgKzYxNCw3IEBAIHZvaWQgSlNUZXN0R2xvYmFsT2JqZWN0
OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVy
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RHbG9iYWxPYmplY3QqPihjZWxs
KTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5k
ZXggNTc4OTI1MzdiZTg3ODMyNGE1ZGRlOGY2ZDFjNTkyYzFiOTYyYjcyNS4uMDkzYWRjYmE2ZTQ1
Njk4ZWI0ZDZiYTI5NWI0OTM0MGVjMWZlYWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSlNU
ZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwg
SGVhcFNuYXBzaG90QnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCAzNTVhZGNkOTBhZWZjZjU5
NWQwN2VkNTQ2ZTRjYWFiMjBiM2VlMjQ0Li42MTU4MDJkOTZlNzdlY2Y2MWU2ZTY3OTcyZDdiNmZm
OTZlYzc3OTNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSlNUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFw
U25hcHNoCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RG
b3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAg
YnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBz
aG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IDc2OTY3M2FmYmI0ZTYyMDFkOTRjMzJhODRj
ZjI0OWVlNjAzODhmZTYuLmE4NzEyMzE4NzlhOWYwYjY0ZGQ1Y2E5OTViNDAxNjU1MDI0YWU0MDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIu
Y3BwCkBAIC0yODUsNyArMjg1LDcgQEAgdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEIKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+
KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpm
b3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKaW5kZXggNmVhM2Y5NzQ1YjJhYjQ4Mjc2YzUxYWUz
ZGVhYTRjMWQ1ODA4YTI2OS4uZDZjNDFmYjEwYzM1NmQ1NmQwZWY5YTcyODFlOThiNzQ1Y2YwZWUx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKQEAgLTEwMjIsNyArMTAyMiw3IEBAIHZvaWQgSlNU
ZXN0SW50ZXJmYWNlOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWls
ZGVyJiBidWlsZGVyKQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJm
YWNlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJp
bmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJz
Y29yZS5jcHAKaW5kZXggY2ZmMzJmZjBlYjNhZGRhNzdmZTk0NjNhMmE0Zjk5Y2U2NThiNDk3MC4u
Yzk0MTgyYzI0NDQ0NzNkZDdjNTdhYWJhZjMwYjUxMDhhOTZmY2IwMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRp
bmdVbmRlcnNjb3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCkBAIC0xODUsNyArMTg1
LDcgQEAgdm9pZCBKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKj4oY2VsbCk7CiAgICAgYnVpbGRl
ci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsK
ICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBi
dWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiAr
IHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwog
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJs
ZS5jcHAKaW5kZXggYWMxZThlN2Y5ZWY4MjkyNzhlMjQ1ODQ1YTY2MjMxYTVmY2JjYWIwOC4uMWE5
MjM3NDcwYzhmZDY1ODFiZjA0NmEwNDBhMWU2ZWE3YzE3N2E0YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUu
Y3BwCkBAIC0yMzgsNyArMjM4LDcgQEAgdm9pZCBKU1Rlc3RJdGVyYWJsZTo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEl0ZXJhYmxlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5z
ZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAg
ICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAg
IEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0
TGlzdGVuZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDAwZmFmOWYwNTczZmQwMDc1ZGU4
ZGU1MTQ5ZThlYjUwODc0Yzk0ZmMuLmZhNzhkMDNjYzViYzdjZDk3MTc5MzRmYjAyNjhmN2Y0Njdk
NTkwZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAK
QEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6Omhl
YXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZQogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KGNlbGwpOwog
ICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndy
YXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkK
LSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVy
bCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5n
KCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllci5jcHAKaW5kZXggM2ZlYmQxY2RlYzQwZWNlZmJhMzJiY2ZjNDM2MzI0MzUxNWNlNmJjZC4u
OWMyYTJkZDkxY2NmOWVlZDFkYmM2ZDlkZDExNWNmOWMxN2NlZTM4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAK
QEAgLTMxOSw3ICszMTksNyBAQCB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYQogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhp
c09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6
OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggZTA1ZDY1NTQ2YmZhMTEzNmEwODY0
Mjk1ODQ3MmNmNTBjYTJkNTM1MC4uZTcyYTY2YTVjZTA1ZDBjNTY1MDAwZTk1NmI0ZDQyZmJmOTk1
MzFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0zMTksNyArMzE5LDcgQEAgdm9pZCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRl
ci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsK
ICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBi
dWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiAr
IHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwog
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKaW5kZXggZTAxNWIxNzhhNzY1MzhmODE5ZTUzYWZlN2M1ZmJiYTc0MTg0Y2EzYi4uNjdhZjll
MTllNTk3OWVhOGVjMjM5Njk5NzlhN2VmZTg1OTBhZDEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBA
IC0zNzMsNyArMzczLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFMKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhp
c09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6
OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGYxYTg0YThi
YWQ5YTVkNjA1YTEwZTQ5ZDljNWM0MjczZDk5Mjg3ZTEuLjAyMmQzY2RjM2ZlOTQwYzI0ZWNhODVh
YjNiZjhiMTg0ZTA2ZTc4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAK
QEAgLTIwNSw3ICsyMDUsNyBAQCB2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OmhlYXBTbmFw
c2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aQogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KGNlbGwpOwogICAgIGJ1
aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQo
KSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAg
ICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIs
IHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRm
OCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJs
ICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
KTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggODYyYjQ1OWZi
YjIxZDdkMTAxMjU2OTVmNWEwZWFlZmVkNzU0ZjZmNi4uYzA3ODdmNzU0NjQ3ZWI5MWEzMzc0YWRk
NTk5MjU5NjAyY2YxMmUwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllci5jcHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIEpTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVp
bAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxs
LCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBT
dHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0
TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggYzEwNWYxNWRiYWY4NWRiZjNmZTQ0MzNiYTdhODA1NWE4
NDJmYWE0Zi4uMjViZjBiMmNjNDk5ZGEzZDNkNmEzMWQwZjcwZmVhYWNlNmJkYWI3NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3Bw
CkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG8KICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKj4o
Y2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5j
cHAKaW5kZXggNjQxMzljOGY2YjIwYmIzNGI2MjM2ZDYyMDQxYzdlNmQwMjlkOGE3OC4uMGViM2E2
ZWE2NTAyYzcxOWIyNTQ2OGMyZTQ1Y2U0ODAzYzIwOTQ0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAg
dm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2Vs
bCogY2VsbCwgSGVhcFNuYXBzaG90QnUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBp
ZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggZDYxNGJjZTQy
MWZlMzRjNmZiZTY3OGJkMzdlNTMyZDUyZDI3NjQyNS4uZDI2MDRiMTdjZDhiMzM2OTk4YWI3Mzlh
YWNkZTdlMzFiMTE5ZWVkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwg
SGVhcFNuYXBzaG8KICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJbmRleGVkR2V0dGVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVy
Q2FsbFdpdGguY3BwCmluZGV4IGVhNGM1Y2QyN2Y4ODc5ZDE3OWViYmI5MTUzZGY5OTM4MTBiZTc2
NDcuLjQ3MWQxNGYxMDVhZTg4MTA3Y2UyMjQ4NzdiZmYyMWEzNDc3M2RlNDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRHZXR0ZXJDYWxsV2l0aC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lk
IEpTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGg6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RO
YW1lZEdldHRlckNhbGxXaXRoKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ck5vSWRlbnRpZmllci5jcHAKaW5kZXggNmU0MGRlZjNkNDRiYTM3Zjc2NDAwOTkxMjg5YWZjMTBl
MjliN2I1Zi4uOGU1YmMyMDA5ZjkzY2IzNzk1MWIyNTAxMjY0NDk4NWY4YTY3YmY2MCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
R2V0dGVyTm9JZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0yMTIsNyAr
MjEyLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGQKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRl
ci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsK
ICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBi
dWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiAr
IHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwog
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGQzOTI0Y2JhNjA4
NmNmOTA4NDZiZjExMDg1MDkzNDIwMThlNDMzNjYuLjQ4NDcwNjFjYzdkMGM1OGQzMmI4YjQzOTA4
MDg4YzdkOGI3NzE0NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRo
SWRlbnRpZmllci5jcHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIEpTVGVzdE5hbWVkR2V0dGVy
V2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1
aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRl
bnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwg
U3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNl
dExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwg
YnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCmluZGV4IGM3YTNjNmE5ZDU5NWRmZTY3MmNjNzJhYmRkZTAzZWZlNmM4MzI4ZmEuLjUw
NTc1NzdjNDMwOGE2NTI4YzBhMTc3ZjJhZDQ5Mzc4MGMxOGUwOGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZv
aWQgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNl
bGwsIEhlYXBTbmFwc2hvdEJ1aWxkCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZFNldHRlck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwor
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCA5OGVjMTNkYzJlNzllZjVm
ZGE2NGJmNzJkNzQzZjFiY2YzOWU0MTY1Li42Njg3NzM5ODFlNDQ0OWMxN2ZiOGRhMWJjZTBiMjYw
YzkyMDRjYmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNo
b3QKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24qPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxs
KGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNl
bGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRl
ci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNl
bGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllci5jcHAKaW5kZXggZGRkZmY4Y2NkNzI1OWIzNzQ1YTY2Y2M3ZGJlNmFhZmZmODA5
ZTZhOS4uMGRiNzQyOTJhOTE0NDIzOWEyMDU2OTM5MzEzOGNmZTU2NjI0NWYxOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMzA1LDcg
KzMwNSw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IGI2
NjFmNTNjZDI4NzA4ODgzYTExYzhjMjA1ZTcwNDgwOTUzMTdmMWQuLmFhNDBiZDFmMGE5YmMwYTZm
ZGIzMGY4NGEyNzBlZjk3MDljMmRjOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKQEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNl
bGwsIEhlYXBTbmFwc2hvdAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwor
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVk
R2V0dGVyQW5kU2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAppbmRl
eCBjMzVmZjg5NmM0OGQ4YmIyODc4MjNiZGYwYTQ2MDdhMWIzZGE4NzBkLi5iZWQxNzNhMWQ0YTg3
ODExNDU0OTViNTQyZjczMzk1NTU3OWZlMGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRl
ckFuZFNldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCkBAIC0z
OTcsNyArMzk3LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5k
U2V0dGVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWEKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIq
PihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6
Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJp
ZGVCdWlsdGlucy5jcHAKaW5kZXggOWYxMGQ2NGVlNWEwZDEzMTliOGNjZjg5NGRhOTBjOGFjMThh
MTg4My4uNTBiZmNiMWJjMTQ4MzI3ZWFiMGU5OGM4YjNiYThkMjMzMTE2YjdiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNw
cApAQCAtMjYxLDcgKzI2MSw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGluczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzCiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhp
c09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6
OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllcy5jcHAKaW5kZXggYzYwZGNhYjYzNTk1OTdkYjRmODgwZWRmNDA0
MGFjODM0MzVhODI5MC4uZmVkMmRjMWJjMDZjYzM3NmNmMzYxZThiZmMzMzAxYmZjODg3MDMyMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3Jn
YWJsZVByb3BlcnRpZXMuY3BwCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwg
SGVhcFMKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCA0MGI5ODFlMzQ0MTA1N2Q3Y2JiN2ZlZTE3
MGVlNTNjYjkwMzAxNzdhLi43MjdmMzc4MTE3MGUyOTU1ZGQ2NTlmODhkNWIzMDM5OThmMDg0Yjlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5z
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNw
cApAQCAtMzMwLDcgKzMzMCw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoCiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc0FuZE92ZXJyaWRlQnVpbHRpbnMqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVh
cFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXggMmIyZGVkNGMy
YzY4OGFmNDQzZjRhOTdjMGZkNDliMTI2MDAwNjVhZC4uMTY2ZjE3MjZlYTNlZmZhYTVlOGJkYjcw
ZTQwZmNmOWMyMTBlNWFhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtNDE5LDcgKzQxOSw3IEBAIHZvaWQg
SlNUZXN0Tm9kZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
ciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5vZGUqPihj
ZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9y
bWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNl
bGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T2JqLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPYmouY3BwCmluZGV4IDFiZDJmYTFlMDA1YzM0YzhiOGQ2ZTBmZTEzODhhOTgwYmRjNDE0
MGEuLmE5NTkzMWY5ZDllYjU1NzBkYzM2ODE4NzE1ZGQ0NWM3MDk3NjJiOTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CkBAIC04NTAxLDcgKzg1MDEsNyBAQCB2b2lkIEpTVGVzdE9iajo6aGVhcFNuYXBzaG90KEpTQ2Vs
bCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9i
amVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJl
bEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAg
ICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFw
U25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzLmNwcAppbmRleCAxYWRiNzAyMTJmNDUxY2NlODViMDhjZGEwMzZmZTQ3
ODA4OWMzOTc4Li43NzA4ZWRhM2FhZGM3M2JkMTJmZjE1ZWQ2OGUzMTg4NjI5NzE0ODAxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0yNTcsNyAr
MjU3LDcgQEAgdm9pZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpoZWFwU25hcHNob3Qo
SlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPihjZWxsKTsKICAgICBidWlsZGVy
LnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwog
ICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1
aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5k
YXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAg
ICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENv
bnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAK
aW5kZXggYjA1NTY2ODU5NmJjNmYyN2M4MmM3MTZmZDIzNGU1ZDgwYWE4YTRjNS4uMzgzMTI2OTY0
MDczM2VjNjM1YjdlY2M0NmM4MzNiNzNmNTUwYWMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNX
aXRoU2VxdWVuY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtMjEz
LDcgKzIxMyw3IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5j
ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuCiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlKj4oY2Vs
bCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1h
dCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCmluZGV4IGMxYTYzNDMwYWMwZDhh
YzEzYmJhNGM0YTc0Mzk0OTAxOGM3MTFkMzEuLmYyMWIzNDMxNTdlMmU1MDAxNDVlYTlmNmNkOGEx
ODU2M2FmODhiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTI0
Myw3ICsyNDMsNyBAQCB2b2lkIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aQogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KGNlbGwpOwogICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAg
ICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZh
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBs
dWdpbkludGVyZmFjZS5jcHAKaW5kZXggYmVjNTdkNTUxN2Q1YjA5YzhkMjBhMGFkZTQyOTdjZjBh
ZThkZmNlZC4uYzM0MGVkZDc1Nzg5NWVlY2IxMWI2ZmZjMzIxZDU4OGM1MjI0NzJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdp
bkludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIEpT
VGVzdFBsdWdpbkludGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBz
aG90QnVpbGRlciYgYnVpbAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0UGx1
Z2luSW50ZXJmYWNlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChj
ZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2
ZW50LmNwcAppbmRleCA3YTI1ODk4NjcxNDYzMGEzMDUzYmM3NDgxYTVkZTBmZWYxYmQ3OThmLi5j
OGRhNWRkMDZjOGIxNGQ1ODgwZmQxZmNlZWM5NGFmNjAwZTBjZDlkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlv
bkV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcApAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQg
SlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hcHNob3RCdWlsZGVyCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RQ
cm9taXNlUmVqZWN0aW9uRXZlbnQqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAg
ICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAK
aW5kZXggNzhkMWM0MWM0MjhjMDFlMWY3NWY2ZTkxYTY0YWViMzA1YzBhNTI1Zi4uZWFmNTdmOGE4
MTM3MmUwMWMzZmYxOTVhYmQ1MjRiNzI5NGQxNzA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0
aW9uLmNwcApAQCAtNTUwLDcgKzU1MCw3IEBAIHZvaWQgSlNUZXN0U2VyaWFsaXphdGlvbjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlCiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uKj4oY2VsbCk7CiAg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQot
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJs
ICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
ICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNl
cmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZS5jcHAKaW5kZXggMTMzZWRhMDJlNjQwMTYzZmM5YmU2NTQzNDgyMGZiOTI1ZjA0YzBhNC4uNjQ5
MjAwNTIyODRhZTUyNWIxMmM2ZTcyMGQ4M2RlMTdmNGVjZTZkMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRp
cmVjdEluaGVyaXRhbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCkBAIC0x
NTQsNyArMTU0LDcgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5j
ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXAKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlKj4oY2Vs
bCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1h
dCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKaW5kZXggYWQ1MzFi
MjBiNzRiYzZkMjU5NTY5MTgyZWFlZmM1MzExY2Y4ZTA5Mi4uNDQ0MmY1MTM5YmVjOThiZTRiMTFh
NmIwZDgzYzczNDhhOGM0NDM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXQuY3BwCkBAIC0yMjksNyArMjI5LDcgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5o
ZXJpdDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Kj4o
Y2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3Bw
CmluZGV4IGExYWMyZDAxMGU1MWM0ODM3YzBmMGI1NDYyMjgwMzRhZDBkYjg0ZTguLmJhNjFiYzUy
YTg0ZjcwZmQzNDMwMWMzOGY3M2Y5NzBkNGM5ZjBmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZp
bmFsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lk
IEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWw6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNl
bGwsIEhlYXBTbmFwc2hvdEJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbCo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwor
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJ
bnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggZGY3ZGZiOGY5NjFk
OTRmZThlMjRmMDFkMjQxZmIyNGY2YTk0ZmFlZi4uNDJiMjgzNmY5ZDJlNzkxNzM1OTQ1NDg0NjQz
ZGNhMjhmNTY3ZWQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIEpTVGVzdFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwg
SGVhcFNuYXBzaAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKaW5k
ZXggNTI0MmJiOGJhYWM2ZmM4Y2ExNDA0MDYwZjE1MGJiMWRkN2MwMTVkZi4uMzEzOTJjYjkyMGI3
OWZiYmNiMzRlZGQyOWUxNDc4NGVlZTJhMzZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3Bw
CkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllcjo6aGVhcFNuYXBzaG90
KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRl
ci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsK
ICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBi
dWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiAr
IHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwog
ICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
QW5vbnltb3VzT3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKaW5kZXggN2Nh
ZTI0MzllZjYyN2I2YzI2NjE3Mzk0YjkxY2M4YjgwNGZmMDU1Yi4uNThjZDBmZjk0MDkyYmNlMDRj
MjkxZmZmMzJiMGQ2ZGFlMzlkMWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBK
U1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG8KICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0
cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAo
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNl
dExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6
OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwCmluZGV4IDUwYTQ2ZjYxNGY5ODQ4Yjc2OTI4
NWUxNjM4OTA3M2MxMjkxNTdmZDEuLmM5YjI1ZjBhZDlkNmJiODNlNzYwZTQyYWM5NDExYWJhZTFj
ZTliNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlv
bi5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVy
YXRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aQogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbio+
KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpm
b3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
SW1wbGVtZW50ZWRBcy5jcHAKaW5kZXggMGEzM2FmMzc4YTJiMTIxOWYyOTI4NGRjODllMTZkMzhi
NzI0Nzc5ZC4uMzVkODYzYTg1ZDYyNDk3NDgwYjFhNWY4NDU0OWJhZTRlZmQxZjE5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBcy5jcHAKQEAgLTIwMiw3ICsyMDIsNyBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYQogICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBs
ZW1lbnRlZEFzKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZp
ZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAppbmRleCA0OTA0OTE3NGUwMzZmNWYxODA2MjQ0
YzNmMmViZDE5ZTE2OTYyZTQ0Li42YmE0Y2QxZmQwNTgxMGVhNzlkODFmYzhhZjBiYjhjNjRjNjI2
MWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nLmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9w
ZXJhdGlvbk5hbWVkVG9TdHJpbmcqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAg
ICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3Ry
aW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAKaW5kZXggYzljNTI2OThiODJkM2ZmZjI3ZDIz
NDRmZGRiNTU0M2QwOTJjYTQwNi4uNDE1MjNhNWFmMmFjMWU4NjlhOWFkMTBkMzg0ZWY0ZDRkMDc4
NDhjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlLmNwcApAQCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0
cmlidXRlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxs
LCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBT
dHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0
TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRX
cml0ZUF0dHJpYnV0ZS5jcHAKaW5kZXggNzVlYzM4YWRiOGZlODg5MzA0NjAzNTM0NmI1NjQ0NmQ3
YjJiNjJmNC4uN2NjNjBlODBjOGUzMjExMTY0Nzc3M2E2YzAwNDM1OTMzNGY0OGQzYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3Bw
CkBAIC0yMjcsNyArMjI3LDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJp
YnV0ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG8KICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlKj4o
Y2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RUeXBlZGVmcy5jcHAKaW5kZXggMTg2YTQxNmRhODczYTY0ZTVkZjVjNjZlYmJm
ZDA5MDFhY2U1ZGQyMS4uNmI2NzhiY2Y1ZWVmZDZiOGI5ZGY3MWE3OWQwMDBhN2QzYmEzYTFkMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFR5cGVkZWZzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCkBAIC03NDksNyArNzQ5LDcgQEAgdm9pZCBKU1Rlc3RUeXBl
ZGVmczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oY2Vs
bCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1h
dCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNl
ckhlbHBlcnMuY3BwCmluZGV4IGFlOTQ4NjRjZTEzYjkzZDI4NjgxNDczMGI0ZDgxYjBmMjMxOTNm
ZTcuLjZjMTY2OGNhNDcyY2Y4NWJhODkwNDQwZDk5YWE3NWZlODFhODBjOTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5j
cHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRl
ICJQYWlyLmgiCiAjaW5jbHVkZSAiU3R5bGVDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY0
MSw5ICs2NDIsOSBAQCBzdGF0aWMgQ29sb3IgcGFyc2VIZXhDb2xvcihDU1NQYXJzZXJUb2tlblJh
bmdlJiByYW5nZSwgYm9vbCBhY2NlcHRRdWlya3lDb2xvcnMpCiAgICAgICAgICAgICAgICAgfHwg
dG9rZW4ubnVtZXJpY1ZhbHVlKCkgPCAwLiB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA+PSAxMDAw
MDAwLikKICAgICAgICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKICAgICAgICAgICAgIGlmICh0
b2tlbi50eXBlKCkgPT0gTnVtYmVyVG9rZW4pIC8vIGUuZy4gMTEyMjMzCi0gICAgICAgICAgICAg
ICAgY29sb3IgPSBTdHJpbmc6OmZvcm1hdCgiJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHRva2VuLm51
bWVyaWNWYWx1ZSgpKSk7CisgICAgICAgICAgICAgICAgY29sb3IgPSBTdHJpbmc6Om51bWJlcihz
dGF0aWNfY2FzdDxpbnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSk7CiAgICAgICAgICAgICBlbHNl
IC8vIGUuZy4gMDAwMUZGCi0gICAgICAgICAgICAgICAgY29sb3IgPSBTdHJpbmc6Om51bWJlcihz
dGF0aWNfY2FzdDxpbnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSkgKyB0b2tlbi52YWx1ZSgpLnRv
U3RyaW5nKCk7CisgICAgICAgICAgICAgICAgY29sb3IgPSBtYWtlU3RyaW5nKHN0YXRpY19jYXN0
PGludD4odG9rZW4ubnVtZXJpY1ZhbHVlKCkpLCB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCkpOwog
ICAgICAgICAgICAgd2hpbGUgKGNvbG9yLmxlbmd0aCgpIDwgNikKICAgICAgICAgICAgICAgICBj
b2xvciA9ICIwIiArIGNvbG9yOwogICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUoKSA9PSBJ
ZGVudFRva2VuKSB7IC8vIGUuZy4gRkYwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVj
dEVsZW1lbnQuY3BwCmluZGV4IDdhMjMzNDJhOGNkOWZlNDYxZDFiZWY5NDk5NzY3M2VhYmM2Mzk1
MTAuLmMxNzQwYjc3NDc3Y2YyM2NiODY0MDZiZDRkNjU0MjY0ZTkxYTFjM2YgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgogI2luY2x1
ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDU4LDcgKzQ1
OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRJdGVtKHVuc2ln
bmVkIGluZGV4LCBIVE1MT3B0aW9uRWxlbWVudCoKIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxTZWxl
Y3RFbGVtZW50OjpzZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuZ3RoKQogewogICAgIGlmIChuZXdM
ZW5ndGggPiBsZW5ndGgoKSAmJiBuZXdMZW5ndGggPiBtYXhTZWxlY3RJdGVtcykgewotICAgICAg
ICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIFN0cmluZzo6Zm9ybWF0KCJCbG9ja2VkIGF0dGVtcHQgdG8gZXhw
YW5kIHRoZSBvcHRpb24gbGlzdCB0byAldSBpdGVtcy4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGl0
ZW1zIGFsbG93ZWQgaXMgJXUuIiwgbmV3TGVuZ3RoLCBtYXhTZWxlY3RJdGVtcykpOworICAgICAg
ICBkb2N1bWVudCgpLmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNz
YWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcoIkJsb2NrZWQgYXR0ZW1wdCB0byBleHBhbmQg
dGhlIG9wdGlvbiBsaXN0IHRvICIsIG5ld0xlbmd0aCwgIiBpdGVtcy4gVGhlIG1heGltdW0gbnVt
YmVyIG9mIGl0ZW1zIGFsbG93ZWQgaXMgIiwgbWF4U2VsZWN0SXRlbXMsICcuJykpOwogICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZURvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAK
aW5kZXggOGVjY2E3MDljMTBkMWQzNjM3ZmJkNTNlYzM5OTBiZGM4N2JlMjZhZi4uZjQyOTIyMzJl
OWRjMjJkNzI5YWI1OTUwODk2YWI4Njg4MzgwYTJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdl
RG9jdW1lbnQuY3BwCkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNzMsNyArMjc0LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50
OjppbWFnZVVwZGF0ZWQoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIEZsb2F0
U2l6ZSBzY3JlZW5TaXplID0gcGFnZSgpLT5jaHJvbWUoKS5zY3JlZW5TaXplKCk7CiAgICAgICAg
IGlmIChpbWFnZVNpemUud2lkdGgoKSA+IHNjcmVlblNpemUud2lkdGgoKSkKLSAgICAgICAgICAg
IHByb2Nlc3NWaWV3cG9ydChTdHJpbmc6OmZvcm1hdCgid2lkdGg9JXUsdmlld3BvcnQtZml0PWNv
dmVyIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGltYWdlU2l6ZS53aWR0aCgpLnRvSW50KCkpKSwg
Vmlld3BvcnRBcmd1bWVudHM6OkltYWdlRG9jdW1lbnQpOworICAgICAgICAgICAgcHJvY2Vzc1Zp
ZXdwb3J0KG1ha2VTdHJpbmcoIndpZHRoPSIsIGltYWdlU2l6ZS53aWR0aCgpLnRvSW50KCksICIs
dmlld3BvcnQtZml0PWNvdmVyIiksIFZpZXdwb3J0QXJndW1lbnRzOjpJbWFnZURvY3VtZW50KTsK
IAogICAgICAgICBpZiAocGFnZSgpKQogICAgICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGll
bnQoKS5pbWFnZU9yTWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKEludFNpemUoaW1hZ2VTaXplLndp
ZHRoKCksIGltYWdlU2l6ZS5oZWlnaHQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9Y
U1NBdWRpdG9yLmNwcAppbmRleCBkNjM1NzQ3YzFmMDYzMmFlMzQ1ZDY1ZGQxYTVlNTMwZmVlNzBh
ZGVjLi44NDRlMjYyMzI0YjNkZTQ5ZTYzZjZkMTA3MDVlN2JjMGJiZDBmMmJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9BU0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdW
aWV3Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzMyLDcgKzMzMiw3IEBAIHZvaWQgWFNTQXVkaXRv
cjo6aW5pdChEb2N1bWVudCogZG9jdW1lbnQsIFhTU0F1ZGl0b3JEZWxlZ2F0ZSogYXVkaXRvckRl
bGVnYXRlKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChtX3hzc1Byb3Rl
Y3Rpb24gPT0gWFNTUHJvdGVjdGlvbkRpc3Bvc2l0aW9uOjpJbnZhbGlkKSB7Ci0gICAgICAgICAg
ICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1l
c3NhZ2VMZXZlbDo6RXJyb3IsICJFcnJvciBwYXJzaW5nIGhlYWRlciBYLVhTUy1Qcm90ZWN0aW9u
OiAiICsgaGVhZGVyVmFsdWUgKyAiOiAiICArIGVycm9yRGV0YWlscyArICIgYXQgY2hhcmFjdGVy
IHBvc2l0aW9uICIgKyBTdHJpbmc6OmZvcm1hdCgiJXUiLCBlcnJvclBvc2l0aW9uKSArICIuIFRo
ZSBkZWZhdWx0IHByb3RlY3Rpb25zIHdpbGwgYmUgYXBwbGllZC4iKTsKKyAgICAgICAgICAgIGRv
Y3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgbWFrZVN0cmluZygiRXJyb3IgcGFyc2luZyBoZWFkZXIgWC1YU1MtUHJv
dGVjdGlvbjogIiwgaGVhZGVyVmFsdWUsICI6ICIsIGVycm9yRGV0YWlscywgIiBhdCBjaGFyYWN0
ZXIgcG9zaXRpb24gIiwgZXJyb3JQb3NpdGlvbiwgIi4gVGhlIGRlZmF1bHQgcHJvdGVjdGlvbnMg
d2lsbCBiZSBhcHBsaWVkLiIpKTsKICAgICAgICAgICAgIG1feHNzUHJvdGVjdGlvbiA9IFhTU1By
b3RlY3Rpb25EaXNwb3NpdGlvbjo6RW5hYmxlZDsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5j
cHAKaW5kZXggOGUxYzQ4MjlkZmY1YmVhYzFkNmZjMDMyMDljZWJmZDBjNDUwNTc3NC4uN2M4MTg5
YWQ2Yjk5MDFmMzc4YzI5MjA1YTc4ZmVmNzdjOWRjMTM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApA
QCAtMjA1LDcgKzIwNSw3IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2Fu
QXR0YWNoV2luZG93KCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXRE
b2NraW5nVW5hdmFpbGFibGUoYm9vbCB1bmF2YWlsYWJsZSkKIHsKLSAgICBldmFsdWF0ZU9uTG9h
ZChTdHJpbmc6OmZvcm1hdCgiW1wic2V0RG9ja2luZ1VuYXZhaWxhYmxlXCIsICVzXSIsIHVuYXZh
aWxhYmxlID8gInRydWUiIDogImZhbHNlIikpOworICAgIGV2YWx1YXRlT25Mb2FkKG1ha2VTdHJp
bmcoIltcInNldERvY2tpbmdVbmF2YWlsYWJsZVwiLCAiLCB1bmF2YWlsYWJsZSA/ICJ0cnVlIiA6
ICJmYWxzZSIsICddJykpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OmNoYW5nZUF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTI3MCw3ICsy
NzAsNyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFjaGVkV2lu
ZG93KERvY2tTaWRlIGRvY2tTaWRlKQogCiAgICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0g
ICAgZXZhbHVhdGVPbkxvYWQoU3RyaW5nOjpmb3JtYXQoIltcInNldERvY2tTaWRlXCIsIFwiJXNc
Il0iLCBzaWRlKSk7CisgICAgZXZhbHVhdGVPbkxvYWQobWFrZVN0cmluZygiW1wic2V0RG9ja1Np
ZGVcIiwgXCIiLCBzaWRlLCAiXCJdIikpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xp
ZW50TG9jYWw6OnJlc3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgpCkBAIC0yOTQsNyArMjk0LDcg
QEAgYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc0RlYnVnZ2luZ0VuYWJsZWQo
KQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERlYnVnZ2luZ0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQogewotICAgIGV2YWx1YXRlT25Mb2FkKFN0cmluZzo6Zm9ybWF0KCJb
XCJzZXREZWJ1Z2dpbmdFbmFibGVkXCIsICVzXSIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2Ui
KSk7CisgICAgZXZhbHVhdGVPbkxvYWQobWFrZVN0cmluZygiW1wic2V0RGVidWdnaW5nRW5hYmxl
ZFwiLCAiLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CiB9CiAKIGJvb2wgSW5z
cGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoKQpA
QCAtMzA2LDcgKzMwNiw3IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNU
aW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAg
ZXZhbHVhdGVPbkxvYWQoU3RyaW5nOjpmb3JtYXQoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5h
YmxlZFwiLCAlc10iLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIikpOworICAgIGV2YWx1YXRl
T25Mb2FkKG1ha2VTdHJpbmcoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwiLCAiLCBl
bmFibGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6aXNQcm9maWxpbmdKYXZhU2NyaXB0KCkKQEAgLTMzOSw3ICszMzks
NyBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dSZXNvdXJjZXMoKQog
dm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93TWFpblJlc291cmNlRm9yRnJh
bWUoRnJhbWUqIGZyYW1lKQogewogICAgIFN0cmluZyBmcmFtZUlkID0gbV9pbnNwZWN0ZWRQYWdl
Q29udHJvbGxlci0+cGFnZUFnZW50KCktPmZyYW1lSWQoZnJhbWUpOwotICAgIGV2YWx1YXRlT25M
b2FkKFN0cmluZzo6Zm9ybWF0KCJbXCJzaG93TWFpblJlc291cmNlRm9yRnJhbWVcIiwgXCIlc1wi
XSIsIGZyYW1lSWQuYXNjaWkoKS5kYXRhKCkpKTsKKyAgICBldmFsdWF0ZU9uTG9hZChtYWtlU3Ry
aW5nKCJbXCJzaG93TWFpblJlc291cmNlRm9yRnJhbWVcIiwgXCIiLCBmcmFtZUlkLCAiXCJdIikp
OwogfQogCiB1bnNpZ25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpjb25zdHJhaW5l
ZEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCwgdW5zaWduZWQg
dG90YWxXaW5kb3dIZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
YWdlbnRzL0luc3BlY3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9h
Z2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCmluZGV4IDVhM2E0YjJiOGE1YzFkYTcyNGU4OWY0
M2FiNGM4OGRjNmYwY2U0OGIuLjM0ZDg0MDNiODIxZmVlYWUzYjQxNWRkOWIwYWJiYTZmZTBhMzc3
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9y
Q1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmlu
ZyBtZXJnZUlkKCkgZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
U2V0U3R5bGVTaGVldFRleHQgJXMiLCBtX3N0eWxlU2hlZXQtPmlkKCkudXRmOCgpLmRhdGEoKSk7
CisgICAgICAgIHJldHVybiAiU2V0U3R5bGVTaGVldFRleHQgIiArIG1fc3R5bGVTaGVldC0+aWQo
KTsKICAgICB9CiAKICAgICB2b2lkIG1lcmdlKHN0ZDo6dW5pcXVlX3B0cjxBY3Rpb24+IGFjdGlv
bikgb3ZlcnJpZGUKQEAgLTE5OCw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIG1lcmdl
SWQoKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc3R5bGVTaGVldC0+aWQoKSA9
PSBtX2Nzc0lkLnN0eWxlU2hlZXRJZCgpKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0
KCJTZXRTdHlsZVRleHQgJXM6JXUiLCBtX3N0eWxlU2hlZXQtPmlkKCkudXRmOCgpLmRhdGEoKSwg
bV9jc3NJZC5vcmRpbmFsKCkpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiU2V0U3R5bGVU
ZXh0ICIsIG1fc3R5bGVTaGVldC0+aWQoKSwgJzonLCBtX2Nzc0lkLm9yZGluYWwoKSk7CiAgICAg
fQogCiAgICAgdm9pZCBtZXJnZShzdGQ6OnVuaXF1ZV9wdHI8QWN0aW9uPiBhY3Rpb24pIG92ZXJy
aWRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckluZGV4ZWREQkFnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCmluZGV4IGFlM2FjYWZkMDkwYjBhYzE1YzdlZmQ2ZmVi
ODk1OTQ2NDhkODk5NTAuLjgwNjRhZmZlNmE3NDAzYTMyM2RiMGVhZjg0N2FjNzJmMGVjMDJhZDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5k
ZXhlZERCQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5z
cGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSA8d3Rm
L0pTT05WYWx1ZXMuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1i
ZXJzLmg+CiAKIHVzaW5nIEpTT046OkFycmF5T2Y7CiB1c2luZyBJbnNwZWN0b3I6OlByb3RvY29s
OjpJbmRleGVkREI6OkRhdGFiYXNlV2l0aE9iamVjdFN0b3JlczsKQEAgLTcxMSw3ICs3MTIsNyBA
QCBwdWJsaWM6CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGlkYk9iamVjdFN0b3JlLT5jbGVh
cigqZXhlYyk7CiAgICAgICAgICAgICBBU1NFUlQoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSk7CiAg
ICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICAgICAg
bV9yZXF1ZXN0Q2FsbGJhY2stPnNlbmRGYWlsdXJlKFN0cmluZzo6Zm9ybWF0KCJDb3VsZCBub3Qg
Y2xlYXIgb2JqZWN0IHN0b3JlICclcyc6ICVkIiwgbV9vYmplY3RTdG9yZU5hbWUudXRmOCgpLmRh
dGEoKSwgcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpKTsKKyAgICAgICAgICAgICAg
ICBtX3JlcXVlc3RDYWxsYmFjay0+c2VuZEZhaWx1cmUobWFrZVN0cmluZygiQ291bGQgbm90IGNs
ZWFyIG9iamVjdCBzdG9yZSAnIiwgbV9vYmplY3RTdG9yZU5hbWUsICInOiAiLCBzdGF0aWNfY2Fz
dDxpbnQ+KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKSkpOwogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlkYlJlcXVlc3QgPSByZXN1
bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L01lbW9yeVJlbGVhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNw
cAppbmRleCAwOGYwNGE0NmRjYmNmZDQyMmQzOTgzZmIwYTNiNTVmMzgzN2EwOTNiLi4xZjVmNjMz
MDg0MzNlZWEwZWVjMThiNDk3NTY3ZDk2M2QxMWNlMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVt
b3J5UmVsZWFzZS5jcHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIGxvZ01lbW9yeVN0YXRpc3Rp
Y3NBdFRpbWVPZkRlYXRoKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTdHJpbmcg
dGFnTmFtZSA9IGRpc3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFtZSkK
LSAgICAgICAgICAgIHRhZ05hbWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFnICV1IiwgaSk7CisgICAg
ICAgICAgICB0YWdOYW1lID0gbWFrZVN0cmluZygiVGFnICIsIGkpOwogICAgICAgICBSRUxFQVNF
X0xPRyhNZW1vcnlQcmVzc3VyZSwgIiUxNnM6ICVsdSBNQiIsIHRhZ05hbWUubGF0aW4xKCkuZGF0
YSgpLCBkaXJ0eSAvIE1CKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQppbmRleCBlMDNlMDZm
NTFiNjI1NTg4MjAyYzA2MjhhNmNhZTBhMDc1NGYyZDlkLi4wY2I1YzM1MzI3YjFkMjk3ZDA0ODk0
MmExOWZhYTUwMGU2Zjc0MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29h
L1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
b2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC00MzEsNyArNDMxLDcgQEAgc3Rh
dGljIFN0cmluZyBmb3JtYXRCeXRlTnVtYmVyKHNpemVfdCBudW1iZXIpCiAgICAgICAgIHJldHVy
biBTdHJpbmc6OmZvcm1hdCgiJS4yZiBNQiIsIHN0YXRpY19jYXN0PGRvdWJsZT4obnVtYmVyKSAv
IDEwNDg1NzYpOwogICAgIGlmIChudW1iZXIgPj0gMTAyNCkKICAgICAgICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCIlLjFmIGtCIiwgc3RhdGljX2Nhc3Q8ZG91YmxlPihudW1iZXIpIC8gMTAyNCk7
Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlbHUiLCBudW1iZXIpOworICAgIHJldHVybiBT
dHJpbmc6Om51bWJlcihudW1iZXIpOwogfQogCiBzdGF0aWMgU3RyaW5nIGdjVGltZXJTdHJpbmco
TW9ub3RvbmljVGltZSB0aW1lckZpcmVEYXRlLCBNb25vdG9uaWNUaW1lIG5vdykKQEAgLTQ2OSw5
ICs0NjksOSBAQCB2b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5OjpwbGF0Zm9ybURyYXcoQ0dDb250
ZXh0UmVmIGNvbnRleHQpCiAgICAgICAgIAogICAgICAgICBTdHJpbmcgbGFiZWwgPSBTdHJpbmc6
OmZvcm1hdCgiJSAxMXM6ICVzIiwgY2F0ZWdvcnkubmFtZS5hc2NpaSgpLmRhdGEoKSwgZm9ybWF0
Qnl0ZU51bWJlcihkaXJ0eSkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAgICBpZiAoZXh0ZXJuYWwp
Ci0gICAgICAgICAgICBsYWJlbCA9IGxhYmVsICsgU3RyaW5nOjpmb3JtYXQoIiArICVzIiwgZm9y
bWF0Qnl0ZU51bWJlcihleHRlcm5hbCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgbGFi
ZWwgPSBsYWJlbCArIG1ha2VTdHJpbmcoIiArICIsIGZvcm1hdEJ5dGVOdW1iZXIoZXh0ZXJuYWwp
KTsKICAgICAgICAgaWYgKHJlY2xhaW1hYmxlKQotICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCAr
IFN0cmluZzo6Zm9ybWF0KCIgWyVzXSIsIGZvcm1hdEJ5dGVOdW1iZXIocmVjbGFpbWFibGUpLmFz
Y2lpKCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGxhYmVsID0gbGFiZWwgKyBtYWtlU3RyaW5nKCIg
WyIsIGZvcm1hdEJ5dGVOdW1iZXIocmVjbGFpbWFibGUpLCAnXScpOwogCiAgICAgICAgIC8vIEZJ
WE1FOiBTaG93IHNpemUvY2FwYWNpdHkgb2YgR0MgaGVhcC4KICAgICAgICAgc2hvd1RleHQoY29u
dGV4dCwgMTAsIHksIGNhdGVnb3J5LmNvbG9yLmdldCgpLCBsYWJlbCk7CkBAIC00ODAsOCArNDgw
LDggQEAgdm9pZCBSZXNvdXJjZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1EcmF3KENHQ29udGV4dFJl
ZiBjb250ZXh0KQogICAgIHkgLT0gNTsKIAogICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3Rv
bmljVGltZTo6bm93KCk7Ci0gICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAxMCwgY29sb3JG
b3JMYWJlbHMsIFN0cmluZzo6Zm9ybWF0KCIgICAgRWRlbiBHQzogJXMiLCBnY1RpbWVyU3RyaW5n
KGRhdGEudGltZU9mTmV4dEVkZW5Db2xsZWN0aW9uLCBub3cpLmFzY2lpKCkuZGF0YSgpKSk7Ci0g
ICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAyMCwgY29sb3JGb3JMYWJlbHMsIFN0cmluZzo6
Zm9ybWF0KCIgICAgRnVsbCBHQzogJXMiLCBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEZ1
bGxDb2xsZWN0aW9uLCBub3cpLmFzY2lpKCkuZGF0YSgpKSk7CisgICAgc2hvd1RleHQoY29udGV4
dCwgMTAsIHkgKyAxMCwgY29sb3JGb3JMYWJlbHMsICIgICAgRWRlbiBHQzogIiArIGdjVGltZXJT
dHJpbmcoZGF0YS50aW1lT2ZOZXh0RWRlbkNvbGxlY3Rpb24sIG5vdykpOworICAgIHNob3dUZXh0
KGNvbnRleHQsIDEwLCB5ICsgMjAsIGNvbG9yRm9yTGFiZWxzLCAiICAgIEZ1bGwgR0M6ICIgKyBn
Y1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9uLCBub3cpKTsKIAogICAg
IGRyYXdDcHVIaXN0b3J5KGNvbnRleHQsIHZpZXdCb3VuZHMuc2l6ZS53aWR0aCAtIDcwLCAwLCB2
aWV3Qm91bmRzLnNpemUuaGVpZ2h0LCBkYXRhLmNwdSk7CiAgICAgZHJhd0dDSGlzdG9yeShjb250
ZXh0LCB2aWV3Qm91bmRzLnNpemUud2lkdGggLSAxNDAsIDAsIHZpZXdCb3VuZHMuc2l6ZS5oZWln
aHQsIGRhdGEuZ2NIZWFwU2l6ZSwgZGF0YS5jYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hl
YXBdLmRpcnR5U2l6ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jl
c291cmNlVXNhZ2VUaHJlYWRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVz
b3VyY2VVc2FnZVRocmVhZENvY29hLm1tCmluZGV4IGVmZDgzNmFmZDY4ZDMyMzk0ZmU1NDcyNzQ0
OWQ2OGRiOWY0M2Q0ODYuLjAzNWU2MDNjMjAzNTcyODk1ODNiMzhiYWNjZDc1MDNhOTY2NTZlYzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVh
ZENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRo
cmVhZENvY29hLm1tCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8bWFjaC92bV9zdGF0aXN0
aWNzLmg+CiAjaW5jbHVkZSA8cGFsL3NwaS9jb2NvYS9NYWNoVk1TUEkuaD4KICNpbmNsdWRlIDx3
dGYvTWFjaFNlbmRSaWdodC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRl
TnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDcgKzYzLDcgQEAgdm9p
ZCBsb2dGb290cHJpbnRDb21wYXJpc29uKGNvbnN0IHN0ZDo6YXJyYXk8VGFnSW5mbywgMjU2PiYg
YmVmb3JlLCBjb25zdCBzdGQ6OmEKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTdHJp
bmcgdGFnTmFtZSA9IGRpc3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFt
ZSkKLSAgICAgICAgICAgIHRhZ05hbWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFnICV1IiwgaSk7Cisg
ICAgICAgICAgICB0YWdOYW1lID0gbWFrZVN0cmluZygiVGFnICIsIGkpOwogICAgICAgICBXVEZM
b2dBbHdheXMoIiAgJTAyWCAlMTZzICUxMGxkICUxMGxkICUxMGxkIiwKICAgICAgICAgICAgIGks
CiAgICAgICAgICAgICB0YWdOYW1lLmFzY2lpKCkuZGF0YSgpLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKaW5kZXggY2ZkMGIz
NjAyNzkzOWQ0Yjg2YWZkNmZlN2U4NzNlMDRmYjg2ZmY2NS4uOTQwNzM0MjA2NWZlOWZjNTI4ZDU0
NTc0NDQ2Mzc2YTFkNGQ3ZDdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hbmltYXRpb24vVGltaW5nRnVuY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVk
ZSAiU3ByaW5nU29sdmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVk
ZSAiVW5pdEJlemllci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVt
YmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpAQCAtMTgxLDcgKzE4Miw3IEBAIFN0cmluZyBUaW1pbmdGdW5jdGlvbjo6Y3NzVGV4
dCgpIGNvbnN0CiAgICAgaWYgKG1fdHlwZSA9PSBUaW1pbmdGdW5jdGlvbjo6U3RlcHNGdW5jdGlv
bikgewogICAgICAgICBhdXRvJiBmdW5jdGlvbiA9IGRvd25jYXN0PFN0ZXBzVGltaW5nRnVuY3Rp
b24+KCp0aGlzKTsKICAgICAgICAgaWYgKCFmdW5jdGlvbi5zdGVwQXRTdGFydCgpKQotICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJzdGVwcyglZCkiLCBmdW5jdGlvbi5udW1iZXJP
ZlN0ZXBzKCkpOworICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoInN0ZXBzKCIsIGZ1bmN0
aW9uLm51bWJlck9mU3RlcHMoKSwgJyknKTsKICAgICB9CiAKICAgICBUZXh0U3RyZWFtIHN0cmVh
bTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9BVlRyYWNrUHJpdmF0ZUFWRk9iakNJbXBsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KaW5k
ZXggNmU0OGZkYWYxODU5MDcwYTI2OTM0YmNiNjA2ZmU1YTQwY2ZiZGUyYy4uZWI2OTg4ODQwYTEz
MDcxNTc4MzFmZTM4YWFiMjNmMGU4NWE4YmU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KQEAgLTE4MCw3ICsxODAsNyBAQCBpbnQgQVZUcmFj
a1ByaXZhdGVBVkZPYmpDSW1wbDo6aW5kZXgoKSBjb25zdAogQXRvbWljU3RyaW5nIEFWVHJhY2tQ
cml2YXRlQVZGT2JqQ0ltcGw6OmlkKCkgY29uc3QKIHsKICAgICBpZiAobV9hc3NldFRyYWNrKQot
ICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIiVkIiwgW21fYXNzZXRUcmFjayB0cmFja0lE
XSk7CisgICAgICAgIHJldHVybiBBdG9taWNTdHJpbmc6Om51bWJlcihbbV9hc3NldFRyYWNrIHRy
YWNrSURdKTsKICAgICBpZiAobV9tZWRpYVNlbGVjdGlvbk9wdGlvbikKICAgICAgICAgcmV0dXJu
IFtbbV9tZWRpYVNlbGVjdGlvbk9wdGlvbi0+YXZNZWRpYVNlbGVjdGlvbk9wdGlvbigpIG9wdGlv
bklEXSBzdHJpbmdWYWx1ZV07CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRp
YVNhbXBsZUFWRk9iakMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDYwZWU5NmY0MDI0MzM2MjJm
NTg1NDEyNmZmYjIzOTUxMDY5OGNlMzEuLjk2NmNjZDU1NjlmOWUwNmI2ZjlhNTgxOTk3YWE3YjM4
OWQxZGQyMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5o
CkBAIC04NCw3ICs4NCw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAgICAgTWVkaWFTYW1wbGVBVkZP
YmpDKENNU2FtcGxlQnVmZmVyUmVmIHNhbXBsZSwgaW50IHRyYWNrSUQpCiAgICAgICAgIDogbV9z
YW1wbGUoc2FtcGxlKQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgdHJhY2tJ
RCkpCisgICAgICAgICwgbV9pZChBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSkKICAgICB7
CiAgICAgfQogICAgIE1lZGlhU2FtcGxlQVZGT2JqQyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUs
IFZpZGVvUm90YXRpb24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRl
eCBkMzUxMjc0ZmQzMDQ2MTVkOWJlZTM2YjI0OWZmYzkxNjRiZTI0NTc3Li5jNTVmNWZmOGQwMGNi
YTQ0NTQyOGIxNDEzMDFhMjRmOWI3MmQ3Mzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTUyLDggKzUy
LDggQEAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1Rl
eHRTdHJlYW0uaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAjaW5jbHVkZSAiU3lzdGVtTWVtb3J5LmgiCkBAIC0xMTAxLDcgKzEx
MDEsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29u
c3QgQ29sb3ImIGNvbG9yKQogICAgICAgICAgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IENv
bnRlbnRzTGF5ZXJQdXJwb3NlOjpCYWNrZ3JvdW5kQ29sb3I7CiAgICAgICAgICAgICBtX2NvbnRl
bnRzTGF5ZXIgPSBjcmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5
cGVMYXllciwgdGhpcyk7CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICAgICAg
bV9jb250ZW50c0xheWVyLT5zZXROYW1lKFN0cmluZzo6Zm9ybWF0KCJjb250ZW50cyBjb2xvciAl
bGx1IiwgbV9jb250ZW50c0xheWVyLT5sYXllcklEKCkpKTsKKyAgICAgICAgICAgIG1fY29udGVu
dHNMYXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJjb250ZW50cyBjb2xvciAiLCBtX2NvbnRlbnRz
TGF5ZXItPmxheWVySUQoKSkpOwogI2Vsc2UKICAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+
c2V0TmFtZSgiY29udGVudHMgY29sb3IiKTsKICNlbmRpZgpAQCAtMjU1NSw3ICsyNTU1LDcgQEAg
dm9pZCBHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgICAgICBpZiAo
IW1fY29udGVudHNMYXllci5nZXQoKSkgewogICAgICAgICAgICAgbV9jb250ZW50c0xheWVyID0g
Y3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIHRo
aXMpOwogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgICAgIG1fY29udGVudHNM
YXllci0+c2V0TmFtZShTdHJpbmc6OmZvcm1hdCgiY29udGVudHMgaW1hZ2UgJWxsdSIsIG1fY29u
dGVudHNMYXllci0+bGF5ZXJJRCgpKSk7CisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNl
dE5hbWUobWFrZVN0cmluZygiY29udGVudHMgaW1hZ2UgIiwgbV9jb250ZW50c0xheWVyLT5sYXll
cklEKCkpKTsKICNlbHNlCiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5hbWUoImNv
bnRlbnRzIGltYWdlIik7CiAjZW5kaWYKQEAgLTI2NjEsNyArMjY2MSw3IEBAIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjp1cGRhdGVDb250ZW50c1JlY3RzKCkKICAgICAgICAgICAgIG1fY29udGVudHND
bGlwcGluZ0xheWVyID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5
ZXJUeXBlTGF5ZXIsIHRoaXMpOwogICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXIt
PnNldEFuY2hvclBvaW50KEZsb2F0UG9pbnQoKSk7CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5H
KQotICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldE5hbWUoU3RyaW5nOjpm
b3JtYXQoImNvbnRlbnRzIGNsaXBwaW5nICVsbHUiLCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+
bGF5ZXJJRCgpKSk7CisgICAgICAgICAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+c2V0TmFt
ZShtYWtlU3RyaW5nKCJjb250ZW50cyBjbGlwcGluZyAiLCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXll
ci0+bGF5ZXJJRCgpKSk7CiAjZWxzZQogICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5
ZXItPnNldE5hbWUoImNvbnRlbnRzIGNsaXBwaW5nIik7CiAjZW5kaWYKQEAgLTMxNDUsNyArMzE0
NSw3IEBAIGJvb2wgR3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9u
cyhjb25zdCBLZXlmcmFtZVZhbHVlTGlzdCYgdmFsCiAgICAgZm9yIChpbnQgaW50ZXJuYWxGaWx0
ZXJQcm9wZXJ0eUluZGV4ID0gMDsgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4IDwgbnVtQW5p
bWF0ZWRQcm9wZXJ0aWVzOyArK2ludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgewogICAgICAg
ICBib29sIHZhbHVlc09LOwogICAgICAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY2FB
bmltYXRpb247Ci0gICAgICAgIFN0cmluZyBrZXlQYXRoID0gU3RyaW5nOjpmb3JtYXQoImZpbHRl
cnMuZmlsdGVyXyVkLiVzIiwgYW5pbWF0aW9uSW5kZXgsIFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmlt
YXRlZEZpbHRlclByb3BlcnR5TmFtZShmaWx0ZXJPcCwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUlu
ZGV4KSk7CisgICAgICAgIFN0cmluZyBrZXlQYXRoID0gbWFrZVN0cmluZygiZmlsdGVycy5maWx0
ZXJfIiwgYW5pbWF0aW9uSW5kZXgsICcuJywgUGxhdGZvcm1DQUZpbHRlcnM6OmFuaW1hdGVkRmls
dGVyUHJvcGVydHlOYW1lKGZpbHRlck9wLCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpKTsK
ICAgICAgICAgCiAgICAgICAgIGlmIChpc0tleWZyYW1lKSB7CiAgICAgICAgICAgICBjYUFuaW1h
dGlvbiA9IGNyZWF0ZUtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwga2V5UGF0aCwgZmFsc2Up
OwpAQCAtMzkwMyw3ICszOTAzLDcgQEAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NM
YXllckNBOjpmaW5kT3JNYWtlQ2xvbmUoQ2xvbmVJRCBjbG9uZUlELCBQbGF0Zm8KICAgICB9IGVs
c2UgewogICAgICAgICByZXN1bHRMYXllciA9IGNsb25lTGF5ZXIoc291cmNlTGF5ZXIsIGNsb25l
TGV2ZWwpOwogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgcmVzdWx0TGF5ZXIt
PnNldE5hbWUoU3RyaW5nOjpmb3JtYXQoImNsb25lICVkIG9mICVsbHUiLCBjbG9uZUlEWzBVXSwg
c291cmNlTGF5ZXItPmxheWVySUQoKSkpOworICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZSht
YWtlU3RyaW5nKCJjbG9uZSAiLCBjbG9uZUlEWzBVXSwgIiBvZiAiLCBzb3VyY2VMYXllci0+bGF5
ZXJJRCgpKSk7CiAjZWxzZQogICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZSgiY2xvbmUgb2Yg
IiArIG1fbmFtZSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggZDk0OGQ1NjFiYTZkMmQ0
ZDdmNGFiOGEwNWU4NjRkZmY4ZDYwNDIyZi4uNGU3MzM2ZTJjODEyMWZjNTRmOWUyMGQ2MjcyMzUy
NGI1M2FiYzBkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRl
ICJSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5j
bHVkZSA8d3RmL1VVSUQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzY3LDEyICszNjcsMTIgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogCiAgICAgYXV0byBzaXpl
ID0gdGhpcy0+c2l6ZSgpOwogICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0YXRzRm9udFNp
emUpOwotICAgIHN0cmluZyA9IFN0cmluZzo6Zm9ybWF0KCJTaXplOiAldSB4ICV1Iiwgc2l6ZS53
aWR0aCgpLCBzaXplLmhlaWdodCgpKTsKKyAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJTaXplOiAi
LCBzaXplLndpZHRoKCksICIgeCAiLCBzaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0LmRyYXdU
ZXh0KHN0YXRzRm9udCwgVGV4dFJ1bigoU3RyaW5nVmlldyhzdHJpbmcpKSksIHN0YXRzTG9jYXRp
b24pOwogCiAgICAgaWYgKG1vY2tDYW1lcmEoKSkgewogICAgICAgICBzdGF0c0xvY2F0aW9uLm1v
dmUoMCwgbV9zdGF0c0ZvbnRTaXplKTsKLSAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQo
IlByZXNldCBzaXplOiAldSB4ICV1IiwgY2FwdHVyZVNpemUud2lkdGgoKSwgY2FwdHVyZVNpemUu
aGVpZ2h0KCkpOworICAgICAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJQcmVzZXQgc2l6ZTogIiwg
Y2FwdHVyZVNpemUud2lkdGgoKSwgIiB4ICIsIGNhcHR1cmVTaXplLmhlaWdodCgpKTsKICAgICAg
ICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1ZpZXcoc3RyaW5n
KSkpLCBzdGF0c0xvY2F0aW9uKTsKIAogICAgICAgICBjb25zdCBjaGFyKiBjYW1lcmE7CkBAIC0z
OTMsNyArMzkzLDcgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgICAgICAgICAgY2FtZXJhID0gIlVua25vd24iOwog
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpm
b3JtYXQoIkNhbWVyYTogJXMiLCBjYW1lcmEpOworICAgICAgICBzdHJpbmcgPSBtYWtlU3RyaW5n
KCJDYW1lcmE6ICIsIGNhbWVyYSk7CiAgICAgICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0
YXRzRm9udFNpemUpOwogICAgICAgICBjb250ZXh0LmRyYXdUZXh0KHN0YXRzRm9udCwgVGV4dFJ1
bigoU3RyaW5nVmlldyhzdHJpbmcpKSksIHN0YXRzTG9jYXRpb24pOwogICAgIH0gZWxzZSBpZiAo
IW5hbWUoKS5pc051bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9tZWRpYXNvdXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNw
cAppbmRleCAyYThiMjRiZDJmOTIxZTFjMWYzNTAwMjIyNzdhODMzODdlYzM3YWZlLi5hZDg3YWE3
N2ExMTJmNjU4MjdiZjJlOTI3MGI1MzNhMGQ5M2M1YmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3Vy
Y2VCdWZmZXJQcml2YXRlLmNwcApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIE1vY2tNZWRpYVNhbXBsZShjb25zdCBNb2NrU2FtcGxlQm94JiBib3gpCiAgICAgICAgIDog
bV9ib3goYm94KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgYm94LnRyYWNr
SUQoKSkpCisgICAgICAgICwgbV9pZChTdHJpbmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkKICAg
ICB7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1BhcnNlZENvbnRlbnRSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1BhcnNlZENvbnRlbnRSYW5nZS5jcHAKaW5kZXggMDBiOTBjNDg1M2U4ZTIwYmI0ZTkyODU3YWYw
ZTE3ZTkxNTBkZjQyNS4uYTNkNGYwNDQwNTlkZmQ5YTU3YjMxOTI5ZGI4ZjExMmMxNWY2MjExMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QYXJzZWRDb250ZW50
UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGFyc2VkQ29u
dGVudFJhbmdlLmNwcApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIlBhcnNlZENvbnRlbnRS
YW5nZS5oIgogCiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90
ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVt
YmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNyw4ICsxMjcsOCBAQCBTdHJp
bmcgUGFyc2VkQ29udGVudFJhbmdlOjpoZWFkZXJWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKCFtX2lz
VmFsaWQpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBpZiAobV9pbnN0YW5jZUxlbmd0
aCA9PSBVbmtub3duTGVuZ3RoKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoImJ5dGVz
ICUiIFBSSWQ2NCAiLSUiIFBSSWQ2NCAiLyoiLCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCBtX2xhc3RC
eXRlUG9zaXRpb24pOwotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiYnl0ZXMgJSIgUFJJZDY0
ICItJSIgUFJJZDY0ICIvJSIgUFJJZDY0LCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCBtX2xhc3RCeXRl
UG9zaXRpb24sIG1faW5zdGFuY2VMZW5ndGgpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygi
Ynl0ZXMgIiwgbV9maXJzdEJ5dGVQb3NpdGlvbiwgJy0nLCBtX2xhc3RCeXRlUG9zaXRpb24sICIv
KiIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCJieXRlcyAiLCBtX2ZpcnN0Qnl0ZVBvc2l0aW9u
LCAnLScsIG1fbGFzdEJ5dGVQb3NpdGlvbiwgJy8nLCBtX2luc3RhbmNlTGVuZ3RoKTsKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3Jr
U3RvcmFnZVNlc3Npb25DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAppbmRleCAxY2NhYjQzYzdhOGNiOGE3
MzBhNWFkNjIzMTU1MTRmOGYwNzNhZDQwLi41MjI2Zjg1NWI2YmZhNmM1ZWI5M2U5Mjg5YTkyM2Qw
ZWQyYzc4MmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtMzAsMTIg
KzMwLDE1IEBACiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3Rm
L1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzUHJpdmlsZWdlLmg+CisjaW5jbHVk
ZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKICNpZiBQTEFURk9STShD
T0NPQSkKICNpbmNsdWRlICJQdWJsaWNTdWZmaXguaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKICNlbmRpZgorCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKKwogI2luY2x1ZGUgIkNv
b2tpZS5oIgogI2luY2x1ZGUgIkNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5LmgiCiAjaW5j
bHVkZSAiQ29va2llc1N0cmF0ZWd5LmgiCkBAIC00Nyw3ICs1MCw2IEBACiAjaW5jbHVkZSA8d3Rm
L1NvZnRMaW5raW5nLmg+CiAjaW5jbHVkZSA8d3RmL1VSTC5oPgogI2luY2x1ZGUgPHd0Zi9jZi9U
eXBlQ2FzdHNDRi5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiBlbnVtIHsK
ICAgICBDRkhUVFBDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5RXhjbHVzaXZlbHlGcm9tTWFpbkRv
Y3VtZW50RG9tYWluID0gMwpAQCAtNjEsMTggKzYzLDE1IEBAIHN0cnVjdCBDRlR5cGVUcmFpdDxD
bGFzc05hbWUjI1JlZj4geyBcCiBzdGF0aWMgaW5saW5lIENGVHlwZUlEIHR5cGVJRCgpIHsgcmV0
dXJuIENsYXNzTmFtZSMjR2V0VHlwZUlEKCk7IH0gXAogfTsKIAotI2lmIENPTVBJTEVSKENMQU5H
KQogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSNlbmRpZgogREVDTEFSRV9D
Rl9UWVBFX1RSQUlUKENGSFRUUENvb2tpZSk7Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCiBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSNlbmRpZgogCiAjdW5kZWYgREVDTEFSRV9DRl9U
WVBFX1RSQUlUCisKIH0gLy8gbmFtZXNwYWNlIFdURgogCi0jZW5kaWYKKyNlbmRpZiAvLyAgVVNF
KENGVVJMQ09OTkVDVElPTikKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMzIsNiArMTMx
LDcgQEAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBkZWZh
dWx0TmV0d29ya1N0b3JhZ2VTZXNzaW9uKCkKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkKKwog
c3RhdGljIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgY3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9u
KENGU3RyaW5nUmVmIGlkZW50aWZpZXIsIENGVVJMU3RvcmFnZVNlc3Npb25SZWYgZGVmYXVsdFN0
b3JhZ2VTZXNzaW9uKQogewogICAgIGNvbnN0IHZvaWQqIHNlc3Npb25Qcm9wZXJ0eUtleXNbXSA9
IHsgX2tDRlVSTFN0b3JhZ2VTZXNzaW9uSXNQcml2YXRlIH07CkBAIC0xNjUsMTIgKzE2NSwxMyBA
QCBzdGF0aWMgQ0ZVUkxTdG9yYWdlU2Vzc2lvblJlZiBjcmVhdGVQcml2YXRlU3RvcmFnZVNlc3Np
b24oQ0ZTdHJpbmdSZWYgaWRlbnRpZmllcgogCiAgICAgcmV0dXJuIHN0b3JhZ2VTZXNzaW9uOwog
fQorCiAjZW5kaWYKIAogdm9pZCBOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVz
dGluZ1Nlc3Npb24oKQogewogICAgIC8vIFNlc3Npb24gbmFtZSBzaG91bGQgYmUgc2hvcnQgZW5v
dWdoIGZvciBzaGFyZWQgbWVtb3J5IHJlZ2lvbiBuYW1lIHRvIGJlIHVuZGVyIHRoZSBsaW1pdCwg
b3RlaHJ3aXNlIHNhbmRib3ggcnVsZXMgd29uJ3Qgd29yayAoc2VlIDxyZGFyOi8vcHJvYmxlbS8x
MzY0Mjg1Mj4pLgotICAgIFN0cmluZyBzZXNzaW9uTmFtZSA9IFN0cmluZzo6Zm9ybWF0KCJXZWJL
aXQgVGVzdC0ldSIsIHN0YXRpY19jYXN0PHVpbnQzMl90PihnZXRDdXJyZW50UHJvY2Vzc0lEKCkp
KTsKKyAgICBTdHJpbmcgc2Vzc2lvbk5hbWUgPSBtYWtlU3RyaW5nKCJXZWJLaXQgVGVzdC0iLCBn
ZXRDdXJyZW50UHJvY2Vzc0lEKCkpOwogCiAgICAgUmV0YWluUHRyPENGVVJMU3RvcmFnZVNlc3Np
b25SZWY+IHNlc3Npb247CiAjaWYgUExBVEZPUk0oQ09DT0EpCkBAIC0yNTUsMTggKzI1NiwxNiBA
QCB2b2lkIE5ldHdvcmtTdG9yYWdlU2Vzc2lvbjo6c2V0U3RvcmFnZUFjY2Vzc0FQSUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogfQogCiAjaWYgIVBMQVRGT1JNKENPQ09BKQorCiB2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbjo6c2V0Q29va2llcyhjb25zdCBWZWN0b3I8Q29va2llPiYsIGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLiA8aHR0cHM6
Ly93ZWJraXQub3JnL2IvMTU2Mjk4PgogfQotI2VuZGlmCiAKLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKyNlbmRpZgogCiAjaWYgVVNFKENGVVJMQ09OTkVDVElPTikKIAotbmFtZXNwYWNlIFdlYkNv
cmUgewotCiBzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYgc19zZXRDb29raWVLZXlDRiA9IENGU1RS
KCJTZXQtQ29va2llIik7CiBzdGF0aWMgY29uc3QgQ0ZTdHJpbmdSZWYgc19jb29raWVDRiA9IENG
U1RSKCJDb29raWUiKTsKIHN0YXRpYyBjb25zdCBDRlN0cmluZ1JlZiBzX2NyZWF0ZWRDRiA9IENG
U1RSKCJDcmVhdGVkIik7CkBAIC01MTgsNiArNTE3LDYgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZVNl
c3Npb246OmRlbGV0ZUFsbENvb2tpZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lKQogewogfQogCi19
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KICNlbmRpZiAvLyBVU0UoQ0ZVUkxDT05ORUNUSU9OKQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3Fs
L1NRTGl0ZURhdGFiYXNlLmNwcAppbmRleCA2NjNlMGJjMGI4NTY3MDgzYWE5N2VmODExNWE1NDY4
YzUxN2U5NmM1Li5kN2JjNjEzMmI0MjY4NmRlNDllNThkYTI4NGQ2NjdkOTdhYjczNjk0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTQ2
LDggKzQ2LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9yTWVzc2FnZVtdID0gImRh
dGFiYXNlIGlzIG5vdCBvcGVuIjsKIHN0YXRpYyB2b2lkIHVuYXV0aG9yaXplZFNRTEZ1bmN0aW9u
KHNxbGl0ZTNfY29udGV4dCAqY29udGV4dCwgaW50LCBzcWxpdGUzX3ZhbHVlICoqKQogewogICAg
IGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSA9IChjb25zdCBjaGFyKilzcWxpdGUzX3VzZXJfZGF0
YShjb250ZXh0KTsKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIkZ1
bmN0aW9uICVzIGlzIHVuYXV0aG9yaXplZCIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgc3FsaXRlM19y
ZXN1bHRfZXJyb3IoY29udGV4dCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCksIC0xKTsKKyAg
ICBzcWxpdGUzX3Jlc3VsdF9lcnJvcihjb250ZXh0LCBtYWtlU3RyaW5nKCJGdW5jdGlvbiAiLCBm
dW5jdGlvbk5hbWUsICIgaXMgdW5hdXRob3JpemVkIikudXRmOCgpLmRhdGEoKSwgLTEpOwogfQog
CiBzdGF0aWMgdm9pZCBpbml0aWFsaXplU1FMaXRlSWZOZWNlc3NhcnkoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCBhYzJl
MDM2MDNkMDlmODgyOWIwNmJjZjBkNGRmMjhhYjY0Zjg3ZTE4Li43ZjkxNzQzMjZkYjAzNDQ1NTAz
Y2E4MTU2OGJjODYwNzU0MmE3MzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTMwMSw3ICsxMzAxLDcgQEAgdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXllciYgbGF5
ZXIsIGNvbnN0IGNoYXIqIHAKICAgICAgICAgYmFja2luZy0+YmFja2luZ1N0b3JlTWVtb3J5RXN0
aW1hdGUoKSAvIDEwMjQpKTsKICAgICAKICAgICBpZiAoIWxheWVyLnJlbmRlcmVyKCkuc3R5bGUo
KS5oYXNBdXRvWkluZGV4KCkpCi0gICAgICAgIGxvZ1N0cmluZy5hcHBlbmQoU3RyaW5nOjpmb3Jt
YXQoIiB6LWluZGV4OiAlZCIsIGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS56SW5kZXgoKSkpOyAK
KyAgICAgICAgbG9nU3RyaW5nLmFwcGVuZChtYWtlU3RyaW5nKCIgei1pbmRleDogIiwgbGF5ZXIu
cmVuZGVyZXIoKS5zdHlsZSgpLnpJbmRleCgpKSk7CiAKICAgICBsb2dTdHJpbmcuYXBwZW5kTGl0
ZXJhbCgiICgiKTsKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxvZ1JlYXNvbnNGb3JDb21wb3NpdGlu
ZyhsYXllcikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3Nl
cnZlci9SZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCA3NzBjOWQ2MGI4Y2Y4
ZGRmYTJhMmY5N2Q1NmQ1N2FiNGVjNWU0OWJhLi5hNGNiMjUzNDI2MjMzMmRhZDFjNTVmY2ZmYzY2
ZDFiODE5NGRhMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtNDUsNiArNDUs
NyBAQAogI2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg+CiAjaW5j
bHVkZSA8d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnREZWNvZGVyLmg+CiAjaW5jbHVkZSA8d3Rm
L3BlcnNpc3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAx
LDcgKzIwMiw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6ZW5zdXJlVmFsaWRSZWNv
cmRzVGFibGUoKQogICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBSZWNvcmRzIHRhYmxlIGF0IGFs
bCwgY3JlYXRlIGl0IGFuZCB0aGVuIGJhaWwuCiAgICAgICAgIGlmIChzcWxpdGVSZXN1bHQgPT0g
U1FMSVRFX0RPTkUpIHsKICAgICAgICAgICAgIGlmICghbV9kYXRhYmFzZS0+ZXhlY3V0ZUNvbW1h
bmQocmVjb3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmc6
OmZvcm1hdCgiQ291bGQgbm90IGNyZWF0ZSBSZWNvcmRzIHRhYmxlIGluIGRhdGFiYXNlICglaSkg
LSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCBjcmVhdGUg
UmVjb3JkcyB0YWJsZSBpbiBkYXRhYmFzZSAoIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksICIp
IC0gIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsg
fTsKICAgICAgICAgfQogCkBAIC0zNTgsNyArMzU5LDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRh
dGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fZGF0
YWJhc2UsICJTRUxFQ1QgKiBGUk9NIFJlY29yZHM7Il9zKTsKICAgICBpZiAoc3FsLnByZXBhcmUo
KSAhPSBTUUxJVEVfT0spCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiRmFpbGVkIHRv
IHByZXBhcmUgc3RhdGVtZW50IHRvIHJldHJpZXZlIHJlZ2lzdHJhdGlvbnMgZnJvbSByZWNvcmRz
IHRhYmxlICglaSkgLSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5s
YXN0RXJyb3JNc2coKSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gcHJl
cGFyZSBzdGF0ZW1lbnQgdG8gcmV0cmlldmUgcmVnaXN0cmF0aW9ucyBmcm9tIHJlY29yZHMgdGFi
bGUgKCIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fZGF0YWJhc2UtPmxhc3RF
cnJvck1zZygpKTsKIAogICAgIGludCByZXN1bHQgPSBzcWwuc3RlcCgpOwogCkBAIC00MDgsNyAr
NDA5LDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKICAg
ICB9CiAKICAgICBpZiAocmVzdWx0ICE9IFNRTElURV9ET05FKQotICAgICAgICByZXR1cm4gU3Ry
aW5nOjpmb3JtYXQoIkZhaWxlZCB0byBpbXBvcnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBm
cm9tIHJlY29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksIG1f
ZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkZh
aWxlZCB0byBpbXBvcnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBmcm9tIHJlY29yZHMgdGFi
bGUgKCIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fZGF0YWJhc2UtPmxhc3RF
cnJvck1zZygpKTsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
Yk1lbW9yeVNhbXBsZXIuY3BwCmluZGV4IDJiODUyMDBkZWM5Mjc4Yzc0ZGJhZjYyYWU1MzMwZDlm
OGQzN2RjMDcuLjg3ZTZlZWIzYTk0MzFlNWM1NzI3ZmE1MjViNzFmZDc1NmViY2VhYTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNDIsNyArMTQzLDcgQEAgdm9pZCBXZWJNZW1vcnlT
YW1wbGVyOjppbml0aWFsaXplU2FuZGJveGVkTG9nRmlsZShTYW5kYm94RXh0ZW5zaW9uOjpIYW5k
bGUmJiBzYW0KIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhlYWRlcnMoKQogewotICAg
IFN0cmluZyBwcm9jZXNzRGV0YWlscyA9IFN0cmluZzo6Zm9ybWF0KCJQcm9jZXNzOiAlcyBQaWQ6
ICVkXG4iLCBwcm9jZXNzTmFtZSgpLnV0ZjgoKS5kYXRhKCksIGdldEN1cnJlbnRQcm9jZXNzSUQo
KSk7CisgICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gbWFrZVN0cmluZygiUHJvY2VzczogIiwg
cHJvY2Vzc05hbWUoKSwgIiBQaWQ6ICIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgJ1xuJyk7CiAK
ICAgICBDU3RyaW5nIHV0ZjhTdHJpbmcgPSBwcm9jZXNzRGV0YWlscy51dGY4KCk7CiAgICAgRmls
ZVN5c3RlbTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwg
dXRmOFN0cmluZy5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0
b3IubW0KaW5kZXggMDI1N2MwZDhhNmJiMjI5MDQ5ZjMxNGJlMDFkYzk0OThkNzE4MjVmNC4uODVk
ODFmYzU4ZDRmYzhiNDdkNDRmNTg2OTM3ODE5YjFjOTIyM2Y2ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtMTkxLDcgKzE5MSw3IEBAIHZvaWQgTG9jYWxB
dXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgpCiAgICAgICAgIHdlYWtUaGlzLT5jb250aW51
ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyQ29uc2VudGVkKGNvbnNlbnQpOwogICAgIH07CiAgICAg
bV9jb25uZWN0aW9uLT5nZXRVc2VyQ29uc2VudCgKLSAgICAgICAgU3RyaW5nOjpmb3JtYXQoIkFs
bG93ICVzIHRvIGNyZWF0ZSBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBmb3IgJXMiLCByZXF1ZXN0
RGF0YSgpLmNyZWF0aW9uT3B0aW9ucy5ycC5pZC51dGY4KCkuZGF0YSgpLCByZXF1ZXN0RGF0YSgp
LmNyZWF0aW9uT3B0aW9ucy51c2VyLm5hbWUudXRmOCgpLmRhdGEoKSksCisgICAgICAgICJBbGxv
dyAiICsgcmVxdWVzdERhdGEoKS5jcmVhdGlvbk9wdGlvbnMucnAuaWQgKyAiIHRvIGNyZWF0ZSBh
IHB1YmxpYyBrZXkgY3JlZGVudGlhbCBmb3IgIiArIHJlcXVlc3REYXRhKCkuY3JlYXRpb25PcHRp
b25zLnVzZXIubmFtZSwKICAgICAgICAgV1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmIC8vICFQ
TEFURk9STShJT1NfRkFNSUxZKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
Ykluc3BlY3RvclV0aWxpdGllcy5jcHAKaW5kZXggYzVkYjQwMWVlMWM2MTk1ODk0MmQ2YTNiMzBj
ZjMwZjEzZmE2YjgwNi4uM2I0OWNlMDM0YTlhYWIwMzIzZGIxNGIzMzYwOGRlYmE2NGZmYmY5OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yVXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JVdGlsaXRpZXMu
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTU3LDcgKzU4LDcgQEAgdW5zaWduZWQgaW5zcGVjdG9yTGV2ZWxGb3JQ
YWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIAogU3RyaW5nIGluc3BlY3RvclBhZ2VHcm91cElkZW50
aWZpZXJGb3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIl9fV2ViSW5zcGVjdG9yUGFnZUdyb3VwTGV2ZWwldV9fIiwgaW5zcGVjdG9yTGV2ZWxG
b3JQYWdlKHBhZ2UpKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiX19XZWJJbnNwZWN0b3JQYWdl
R3JvdXBMZXZlbCIsIGluc3BlY3RvckxldmVsRm9yUGFnZShwYWdlKSwgIl9fIik7CiB9CiAKIHZv
aWQgdHJhY2tJbnNwZWN0b3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBjOGY4MDVlODk4NGIzMjM1MmY5MjU3
MDdjN2FiNWQ0MzZmMWE1MGVlLi5lOTczYzk4YjMwZjAxYmIwYWQxZDA0YWMyNGFlMWEwMGVhYjY1
ODk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00
MSw5ICs0MSw2IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVk
ZSAiR2FtZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdl
U2FtcGxlci5oIgotI2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCi0j
aW5jbHVkZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKLSNlbmRpZgog
I2luY2x1ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC05Nyw2ICs5NCwx
MSBAQAogI2luY2x1ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CisKKyNpZiBFTkFCTEUoTEVHQUNZX0NVU1RP
TV9QUk9UT0NPTF9NQU5BR0VSKQorI2luY2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdl
ck1lc3NhZ2VzLmgiCisjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogI2lu
Y2x1ZGUgIlNlcnZpY2VzQ29udHJvbGxlci5oIgpAQCAtMTAxNyw3ICsxMDE5LDcgQEAgdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkq
IHByb2Nlc3MpCiAgICAgaWYgKG1fbWVtb3J5U2FtcGxlckVuYWJsZWQpIHsKICAgICAgICAgU2Fu
ZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbXBsZUxvZ1NhbmRib3hIYW5kbGU7ICAgICAgICAKICAg
ICAgICAgV2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwotICAgICAgICBTdHJpbmcgc2Ft
cGxlTG9nRmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHVwaWQlZCIsIHN0
YXRpY19jYXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obm93LnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vj
b25kcygpKSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIFN0cmluZyBz
YW1wbGVMb2dGaWxlUGF0aCA9IG1ha2VTdHJpbmcoIldlYlByb2Nlc3MiLCBzdGF0aWNfY2FzdDx1
bnNpZ25lZCBsb25nIGxvbmc+KG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSksICJw
aWQiLCBwcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICAgICAgc2FtcGxlTG9nRmls
ZVBhdGggPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKHNh
bXBsZUxvZ0ZpbGVQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHNhbXBs
ZUxvZ1NhbmRib3hIYW5kbGUpOwogICAgICAgICAKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNz
YWdlczo6V2ViUHJvY2Vzczo6U3RhcnRNZW1vcnlTYW1wbGVyKHNhbXBsZUxvZ1NhbmRib3hIYW5k
bGUsIHNhbXBsZUxvZ0ZpbGVQYXRoLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCksIDApOwpAQCAt
MTU3NCw3ICsxNTc2LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RhcnRNZW1vcnlTYW1wbGVy
KGNvbnN0IGRvdWJsZSBpbnRlcnZhbCkKICAgICAvLyBGb3IgV2ViUHJvY2VzcwogICAgIFNhbmRi
b3hFeHRlbnNpb246OkhhbmRsZSBzYW1wbGVMb2dTYW5kYm94SGFuZGxlOyAgICAKICAgICBXYWxs
VGltZSBub3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRo
ID0gU3RyaW5nOjpmb3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKKyAgICBTdHJp
bmcgc2FtcGxlTG9nRmlsZVBhdGggPSBtYWtlU3RyaW5nKCJXZWJQcm9jZXNzIiwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQgbG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkp
KTsKICAgICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRs
ZUZvclRlbXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5
cGU6OlJlYWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAgICAgCiAgICAgc2VuZFRv
QWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9yeVNhbXBsZXIoc2Ft
cGxlTG9nU2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIGludGVydmFsKSk7CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYTJhMjk5ZjRi
NzMwNWU0MDk5NmZjNjRmZGY2ODBhMGRhZDNmOWJkZS4uYWIxNjdiOTFmZjY5YTI5ZWFkMjBiMzk0
M2RlMDgyMGZiNGUzZTRiYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE4LTEyLTE1ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIG1hbnkgdXNlcyBvZiBTdHJpbmc6OmZv
cm1hdCB3aXRoIG1vcmUgdHlwZS1zYWZlIGFsdGVybmF0aXZlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzQyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV1RSOjpjYWNoZVRlc3RSdW5uZXJDYWxs
YmFjayk6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENv
bnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgIChXVFI6OlRl
c3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwpOiBVc2UgYW4gQVNDSUlMaXRlcmFsIHZpYSB0
aGUgX3Mgc3ludGF4LgorCiAyMDE4LTEyLTE0ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBhIHN0eWxlIGNoZWNrZXIgcnVsZSBmb3IgWGNvZGUgdmVy
c2lvbiBtYWNyb3MgdXNlCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAppbmRleCAyMjU3OWU4OTE4NTU5YjhlMzI4ZjQxODM2Zjcw
ZDE1NzExNzYwODkyLi44ODIyZjE1ZDBhNWU3ZjkxYTNiYmE0N2ZkYmVkMGVhZGYwMjgyYTJjIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMu
aD4KIAogbmFtZXNwYWNlIFdUUiB7CiAKQEAgLTgxMyw3ICs4MTQsNyBAQCBzdGF0aWMgdm9pZCBj
YWNoZVRlc3RSdW5uZXJDYWxsYmFjayh1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZVJlZiBjYWxsYmFj
aykKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGNhbGxiYWNrTWFwKCkuY29udGFpbnMoaW5k
ZXgpKSB7Ci0gICAgICAgIEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KFN0
cmluZzo6Zm9ybWF0KCJGQUlMOiBUcmllZCB0byBpbnN0YWxsIGEgc2Vjb25kIFRlc3RSdW5uZXIg
Y2FsbGJhY2sgZm9yIHRoZSBzYW1lIGV2ZW50IChpZCAlZClcblxuIiwgaW5kZXgpKTsKKyAgICAg
ICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQobWFrZVN0cmluZygiRkFJ
TDogVHJpZWQgdG8gaW5zdGFsbCBhIHNlY29uZCBUZXN0UnVubmVyIGNhbGxiYWNrIGZvciB0aGUg
c2FtZSBldmVudCAoaWQgIiwgaW5kZXgsICIpXG5cbiIpKTsKICAgICAgICAgcmV0dXJuOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCAwODUw
NTU4MTMwYmM1Yjc2Mjg1YWZiODI0NWE3ZmI4ZmU0M2MxZjA1Li5hOTdhYzllZWVkNTU2OGJlZmM0
MmQyY2IyMTkzMjc5ZWEzMDJhYmVjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcApAQCAtNzgsNyArNzgsNyBAQAogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5o
PgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8
V2ViS2l0L1dLQ29udGV4dFByaXZhdGVNYWMuaD4KQEAgLTIwNjEsMTEgKzIwNjEsMTEgQEAgdm9p
ZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdLUGFn
ZVJlZiBwYWdlLCBXS0F1dGhlbnQKIAogICAgIHN0ZDo6c3RyaW5nIGhvc3QgPSB0b1NURChhZG9w
dFdLKFdLUHJvdGVjdGlvblNwYWNlQ29weUhvc3QocHJvdGVjdGlvblNwYWNlKSkuZ2V0KCkpOwog
ICAgIGludCBwb3J0ID0gV0tQcm90ZWN0aW9uU3BhY2VHZXRQb3J0KHByb3RlY3Rpb25TcGFjZSk7
Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiJXM6JWQgLSBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSAlcyAtICIsIGhvc3QuY19zdHIoKSwgcG9ydCwgdG9T
dHJpbmcoYXV0aGVudGljYXRpb25TY2hlbWUpKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VT
dHJpbmcoaG9zdC5jX3N0cigpLCAnOicsIHBvcnQsICIgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgLSAiLCB0b1N0cmluZyhhdXRoZW50aWNhdGlvblNjaGVtZSksICIgLSAiKTsK
ICAgICBpZiAoIW1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcykKICAgICAgICAgbWVz
c2FnZS5hcHBlbmQoIlNpbXVsYXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRpY2F0aW9uIHNoZWV0XG4i
KTsKICAgICBlbHNlCi0gICAgICAgIG1lc3NhZ2UuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJSZXNw
b25kaW5nIHdpdGggJXM6JXNcbiIsIG1fYXV0aGVudGljYXRpb25Vc2VybmFtZS51dGY4KCkuZGF0
YSgpLCBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBt
ZXNzYWdlLmFwcGVuZCgiUmVzcG9uZGluZyB3aXRoICIgKyBtX2F1dGhlbnRpY2F0aW9uVXNlcm5h
bWUgKyAiOiIgKyBtX2F1dGhlbnRpY2F0aW9uUGFzc3dvcmQgKyAiXG4iKTsKICAgICBtX2N1cnJl
bnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1lc3NhZ2UpOwogCiAgICAgaWYgKCFtX2hhbmRsZXNB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZXMpIHsKQEAgLTIxNjMsOCArMjE2Myw3IEBAIHZvaWQgVGVz
dENvbnRyb2xsZXI6OmRvd25sb2FkRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tDb250
ZXh0UmVmLCBXS0Rvd25sCiB2b2lkIFRlc3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwoV0tD
b250ZXh0UmVmLCBXS0Rvd25sb2FkUmVmLCBXS0Vycm9yUmVmIGVycm9yKQogewogICAgIGlmICht
X3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJhY2tzKSB7Ci0gICAgICAgIFN0cmluZyBtZXNzYWdlID0g
U3RyaW5nOjpmb3JtYXQoIkRvd25sb2FkIGZhaWxlZC5cbiIpOwotICAgICAgICBtX2N1cnJlbnRJ
bnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1lc3NhZ2UpOworICAgICAgICBtX2N1cnJlbnRJbnZvY2F0
aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9hZCBmYWlsZWQuXG4iX3MpOwogCiAgICAgICAgIFdLUmV0
YWluUHRyPFdLU3RyaW5nUmVmPiBlcnJvckRvbWFpbiA9IGFkb3B0V0soV0tFcnJvckNvcHlEb21h
aW4oZXJyb3IpKTsKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGVycm9yRGVzY3Jp
cHRpb24gPSBhZG9wdFdLKFdLRXJyb3JDb3B5TG9jYWxpemVkRGVzY3JpcHRpb24oZXJyb3IpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360243</attachid>
            <date>2019-01-26 11:29:18 -0800</date>
            <delta_ts>2019-01-27 16:30:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192742-20190126112917.patch</filename>
            <type>text/plain</type>
            <size>134669</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
YTRjOTJmMjViMzhkZThhOTYzNjNlZmY3NWEyOWQwMDE2MWIyYmI5Li4yOTViZmJiMDk0ZTg1NjZk
ODE5ODQyZTA2Nzc1OGQ2OTdlMGM4OWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5
cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUNhbGwpOiBVc2UgbWFrZVN0cmluZy4KKyAg
ICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQXN5bmNDYWxsKTogRGl0
dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OmdldFByb3BlcnR5VmFsdWUp
OiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZW5hYmxl
KTogRGl0dG8uCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEZ1bmN0aW9uSlNDU3RhY2tG
dW5jdG9yOjpvcGVyYXRvcigpIGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBydW50aW1lL0lu
dGxEYXRlVGltZUZvcm1hdC5jcHA6CisgICAgICAgIChKU0M6OkludGxEYXRlVGltZUZvcm1hdDo6
aW5pdGlhbGl6ZURhdGVUaW1lRm9ybWF0KTogVXNlIHN0cmluZyBjb25jYXRlbmF0aW9uLgorICAg
ICAgICAqIHJ1bnRpbWUvSW50bE9iamVjdC5jcHA6CisgICAgICAgIChKU0M6OmNhbm9uaWNhbGl6
ZUxvY2FsZUxpc3QpOiBEaXR0by4KKwogMjAxOS0wMS0yMyAgTWFyayBMYW0gIDxtYXJrLmxhbUBh
cHBsZS5jb20+CiAKICAgICAgICAgQVJNNjRFIHNob3VsZCBub3QgRU5BQkxFKFNFUEFSQVRFRF9X
WF9IRUFQKS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nIGIvU291cmNlL1dURi9D
aGFuZ2VMb2cKaW5kZXggOTYxMThkM2VlZTI4OTM1MTdlYWYxNDAxMWQ1NjkyNTg5OTA1Yjc5My4u
NmE4Y2E4NTNlOTg0NWJkZTc0MWM0NTVmYTgwMTlmM2I4NzNjYjJlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dURi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2Fm
ZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAg
ICogd3RmL1dvcmtRdWV1ZS5jcHA6CisgICAgICAgIChXVEY6OldvcmtRdWV1ZTo6Y29uY3VycmVu
dEFwcGx5KTogVXNlIG1ha2VTdHJpbmcuCisKKyAgICAgICAgKiB3dGYvZHRvYS5jcHA6CisgICAg
ICAgIChXVEY6OmR0b2EpOiBVc2Ugc3ByaW50ZiBpbnN0ZWFkIG9mIFN0cmluZzo6Zm9ybWF0IGlu
IHRoZSBjb21tZW50cywKKyAgICAgICAgc2luY2UgdGhlc2UgZnVuY3Rpb25zIGhhdmUgbm90aGlu
ZyB0byBkbyB3aXRoIFdURjo6U3RyaW5nLgorCiAyMDE5LTAxLTIzICBNYXJrIExhbSAgPG1hcmsu
bGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBBUk02NEUgc2hvdWxkIG5vdCBFTkFCTEUoU0VQQVJB
VEVEX1dYX0hFQVApLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDM2NmU0YmJmZTRkYTA1ODJiZTgzMjM0YTkxNTli
YjgxZWJhMGEzOTMuLjc5NzlkMTY3N2Q1ZGJjOTcyMTNlYTBjN2VjMTU1ZTZjM2I4YmU5NzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxODMgQEAKKzIwMTgtMTItMTUgIERhcmluIEFkbGVyICA8ZGFy
aW5AYXBwbGUuY29tPgorCisgICAgICAgIFJlcGxhY2UgbWFueSB1c2VzIG9mIFN0cmluZzo6Zm9y
bWF0IHdpdGggbW9yZSB0eXBlLXNhZmUgYWx0ZXJuYXRpdmVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3NDIKKworICAgICAgICBSZXZpZXdlZCBi
eSBNYXJrIExhbS4KKworICAgICAgICBBIHdoaWxlIGJhY2ssIFN0cmluZzo6Zm9ybWF0IHdhcyBt
b3JlIGVmZmljaWVudCB0aGFuIHN0cmluZyBjb25jYXRlbmF0aW9uLAorICAgICAgICBidXQgdGhh
dCBpcyBubyBsb25nZXIgdHJ1ZSwgYW5kIHdlIHNob3VsZCBwcmVmZXIgU3RyaW5nOjpudW1iZXIs
IG1ha2VTdHJpbmcsCisgICAgICAgIG9yIGNvbmNhdGVuYXRpb24gd2l0aCB0aGUgIisiIG9wZXJh
dG9yIHRvIFN0cmluZzo6Zm9ybWF0IGZvciBuZXcgY29kZS4KKworICAgICAgICBUaGlzIGlzIG5v
dCBhcyBnb29kIGZvciBwcm9ncmFtbWVycyB3aG8gYXJlIGZvbmQgb2YgcHJpbnRmIGZvcm1hdHRp
bmcKKyAgICAgICAgc3R5bGUsIGFuZCBpbiBzb21lIGNhc2VzIGl0J3MgYSBsaXR0bGUgaGFyZGVy
IHRvIHJlYWQgdGhlIHN0cmluZ3MKKyAgICAgICAgaW50ZXJzcGVyc2VkIHdpdGggdmFyaWFibGVz
IHJhdGhlciB0aGFuIGEgZm9ybWF0IHN0cmluZywgYnV0IGl0J3MgYmV0dGVyCisgICAgICAgIGlu
IGEgZmV3IHdheXM6CisKKyAgICAgICAgLSBtb3JlIGVmZmljaWVudCAoSSBkaWRuJ3QgbWVhc3Vy
ZSB0aGUgZGlmZmVyZW5jZSwgYnV0IGl0J3MgZGVmaW5pdGVseQorICAgICAgICAgIHNsb3dlciB0
byB1c2UgU3RyaW5nOjpGb3JtYXQgd2hpY2ggY2FsbHMgdnNucHJpbnRmIHR3aWNlIHRoYW4gdG8g
dXNlCisgICAgICAgICAgdGhlIFdURiBjb2RlKQorICAgICAgICAtIHdvcmtzIGluIGEgdHlwZS1z
YWZlIHdheSB3aXRob3V0IGEgbmVlZCB0byB1c2UgYSBmb3JtYXQgc3BlY2lmaWVyIHN1Y2gKKyAg
ICAgICAgICBhcyAiJSIgUFJJdTY0IG9yICIldHUiIG1ha2luZyBpdCBtdWNoIGVhc2llciB0byBh
dm9pZCBwcm9ibGVtcyBkdWUgdG8KKyAgICAgICAgICBzdWJ0bGUgZGlmZmVyZW5jZXMgYmV0d2Vl
biBwbGF0Zm9ybXMKKyAgICAgICAgLSBhbGxvd3MgdXMgdG8gdXNlIFN0cmluZ1ZpZXcgaW4gc29t
ZSBjYXNlcyB0byBzaWRlc3RlcCB0aGUgbmVlZCB0bworICAgICAgICAgIGFsbG9jYXRlIHRlbXBv
cmFyeSBXVEY6OlN0cmluZyBvYmplY3RzCisgICAgICAgIC0gZG9lcyBub3QgcmVxdWlyZSBjb252
ZXJ0aW5nIGVhY2ggV1RGOjpTdHJpbmcgdG8gYSBDIHN0cmluZywgYWxsb3dpbmcKKyAgICAgICAg
ICB1cyB0byByZW1vdmUgbWFueSBjYXNlcyBvZiAiLnV0ZjgoKS5kYXRhKCkiIGFuZCBzaW1pbGFy
IGV4cHJlc3Npb25zLAorICAgICAgICAgIGVsaW1pbmF0aW5nIHRoZSBhbGxvY2F0aW9uIG9mIHRl
bXBvcmFyeSBXVEY6OkNTdHJpbmcgb2JqZWN0cworCisgICAgICAgIFRoaXMgcGF0Y2ggY292ZXJz
IGEgYmF0Y2ggb2YgZWFzaWVzdC10by1jb252ZXJ0IGNhbGwgc2l0ZXMuCisgICAgICAgIExhdGVy
IHBhdGNoZXMgd2lsbCBhbGxvdyB1cyB0byBkZXByZWNhdGUgb3IgcmVtb3ZlIFN0cmluZzo6Zm9y
bWF0LgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6YWRkUmVjb3JkKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q3Vyc29ySW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpJREJHZXRBbGxSZWNvcmRzRGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRv
LgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkdldFJlY29yZERhdGE6OmxvZ2dpbmdTdHJpbmcgY29u
c3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJ
bmZvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbmZvOjpjb25kZW5zZWRM
b2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkl0
ZXJhdGVDdXJzb3JEYXRhOjpsb2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJPYmplY3RTdG9yZUluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcgY29u
c3QpOiBEaXR0by4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3Vy
Y2VJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmll
cjo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0
YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0RXJyb3JNZXNzYWdl
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oOgorICAg
ICAgICAoV2ViQ29yZTo6U1FMRXJyb3I6OmNyZWF0ZSk6IERpdHRvLgorCisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxl
bWVudGF0aW9uKTogVXNlIG1ha2VTdHJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNNYXBMaWtlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNSZWFkT25seU1hcExpa2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3Ry
dWN0b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0
b21Db25zdHJ1Y3RvcldpdGhOb0ludGVyZmFjZU9iamVjdC5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwOgorICAgICAgICAqIGJp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2Jq
ZWN0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZUxlYWRpbmdVbmRlcnNjb3JlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SXRlcmFibGUuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0
b3IuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVy
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElu
ZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWls
dGlucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNB
bmRPdmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9kZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92
ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAg
ICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFj
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VS
ZWplY3Rpb25FdmVudC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6YXRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbklu
aGVyaXRGaW5hbC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5h
bWVkT3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICBV
cGRhdGVkIGV4cGVjdGVkIHJlc3VsdHMuCis6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJz
ZXJIZWxwZXJzOjpwYXJzZUhleENvbG9yKTogVXNlIFN0cmluZzo6bnVtYmVyCisgICAgICAgIGFu
ZCBtYWtlU3RyaW5nLgorCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKTogVXNlIG1ha2VT
dHJpbmcuCisgICAgICAgICogaHRtbC9JbWFnZURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkltYWdlRG9jdW1lbnQ6OmltYWdlVXBkYXRlZCk6IERpdHRvLgorICAgICAgICAqIGh0bWwv
cGFyc2VyL1hTU0F1ZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6aW5p
dCk6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6
OnNldERvY2tpbmdVbmF2YWlsYWJsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0QXR0YWNoZWRXaW5kb3cpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERlYnVnZ2luZ0Vu
YWJsZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWw6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2hvd01haW5SZXNvdXJjZUZvckZy
YW1lKTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2Vu
dC5jcHA6IERpdHRvLgorICAgICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBwYWdlL01lbW9yeVJlbGVhc2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgpOiBEaXR0
by4KKworICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdEJ5dGVOdW1iZXIpOiBVc2UgU3RyaW5nOjpudW1iZXIu
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1EcmF3KTog
VXNlIHN0cmluZyBjb25jYXRlbmF0aW9uLgorCisgICAgICAgICogcGFnZS9jb2NvYS9SZXNvdXJj
ZVVzYWdlVGhyZWFkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpsb2dGb290cHJpbnRDb21w
YXJpc29uKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1Rp
bWluZ0Z1bmN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uOjpjc3NU
ZXh0IGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1wbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFW
VHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6OmlkIGNvbnN0KTogVXNlIEF0b21pY1N0cmluZzo6bnVt
YmVyLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5oOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpN
ZWRpYVNhbXBsZUFWRk9iakMpOiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVy
Q0E6OnNldENvbnRlbnRzVG9Tb2xpZENvbG9yKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNSZWN0cyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1B
bmltYXRpb25zRnJvbUtleWZyYW1lcyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmRyYXdUZXh0KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9t
b2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDogVXNlIFN0cmluZzo6
bnVtYmVyLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9QYXJzZWRDb250ZW50UmFuZ2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFyc2VkQ29udGVudFJhbmdlOjpoZWFkZXJWYWx1ZSBj
b25zdCk6IFVzZSBtYWtlU3RyaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9O
ZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5ldC5jcHA6IFJlbW92ZWQgc29tZSB1bm5lY2Vzc2FyeQor
ICAgICAgICBjb21waWxlciBjb25kaXRpb25hbHMgYW5kIHJlb3JnYW5pemVkIHRoZSBzdGFydC9z
dG9wIG9mIG5hbWVzcGFjZXMuCisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Np
b246OnN3aXRjaFRvTmV3VGVzdGluZ1Nlc3Npb24pOiBVc2UgbWFrZVN0cmluZy4KKworICAgICAg
ICAqIHBsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1
bmF1dGhvcml6ZWRTUUxGdW5jdGlvbik6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJDb21wb3NpdG9yOjpsb2dMYXllckluZm8pOiBEaXR0by4KKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlZ2lzdHJhdGlvbkRhdGFiYXNlOjplbnN1cmVWYWxpZFJlY29yZHNUYWJsZSk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJlY29yZHMp
OiBEaXR0by4KKwogMjAxOS0wMS0yMyAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI3Njg2NDMwPiBSZXZlcnQgd29ya2Fy
b3VuZCBBVlBsYXllci5zZXRNdXRlZCBidWcgb24gbWFjT1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmMxYjZmNmI0
ZmJhZjdkZDczYzdjNTk0MDQ2NzE5YWM4ZjIxZGQyZS4uNjY5MDkxNTM0MzM4MzZmYjc1M2U3NmUz
Y2NhNTkyMmQyN2YwZTFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0xMi0xNSAg
RGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55IHVz
ZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogU2hhcmVkL1dlYk1lbW9y
eVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhl
YWRlcnMpOiBVc2UgbWFrZVN0cmluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChXZWJLaXQ6Okxv
Y2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOiBVc2Ugc3RyaW5nIGNvbmNhdGVudGF0
aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclV0aWxpdGllcy5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6Omluc3BlY3RvclBhZ2VHcm91cElkZW50aWZpZXJGb3JQYWdlKTogVXNl
IG1ha2VTdHJpbmcuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRGaW5pc2hMYXVuY2hpbmcp
OiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0TWVtb3J5U2Ft
cGxlcik6IERpdHRvLgorCiAyMDE5LTAxLTIzICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGlu
Z0Bzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gVW5yZXZpZXdlZCBidWlsZCBmaXggZm9yIHIy
NDAyOTIgYW5kIGZyaWVuZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCmluZGV4IGM4ZTZkZDk3ODVjNzJl
OGE3NGVmNzg2ZjI3NzkzMjljNDQzMmJiODAuLjU4ODRiMjg2MTM0YzA5NDkyZTNhN2U1YTAxYmEy
YmY5MTUyZGM4MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTkt
MDEtMjYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorICAKKyAgICAgICAgUmVwbGFj
ZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5h
dGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5
Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogU2hhcmVk
L1dlYk1lbW9yeVNhbXBsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJNZW1vcnlTYW1wbGVy
Ojp3cml0ZUhlYWRlcnMpOiBVc2UgbWFrZVN0cmluZy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW06CisgICAgICAgIChX
ZWJLaXQ6OkxvY2FsQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwpOiBVc2Ugc3RyaW5nIGNv
bmNhdGVudGF0aW9uLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclV0aWxpdGll
cy5jcHA6CisgICAgICAgIChXZWJLaXQ6Omluc3BlY3RvclBhZ2VHcm91cElkZW50aWZpZXJGb3JQ
YWdlKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29s
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnByb2Nlc3NEaWRGaW5pc2hM
YXVuY2hpbmcpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OnN0YXJ0
TWVtb3J5U2FtcGxlcik6IERpdHRvLgorCiAyMDE5LTAxLTIzICBSb3NzIEtpcnNsaW5nICA8cm9z
cy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBbQ3VybF0gVW5yZXZpZXdlZCBidWlsZCBm
aXggZm9yIHIyNDAyOTIgYW5kIGZyaWVuZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKaW5kZXggOTFkMGM3ZmIxNzUw
MDFhZWM2ZmNmNjU3OWIwODBhZjRiYjNhODQ2OC4uZmQ4YmJjZjA2ZjAwYjE4NzdkZmE2NjA3NWUy
ZDVhMjgxMTE2MWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcApAQCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUg
Ik5hdGl2ZVN0ZEZ1bmN0aW9uQ2VsbC5oIgogI2luY2x1ZGUgIlNjcmlwdEZ1bmN0aW9uQ2FsbC5o
IgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAK
IG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC05MSw3ICs5MSw3IEBAIFJlZjxKU09OOjpWYWx1
ZT4gSW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQ2FsbChEZXByZWNhdGVkOjpTY3JpcHRGdW5jdGlv
bkNhbGwmIGZ1CiAKICAgICBSZWZQdHI8SlNPTjo6VmFsdWU+IHJlc3VsdEpTT05WYWx1ZSA9IHRv
SW5zcGVjdG9yVmFsdWUoKm1faW5qZWN0ZWRTY3JpcHRPYmplY3Quc2NyaXB0U3RhdGUoKSwgcmVz
dWx0SlNWYWx1ZSk7CiAgICAgaWYgKCFyZXN1bHRKU09OVmFsdWUpCi0gICAgICAgIHJldHVybiBK
U09OOjpWYWx1ZTo6Y3JlYXRlKFN0cmluZzo6Zm9ybWF0KCJPYmplY3QgaGFzIHRvbyBsb25nIHJl
ZmVyZW5jZSBjaGFpbiAobXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gJWQpIiwgSlNPTjo6VmFsdWU6
Om1heERlcHRoKSk7CisgICAgICAgIHJldHVybiBKU09OOjpWYWx1ZTo6Y3JlYXRlKG1ha2VTdHJp
bmcoIk9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluIChtdXN0IG5vdCBiZSBsb25n
ZXIgdGhhbiAiLCBKU09OOjpWYWx1ZTo6bWF4RGVwdGgsICcpJykpOwogCiAgICAgcmV0dXJuIHJl
c3VsdEpTT05WYWx1ZS5yZWxlYXNlTm9uTnVsbCgpOwogfQpAQCAtMTIyLDcgKzEyMiw3IEBAIHZv
aWQgSW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQXN5bmNDYWxsKERlcHJlY2F0ZWQ6OlNjcmlwdEZ1
bmN0aW9uQ2FsbCYgZnVuY3Rpb24sCiAgICAgICAgICAgICBpZiAoYXV0byByZXN1bHRKU09OVmFs
dWUgPSB0b0luc3BlY3RvclZhbHVlKCpleGVjLCBleGVjLT5hcmd1bWVudCgwKSkpCiAgICAgICAg
ICAgICAgICAgY2hlY2tBc3luY0NhbGxSZXN1bHQocmVzdWx0SlNPTlZhbHVlLCBjYWxsYmFjayk7
CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgY2hlY2tBc3luY0NhbGxSZXN1bHQo
SlNPTjo6VmFsdWU6OmNyZWF0ZShTdHJpbmc6OmZvcm1hdCgiT2JqZWN0IGhhcyB0b28gbG9uZyBy
ZWZlcmVuY2UgY2hhaW4gKG11c3Qgbm90IGJlIGxvbmdlciB0aGFuICVkKSIsIEpTT046OlZhbHVl
OjptYXhEZXB0aCkpLCBjYWxsYmFjayk7CisgICAgICAgICAgICAgICAgY2hlY2tBc3luY0NhbGxS
ZXN1bHQoSlNPTjo6VmFsdWU6OmNyZWF0ZShtYWtlU3RyaW5nKCJPYmplY3QgaGFzIHRvbyBsb25n
IHJlZmVyZW5jZSBjaGFpbiAobXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gIiwgSlNPTjo6VmFsdWU6
Om1heERlcHRoLCAnKScpKSwgY2FsbGJhY2spOwogICAgICAgICAgICAgcmV0dXJuIEpTQzo6SlNW
YWx1ZTo6ZW5jb2RlKEpTQzo6anNVbmRlZmluZWQoKSk7CiAgICAgICAgIH0pOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZERpc3BhdGNoZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKaW5kZXggNWNiYzBkYTlkZjQ3NGExM2FiYWU3MTExNzlh
ZTNkNWRlMTFjMjk0Yy4uZmRlZmQ0MmNlYjM3YjBiNzI0MzEyMDViOGExMTY0ZDc0MDhkMDdkZCAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNr
ZW5kRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JCYWNrZW5kRGlzcGF0Y2hlci5jcHAKQEAgLTI4OSwxOSArMjg5LDE5IEBAIFQgQmFj
a2VuZERpc3BhdGNoZXI6OmdldFByb3BlcnR5VmFsdWUoSlNPTjo6T2JqZWN0KiBvYmplY3QsIGNv
bnN0IFN0cmluZyYgbmFtZSwKIAogICAgIGlmICghb2JqZWN0KSB7CiAgICAgICAgIGlmICghb3V0
X29wdGlvbmFsVmFsdWVGb3VuZCkKLSAgICAgICAgICAgIHJlcG9ydFByb3RvY29sRXJyb3IoQmFj
a2VuZERpc3BhdGNoZXI6OkludmFsaWRQYXJhbXMsIFN0cmluZzo6Zm9ybWF0KCIncGFyYW1zJyBv
YmplY3QgbXVzdCBjb250YWluIHJlcXVpcmVkIHBhcmFtZXRlciAnJXMnIHdpdGggdHlwZSAnJXMn
LiIsIG5hbWUudXRmOCgpLmRhdGEoKSwgdHlwZU5hbWUpKTsKKyAgICAgICAgICAgIHJlcG9ydFBy
b3RvY29sRXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFsaWRQYXJhbXMsIG1ha2VTdHJpbmco
IidwYXJhbXMnIG9iamVjdCBtdXN0IGNvbnRhaW4gcmVxdWlyZWQgcGFyYW1ldGVyICciLCBuYW1l
LCAiJyB3aXRoIHR5cGUgJyIsIHR5cGVOYW1lLCAiJy4iKSk7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogCiAgICAgYXV0byBmaW5kUmVzdWx0ID0gb2JqZWN0LT5maW5kKG5hbWUpOwog
ICAgIGlmIChmaW5kUmVzdWx0ID09IG9iamVjdC0+ZW5kKCkpIHsKICAgICAgICAgaWYgKCFvdXRf
b3B0aW9uYWxWYWx1ZUZvdW5kKQotICAgICAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihCYWNr
ZW5kRGlzcGF0Y2hlcjo6SW52YWxpZFBhcmFtcywgU3RyaW5nOjpmb3JtYXQoIlBhcmFtZXRlciAn
JXMnIHdpdGggdHlwZSAnJXMnIHdhcyBub3QgZm91bmQuIiwgbmFtZS51dGY4KCkuZGF0YSgpLCB0
eXBlTmFtZSkpOworICAgICAgICAgICAgcmVwb3J0UHJvdG9jb2xFcnJvcihCYWNrZW5kRGlzcGF0
Y2hlcjo6SW52YWxpZFBhcmFtcywgbWFrZVN0cmluZygiUGFyYW1ldGVyICciLCBuYW1lLCAiJyB3
aXRoIHR5cGUgJyIsIHR5cGVOYW1lLCAiJyB3YXMgbm90IGZvdW5kLiIpKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAKICAgICBpZiAoIWFzTWV0aG9kKCpmaW5kUmVzdWx0LT52YWx1
ZSwgcmVzdWx0KSkgewotICAgICAgICByZXBvcnRQcm90b2NvbEVycm9yKEJhY2tlbmREaXNwYXRj
aGVyOjpJbnZhbGlkUGFyYW1zLCBTdHJpbmc6OmZvcm1hdCgiUGFyYW1ldGVyICclcycgaGFzIHdy
b25nIHR5cGUuIEl0IG11c3QgYmUgJyVzJy4iLCBuYW1lLnV0ZjgoKS5kYXRhKCksIHR5cGVOYW1l
KSk7CisgICAgICAgIHJlcG9ydFByb3RvY29sRXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFs
aWRQYXJhbXMsIG1ha2VTdHJpbmcoIlBhcmFtZXRlciAnIiwgbmFtZSwgIicgaGFzIHdyb25nIHR5
cGUuIEl0IG11c3QgYmUgJyIsIHR5cGVOYW1lLCAiJy4iKSk7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9y
L2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNwcAppbmRleCA0Y2ZlZDdj
NTVmNDY4ZGI0ZWIxYjUwZjUwYTgyNGMzZmRkN2ZlYTk5Li4zZmM1ZTk5MmE5NTBmMjAxOWY5MTY0
OGQwZDFhZTdkMjczNmU0MmZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5z
cGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDb25zb2xlQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2VudC5jcHAKQEAg
LTM1LDcgKzM1LDcgQEAKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIKICNpbmNsdWRlICJT
Y3JpcHRDYWxsU3RhY2tGYWN0b3J5LmgiCiAjaW5jbHVkZSAiU2NyaXB0T2JqZWN0LmgiCi0jaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBJbnNwZWN0b3IgewogCkBAIC03OSw3ICs3
OSw3IEBAIHZvaWQgSW5zcGVjdG9yQ29uc29sZUFnZW50OjplbmFibGUoRXJyb3JTdHJpbmcmKQog
ICAgIG1fZW5hYmxlZCA9IHRydWU7CiAKICAgICBpZiAobV9leHBpcmVkQ29uc29sZU1lc3NhZ2VD
b3VudCkgewotICAgICAgICBDb25zb2xlTWVzc2FnZSBleHBpcmVkTWVzc2FnZShNZXNzYWdlU291
cmNlOjpPdGhlciwgTWVzc2FnZVR5cGU6OkxvZywgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCBTdHJp
bmc6OmZvcm1hdCgiJWQgY29uc29sZSBtZXNzYWdlcyBhcmUgbm90IHNob3duLiIsIG1fZXhwaXJl
ZENvbnNvbGVNZXNzYWdlQ291bnQpKTsKKyAgICAgICAgQ29uc29sZU1lc3NhZ2UgZXhwaXJlZE1l
c3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VUeXBlOjpMb2csIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgbWFrZVN0cmluZyhtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50LCAiIGNv
bnNvbGUgbWVzc2FnZXMgYXJlIG5vdCBzaG93bi4iKSk7CiAgICAgICAgIGV4cGlyZWRNZXNzYWdl
LmFkZFRvRnJvbnRlbmQoKm1fZnJvbnRlbmREaXNwYXRjaGVyLCBtX2luamVjdGVkU2NyaXB0TWFu
YWdlciwgZmFsc2UpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAppbmRleCBkZWJhNjM3ZjEy
MTNkOTQzYjI0MDIxZjI1NDAyY2QyZmQ5ODVhOTFhLi43ODg0MDEzMmRiZjFiNjhjOWZjN2Y5YWQz
NDYzZTRjZmNiOWI3ZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNw
cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcApAQCAtOTEsNiArOTEsNyBAQAog
I2luY2x1ZGUgPHd0Zi9VUkwuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CiAKICNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUgPGRpcmVjdC5o
PgpAQCAtMTE3Miw3ICsxMTczLDcgQEAgcHVibGljOgogCiAgICAgU3RhY2tWaXNpdG9yOjpTdGF0
dXMgb3BlcmF0b3IoKShTdGFja1Zpc2l0b3ImIHZpc2l0b3IpIGNvbnN0CiAgICAgewotICAgICAg
ICBtX3RyYWNlLmFwcGVuZChTdHJpbmc6OmZvcm1hdCgiICAgICV6dSAgICVzXG4iLCB2aXNpdG9y
LT5pbmRleCgpLCB2aXNpdG9yLT50b1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAg
bV90cmFjZS5hcHBlbmQobWFrZVN0cmluZygiICAgICIsIHZpc2l0b3ItPmluZGV4KCksICIgICAi
LCB2aXNpdG9yLT50b1N0cmluZygpLCAnXG4nKSk7CiAgICAgICAgIHJldHVybiBTdGFja1Zpc2l0
b3I6OkNvbnRpbnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5kZXggYWUzZDY4MDE4NTMwMGQ0ZmIyYzJh
MjIwN2E3M2EzOTE3ZGU4ZjM0YS4uMWU4ZDllM2NiM2MwMjYxZGNkNTgzMDczNThhMDQ5N2I4NTA0
NjNmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVU
aW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9JbnRsRGF0
ZVRpbWVGb3JtYXQuY3BwCkBAIC01MDQsNyArNTA0LDcgQEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3Jt
YXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChFeGVjU3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9j
YWwKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKICAgICAgICAg
dHogPSBjYW5vbmljYWxpemVUaW1lWm9uZU5hbWUob3JpZ2luYWxUeik7CiAgICAgICAgIGlmICh0
ei5pc051bGwoKSkgewotICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKCZleGVjLCBzY29wZSwg
U3RyaW5nOjpmb3JtYXQoImludmFsaWQgdGltZSB6b25lOiAlcyIsIG9yaWdpbmFsVHoudXRmOCgp
LmRhdGEoKSkpOworICAgICAgICAgICAgdGhyb3dSYW5nZUVycm9yKCZleGVjLCBzY29wZSwgImlu
dmFsaWQgdGltZSB6b25lOiAiICsgb3JpZ2luYWxUeik7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5jcHAKaW5kZXggMzVjMGI4ODIyZTE5MWM5MTAwNWM0NWVkZTY2OWRjZDY3NzU0Y2Q3
NS4uZTE3NDkzYWJmMzA3ZWMyMWY5NDgzNzBkMGU0NTE0MjkyZTU3YTBkOCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKQEAgLTU5Miw3ICs1OTIsNyBA
QCBWZWN0b3I8U3RyaW5nPiBjYW5vbmljYWxpemVMb2NhbGVMaXN0KEV4ZWNTdGF0ZSYgc3RhdGUs
IEpTVmFsdWUgbG9jYWxlcykKIAogICAgICAgICAgICAgU3RyaW5nIGNhbm9uaWNhbGl6ZWRUYWcg
PSBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyh0YWctPnZhbHVlKCZzdGF0ZSkpOwogICAgICAgICAg
ICAgaWYgKGNhbm9uaWNhbGl6ZWRUYWcuaXNOdWxsKCkpIHsKLSAgICAgICAgICAgICAgICB0aHJv
d0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKCZzdGF0ZSwgU3RyaW5n
Ojpmb3JtYXQoImludmFsaWQgbGFuZ3VhZ2UgdGFnOiAlcyIsIHRhZy0+dmFsdWUoJnN0YXRlKS51
dGY4KCkuZGF0YSgpKSkpOworICAgICAgICAgICAgICAgIHRocm93RXhjZXB0aW9uKCZzdGF0ZSwg
c2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoJnN0YXRlLCAiaW52YWxpZCBsYW5ndWFnZSB0YWc6ICIg
KyB0YWctPnZhbHVlKCZzdGF0ZSkpKTsKICAgICAgICAgICAgICAgICByZXR1cm4gVmVjdG9yPFN0
cmluZz4oKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvV29y
a1F1ZXVlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5jcHAKaW5kZXggNDQxYjEyZDM0
ZWE4ODFmMDJiZDM4ZjZiZDEwMjMwMjVmMzg2ZTgzNy4uMjg4YzE4NjI4MGNmNDdiZGEyOTA1MzM3
MjhlMDI1ZGQ3MGViNTJiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuY3BwCkBAIC0zNiw3ICszNiw3IEBACiAj
aW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNpbmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5j
bHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3Bh
Y2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvZHRvYS5jcHAgYi9Tb3VyY2Uv
V1RGL3d0Zi9kdG9hLmNwcAppbmRleCA4NDY1NTgzMGU5MGZiN2ViNzU0ZWM3ZGQ5NDBiMjUzZWNh
NWU0ZTUyLi42ODMzMTRmZmQ0ZTk4YTVmZGMwODU4NmZjODc3ODgxYjJhYjZjYWJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNw
cApAQCAtMTI3Miw3ICsxMjcyLDcgQEAgc3RhdGljIGlubGluZSBjb25zdCBjaGFyKiBmb3JtYXRT
dHJpbmdUcnVuY2F0aW5nVHJhaWxpbmdaZXJvc0lmTmVlZGVkKE51bWJlclRvU3QKIAogY29uc3Qg
Y2hhciogbnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmluZyhkb3VibGUgZCwgdW5zaWduZWQgc2ln
bmlmaWNhbnRGaWd1cmVzLCBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXIsIGJvb2wgdHJ1bmNh
dGVUcmFpbGluZ1plcm9zKQogewotICAgIC8vIE1pbWljIFN0cmluZzo6Zm9ybWF0KCIlLltwcmVj
aXNpb25dZyIsIC4uLiksIGJ1dCB1c2UgZHRvYXMgcm91bmRpbmcgZmFjaWxpdGllcy4KKyAgICAv
LyBNaW1pYyBzcHJpbnRmKCIlLltwcmVjaXNpb25dZyIsIC4uLiksIGJ1dCB1c2UgZHRvYXMgcm91
bmRpbmcgZmFjaWxpdGllcy4KICAgICAvLyAiZyI6IFNpZ25lZCB2YWx1ZSBwcmludGVkIGluIGYg
b3IgZSBmb3JtYXQsIHdoaWNoZXZlciBpcyBtb3JlIGNvbXBhY3QgZm9yIHRoZSBnaXZlbiB2YWx1
ZSBhbmQgcHJlY2lzaW9uLgogICAgIC8vIFRoZSBlIGZvcm1hdCBpcyB1c2VkIG9ubHkgd2hlbiB0
aGUgZXhwb25lbnQgb2YgdGhlIHZhbHVlIGlzIGxlc3MgdGhhbiDigJM0IG9yIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byB0aGUKICAgICAvLyBwcmVjaXNpb24gYXJndW1lbnQuIFRyYWlsaW5nIHpl
cm9zIGFyZSB0cnVuY2F0ZWQsIGFuZCB0aGUgZGVjaW1hbCBwb2ludCBhcHBlYXJzIG9ubHkgaWYg
b25lIG9yIG1vcmUgZGlnaXRzIGZvbGxvdyBpdC4KQEAgLTEyODcsNyArMTI4Nyw3IEBAIGNvbnN0
IGNoYXIqIG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJpbmcoZG91YmxlIGQsIHVuc2lnbmVkIHNp
Z25pZmljYW50RmlndXJlcywKIAogY29uc3QgY2hhciogbnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5n
KGRvdWJsZSBkLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2VzLCBOdW1iZXJUb1N0cmluZ0J1ZmZlciBi
dWZmZXIpCiB7Ci0gICAgLy8gTWltaWMgU3RyaW5nOjpmb3JtYXQoIiUuW3ByZWNpc2lvbl1mIiwg
Li4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGluZyBmYWNpbGl0aWVzLgorICAgIC8vIE1pbWljIHNw
cmludGYoIiUuW3ByZWNpc2lvbl1mIiwgLi4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGluZyBmYWNp
bGl0aWVzLgogICAgIC8vICJmIjogU2lnbmVkIHZhbHVlIGhhdmluZyB0aGUgZm9ybSBbIOKAkyBd
ZGRkZC5kZGRkLCB3aGVyZSBkZGRkIGlzIG9uZSBvciBtb3JlIGRlY2ltYWwgZGlnaXRzLgogICAg
IC8vIFRoZSBudW1iZXIgb2YgZGlnaXRzIGJlZm9yZSB0aGUgZGVjaW1hbCBwb2ludCBkZXBlbmRz
IG9uIHRoZSBtYWduaXR1ZGUgb2YgdGhlIG51bWJlciwgYW5kCiAgICAgLy8gdGhlIG51bWJlciBv
ZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQgZGVwZW5kcyBvbiB0aGUgcmVxdWVzdGVk
IHByZWNpc2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggMjE3OGNj
NDJhOWI1MTE0M2NlNWQ4NWY0ZDExZjdhYjI2MDkyNGVjNy4uMzU4MmM1ODczYzVjOTMzYTMzZTVm
M2U3ODkxYzhiZTI3ZTU2N2YwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAK
QEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9TdHJvbmdJbmxpbmVz
Lmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvU3RydWN0dXJlSW5saW5lcy5oPgogI2luY2x1
ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3BhY2Ug
SlNDOwpAQCAtMTg0NCw3ICsxODQ1LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3Jl
OjphZGRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGkKICAgICAg
ICAgfQogCiAgICAgICAgIC8vIFdlIGRvbid0IGFscmVhZHkgaGF2ZSBhIGZpbGUgZm9yIHRoaXMg
YmxvYlVSTCwgc28gY29tbWl0IG91ciBmaWxlIGFzIGEgdW5pcXVlIGZpbGVuYW1lCi0gICAgICAg
IFN0cmluZyBzdG9yZWRGaWxlbmFtZSA9IFN0cmluZzo6Zm9ybWF0KCIlIiBQUklkNjQgIi5ibG9i
IiwgcG90ZW50aWFsRmlsZU5hbWVJbnRlZ2VyKTsKKyAgICAgICAgU3RyaW5nIHN0b3JlZEZpbGVu
YW1lID0gbWFrZVN0cmluZyhwb3RlbnRpYWxGaWxlTmFtZUludGVnZXIsICIuYmxvYiIpOwogICAg
ICAgICB7CiAgICAgICAgICAgICBhdXRvKiBzcWwgPSBjYWNoZWRTdGF0ZW1lbnQoU1FMOjpBZGRC
bG9iRmlsZW5hbWUsICJJTlNFUlQgSU5UTyBCbG9iRmlsZXMgVkFMVUVTICg/LCA/KTsiX3MpOwog
ICAgICAgICAgICAgaWYgKCFzcWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmNwcAppbmRleCAwZDNlMzM4OGY4ZjI3
MmIxZGZjMzU1NjY5OWE1YmQ4OGM5ZDQ2NDMxLi4wZTZkOWNkZWIxZmUxYjdkNzkwOWVlYzY1YzUz
ZTI4MzZmMjQ0MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCQ3Vyc29ySW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5j
bHVkZSAiSURCRGF0YWJhc2UuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1
ZGUgIkluZGV4ZWREQi5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVt
YmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEwMCwxMyArMTAxLDE1IEBAIElE
QkN1cnNvckluZm8gSURCQ3Vyc29ySW5mbzo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIH0KIAogI2lm
ICFMT0dfRElTQUJMRUQKKwogU3RyaW5nIElEQkN1cnNvckluZm86OmxvZ2dpbmdTdHJpbmcoKSBj
b25zdAogewogICAgIGlmIChtX3NvdXJjZSA9PSBJbmRleGVkREI6OkN1cnNvclNvdXJjZTo6SW5k
ZXgpCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiPENyc3I6ICVzIElkeCAlIiBQUkl1
NjQgIiwgT1MgJSIgUFJJdTY0ICIsIHR4ICVzPiIsIG1fY3Vyc29ySWRlbnRpZmllci5sb2dnaW5n
U3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgbV9zb3VyY2VJZGVudGlmaWVyLCBtX29iamVjdFN0b3Jl
SWRlbnRpZmllciwgbV90cmFuc2FjdGlvbklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiPENyc3I6ICIsIG1fY3Vyc29y
SWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCksICIgSWR4ICIsIG1fc291cmNlSWRlbnRpZmllciwg
IiwgT1MgIiwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIsICIsIHR4ICIsIG1fdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKIAotICAgIHJldHVybiBTdHJpbmc6OmZv
cm1hdCgiPENyc3I6ICVzIE9TICUiIFBSSXU2NCAiLCB0eCAlcz4iLCBtX2N1cnNvcklkZW50aWZp
ZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBtX3RyYW5zYWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7
CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxDcnNyOiAiLCBtX2N1cnNvcklkZW50aWZpZXIubG9n
Z2luZ1N0cmluZygpLCAiIE9TICIsIG1fb2JqZWN0U3RvcmVJZGVudGlmaWVyLCAiLCB0eCAiLCBt
X3RyYW5zYWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCksICc+Jyk7CiB9CisKICNlbmRp
ZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0RhdGEuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNEYXRhLmNw
cAppbmRleCA5MmI2YjkyM2RjOGZlOTI4NzFmN2RiYmQ5ZTcwNDM1MDMyYTU5ZDFiLi5jOTg1ZDc0
NjY4N2YyNDQyMWZmZWExYjJkNDI4OGRmNmNkNzU3NzkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0QWxsUmVjb3Jkc0RhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNv
cmRzRGF0YS5jcHAKQEAgLTM4LDEyICszOCwxNCBAQCBJREJHZXRBbGxSZWNvcmRzRGF0YSBJREJH
ZXRBbGxSZWNvcmRzRGF0YTo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIH0KIAogI2lmICFMT0dfRElT
QUJMRUQKKwogU3RyaW5nIElEQkdldEFsbFJlY29yZHNEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29u
c3QKIHsKICAgICBpZiAoaW5kZXhJZGVudGlmaWVyKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIjxHZXRBbGxSZWNvcmRzOiBJZHggJSIgUFJJdTY0ICIsIE9TICUiIFBSSXU2NCAiLCAl
cywgcmFuZ2UgJXM+IiwgaW5kZXhJZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGdl
dEFsbFR5cGUgPT0gSW5kZXhlZERCOjpHZXRBbGxUeXBlOjpLZXlzID8gIktleXMiIDogIlZhbHVl
cyIsIGtleVJhbmdlRGF0YS5sb2dnaW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgcmV0
dXJuIFN0cmluZzo6Zm9ybWF0KCI8R2V0QWxsUmVjb3JkczogT1MgJSIgUFJJdTY0ICIsICVzLCBy
YW5nZSAlcz4iLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGdldEFsbFR5cGUgPT0gSW5kZXhlZERC
OjpHZXRBbGxUeXBlOjpLZXlzID8gIktleXMiIDogIlZhbHVlcyIsIGtleVJhbmdlRGF0YS5sb2dn
aW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCI8
R2V0QWxsUmVjb3JkczogSWR4ICIsIGluZGV4SWRlbnRpZmllciwgIiwgT1MgIiwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCAiLCAiLCBnZXRBbGxUeXBlID09IEluZGV4ZWREQjo6R2V0QWxsVHlwZTo6
S2V5cyA/ICJLZXlzIiA6ICJWYWx1ZXMiLCAiLCByYW5nZSAiLCBrZXlSYW5nZURhdGEubG9nZ2lu
Z1N0cmluZygpLCAnPicpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8R2V0QWxsUmVjb3Jkczog
T1MgIiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCAiLCAiLCBnZXRBbGxUeXBlID09IEluZGV4ZWRE
Qjo6R2V0QWxsVHlwZTo6S2V5cyA/ICJLZXlzIiA6ICJWYWx1ZXMiLCAiLCByYW5nZSAiLCBrZXlS
YW5nZURhdGEubG9nZ2luZ1N0cmluZygpLCAnPicpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkdldFJlY29yZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkdldFJlY29yZERhdGEuY3BwCmluZGV4IGQ3ODk2MjYwNDcyOTZl
ZDNkMTg2NjZjZGUzOGRkYmVkYWQ3ZjhkNzguLjQ2MzQ2ZGMzNDkyOWJkY2NmMDI2MDY0NmIwNzIy
ZmU1NWVlYzI0M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAKQEAgLTM4LDEwICszOCwxMiBA
QCBJREJHZXRSZWNvcmREYXRhIElEQkdldFJlY29yZERhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0
CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJREJHZXRSZWNvcmREYXRhOjpsb2dn
aW5nU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjxHZXRSZWNv
cmQ6ICVzICVzPiIsIHR5cGUgPT0gSURCR2V0UmVjb3JkRGF0YVR5cGU6OktleU9ubHkgPyAiS2V5
T25seSIgOiAiS2V5K1ZhbHVlIiwga2V5UmFuZ2VEYXRhLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCku
ZGF0YSgpKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPEdldFJlY29yZDogIiwgdHlwZSA9PSBJ
REJHZXRSZWNvcmREYXRhVHlwZTo6S2V5T25seSA/ICJLZXlPbmx5IiA6ICJLZXkrVmFsdWUiLCAn
ICcsIGtleVJhbmdlRGF0YS5sb2dnaW5nU3RyaW5nKCksICc+Jyk7CiB9CisKICNlbmRpZgogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCmluZGV4IDI3MjkwZjRhNGE1NGQ4
ZGVkOWJmNGI3NzFlOTk1OTc4OWQ2NGFiYjAuLjEyYzVlNmYyYjVjOWM3MmE2MmNmMjBjYmUwNzRm
OTQ0YWVjZDc3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NoYXJlZC9JREJJbmRleEluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCkBAIC0yOCw2ICsyOCw4IEBACiAKICNpZiBF
TkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlTnVtYmVycy5oPgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIElEQkluZGV4SW5mbzo6
SURCSW5kZXhJbmZvKCkKQEAgLTUwLDE5ICs1MiwyMCBAQCBJREJJbmRleEluZm8gSURCSW5kZXhJ
bmZvOjppc29sYXRlZENvcHkoKSBjb25zdAogfQogCiAjaWYgIUxPR19ESVNBQkxFRAorCiBTdHJp
bmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAg
U3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudDsgKytp
KQogICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7Ci0KLSAgICByZXR1cm4gbWFrZVN0
cmluZyhpbmRlbnRTdHJpbmcsICJJbmRleDogIiwgbV9uYW1lLCBTdHJpbmc6OmZvcm1hdCgiICgl
IiBQUkl1NjQgIikga2V5UGF0aDogJXNcbiIsIG1faWRlbnRpZmllciwgV2ViQ29yZTo6bG9nZ2lu
Z1N0cmluZyhtX2tleVBhdGgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICByZXR1cm4gbWFrZVN0cmlu
ZyhpbmRlbnRTdHJpbmcsICJJbmRleDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIp
IGtleVBhdGg6ICIsIFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9
CiAKIFN0cmluZyBJREJJbmRleEluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcoKSBjb25zdAog
ewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiPElkeDogJXMgKCUiIFBSSXU2NCAiKSwgT1Mg
KCUiIFBSSXU2NCAiKT4iLCBtX25hbWUudXRmOCgpLmRhdGEoKSwgbV9pZGVudGlmaWVyLCBtX29i
amVjdFN0b3JlSWRlbnRpZmllcik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxJZHg6ICIsIG1f
bmFtZSwgIiAoIiwgbV9pZGVudGlmaWVyLCAiKSwgT1MgKCIsIG1fb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCAiKT4iKTsKIH0KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJdGVyYXRl
Q3Vyc29yRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwCmluZGV4IGZhYWVkYTlmZWJlNzQwNGY0NjQ3MzM0OWUw
MWIwMzBmOTVlNzkzNTAuLjU5M2UxNDhkMjQ1MjgzMGUyOTFmNmU2NWI2YmY4OTZkMDk2ODAyMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJ
dGVyYXRlQ3Vyc29yRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcApAQCAtMzYsMTAgKzM2LDEyIEBAIElE
Qkl0ZXJhdGVDdXJzb3JEYXRhIElEQkl0ZXJhdGVDdXJzb3JEYXRhOjppc29sYXRlZENvcHkoKSBj
b25zdAogfQogCiAjaWYgIUxPR19ESVNBQkxFRAorCiBTdHJpbmcgSURCSXRlcmF0ZUN1cnNvckRh
dGE6OmxvZ2dpbmdTdHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
PEl0cjhDcnNyOiBrZXkgJXMsIHByaW1hcnlLZXkgJXMsIGNvdW50ICV1PiIsIGtleURhdGEubG9n
Z2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIHByaW1hcnlLZXlEYXRhLmxvZ2dpbmdTdHJpbmco
KS51dGY4KCkuZGF0YSgpLCBjb3VudCk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxJdHI4Q3Jz
cjoga2V5ICIsIGtleURhdGEubG9nZ2luZ1N0cmluZygpLCAiLCBwcmltYXJ5S2V5ICIsIHByaW1h
cnlLZXlEYXRhLmxvZ2dpbmdTdHJpbmcoKSwgIiwgY291bnQgIiwgY291bnQsICc+Jyk7CiB9CisK
ICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8u
Y3BwCmluZGV4IDA0Y2E5MGI3ODVmNGQyZGQwMGY0ZjU4Yzk1NDdhNTc4MTI4NTBhNzQuLjI5Mzhl
OTMwNmRmMWFlM2RiMDY0M2MzNmZlNDUzMmI5YmFmMzFlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9yZUluZm8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJPYmplY3RTdG9y
ZUluZm8uY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgU3RyaW5nIElEQk9iamVjdFN0b3JlSW5mbzo6
bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogCiBTdHJpbmcgSURCT2JqZWN0U3RvcmVJ
bmZvOjpjb25kZW5zZWRMb2dnaW5nU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoIjxPUzogJXMgKCUiIFBSSXU2NCAiKT4iLCBtX25hbWUudXRmOCgpLmRhdGEoKSwg
bV9pZGVudGlmaWVyKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPE9TOiAiLCBtX25hbWUsICIg
KCIsIG1faWRlbnRpZmllciwgIik+Iik7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJ
ZGVudGlmaWVyLmNwcAppbmRleCBmNjczYjJkYWIzZDUzNGE1OWM4NmFkZjZkMDRkN2QxYjBlNWQz
NDg2Li42MTZkNTRmYWRmMWVkZjY0OWMyYzU2MmU2YjVjNTg1MzE0YmYwNGY2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcApAQCAtOTksMTEgKzk5LDE0IEBAIGJvb2wgSURCUmVz
b3VyY2VJZGVudGlmaWVyOjppc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpIGNvbnN0CiB9CiAKICNp
ZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJREJSZXNvdXJjZUlkZW50aWZpZXI6OmxvZ2dpbmdT
dHJpbmcoKSBjb25zdAogewotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiPCUiIFBSSXU2NCIs
ICUiIFBSSXU2NCI+IiwgbV9pZGJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9yZXNvdXJjZU51bWJl
cik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoJzwnLCBtX2lkYkNvbm5lY3Rpb25JZGVudGlmaWVy
LCAiLCAiLCBtX3Jlc291cmNlTnVtYmVyLCAnPicpOwogfQorCiAjZW5kaWYKKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOREVYRURfREFUQUJBU0UpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IGM4
NzVmM2JmNDU4Yzk4MzhmZmVmZGY3Y2Y3YWM5MGY5ZTkyZGQ2YTIuLjdhNTNmZWM0OTk4MDQ2YWUx
NmZiODg4ODZiZDUwZWYyMDVjODRlNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0xMDcsNyArMTA3LDcgQEAgc3RhdGljIGNvbnN0
IGNoYXIqIGZ1bGx5UXVhbGlmaWVkSW5mb1RhYmxlTmFtZSgpCiAKIHN0YXRpYyBTdHJpbmcgZm9y
bWF0RXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVFcnJvckNvZGUs
IGNvbnN0IGNoYXIqIHNxbGl0ZUVycm9yTWVzc2FnZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIiVzICglZCAlcykiLCBtZXNzYWdlLCBzcWxpdGVFcnJvckNvZGUsIHNxbGl0ZUVycm9y
TWVzc2FnZSk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcobWVzc2FnZSwgIiAoIiwgc3FsaXRlRXJy
b3JDb2RlLCAnICcsIHNxbGl0ZUVycm9yTWVzc2FnZSwgJyknKTsKIH0KIAogc3RhdGljIGJvb2wg
c2V0VGV4dFZhbHVlSW5EYXRhYmFzZShTUUxpdGVEYXRhYmFzZSYgZGIsIGNvbnN0IFN0cmluZyYg
cXVlcnksIGNvbnN0IFN0cmluZyYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9yLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTEVycm9yLmgKaW5kZXggNGUyNzZjYTc4ZmM5NWQ3NTljYWQzMGRlYWQwN2Fk
NmExNzhlNzMyNi4uNmIwNzJiYmI0MjdhODliYmZmM2FhMDQwMDNhOWZlNzFlZDgyOTI3YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMRXJyb3IuaApAQCAtMjks
NyArMjksNyBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlIDx3dGYvVGhyZWFkU2FmZVJlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC0zOCwxMSArMzgsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWY8U1FMRXJyb3I+IGNy
ZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpIHsgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1FMRXJyb3IoY29kZSwgbWVzc2FnZSkpOyB9CiAgICAgc3RhdGljIFJlZjxTUUxF
cnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNvZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxp
dGVDb2RlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZvcm1h
dCgiJXMgKCVkKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUpKTsKKyAgICAgICAgcmV0dXJuIGNyZWF0
ZShjb2RlLCBtYWtlU3RyaW5nKG1lc3NhZ2UsICIgKCIsIHNxbGl0ZUNvZGUsICcpJykpOwogICAg
IH0KICAgICBzdGF0aWMgUmVmPFNRTEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3Qg
Y2hhciogbWVzc2FnZSwgaW50IHNxbGl0ZUNvZGUsIGNvbnN0IGNoYXIqIHNxbGl0ZU1lc3NhZ2Up
CiAgICAgewotICAgICAgICByZXR1cm4gY3JlYXRlKGNvZGUsIFN0cmluZzo6Zm9ybWF0KCIlcyAo
JWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlQ29kZSwgc3FsaXRlTWVzc2FnZSkpOworICAgICAgICBy
ZXR1cm4gY3JlYXRlKGNvZGUsIG1ha2VTdHJpbmcobWVzc2FnZSwgIiAoIiwgc3FsaXRlQ29kZSwg
JyAnLCBzcWxpdGVNZXNzYWdlLCAnKScpKTsKICAgICB9CiAKICAgICB1bnNpZ25lZCBjb2RlKCkg
Y29uc3QgeyByZXR1cm4gbV9jb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGY5MmVkMmRlZDk5MTg0MmUyMzNmZmVk
ZjZjNWY1NzQwNGJhYzk2YjYuLjZhZjg5M2Q1M2E3MmU2NDg3MjM2YjhlNTAxZDE5OGEwMzEzYzky
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvckpTLnBtCkBAIC00NTcyLDcgKzQ1NzIsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bgogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PCR7Y2xhc3NOYW1lfSo+KGNlbGwpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSlcbiIpOwotICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5n
Ojpmb3JtYXQoXCJ1cmwgJXNcIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7XG4iKTsKKyAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFwidXJsIFwi
ICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7
XG4iKTsKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgQmFzZTo6aGVhcFNuYXBzaG90
KGNlbGwsIGJ1aWxkZXIpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuXG4i
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCmluZGV4IDZkOWJkMTdiNmQxNTRlMGJmMGE2
ZmY4YjAxYjAwMWQzMzU2ZGZlNmUuLjE0MWViOGVlNTY5MDRjZjM3NzJkOTZiZTZmYjM0ZTQ3ODIz
NDBmYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU0ludGVyZmFjZU5hbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU0ludGVyZmFjZU5hbWUuY3BwCkBAIC0xNzYsNyArMTc2LDcgQEAgdm9pZCBK
U0ludGVyZmFjZU5hbWU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1
aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0ludGVyZmFj
ZU5hbWUqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1
aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNNYXBMaWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU01hcExpa2UuY3BwCmluZGV4IDA3OWM2NjYyOTRhZWVjYTgyNzRhZTJiY2U1ZWZl
NGVhNzdiMTZiNGQuLjM1NjdhNzJkMDdmZDZjN2FlMWU0OGNiM2IzNDg4NDlmMjA4ODUzZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01hcExp
a2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU01h
cExpa2UuY3BwCkBAIC0zNDUsNyArMzQ1LDcgQEAgdm9pZCBKU01hcExpa2U6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU01hcExpa2UqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdy
YXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlm
ICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkp
KTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFz
ZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBMaWtl
LmNwcAppbmRleCA5N2Q0ZjNhYjRmYTE2MDJhZTQ5MGFlODZjOTZlMGMzODQ3OGJmOTM0Li5hYjI4
MWYwNTlkNmIzMTdjMmM5MjMzZDBjNjgwOWExZmY3OTZjZDMwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExpa2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRPbmx5TWFw
TGlrZS5jcHAKQEAgLTI5NCw3ICsyOTQsNyBAQCB2b2lkIEpTUmVhZE9ubHlNYXBMaWtlOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQogICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNSZWFkT25seU1hcExpa2UqPihjZWxsKTsKICAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0g
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwg
JXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwg
InVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJp
bmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0
aXZlRE9NT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCmluZGV4IDZjYzIzYWQwMTMxZDExMmYyMmRhOGQ4
YWRmMTIwNWJiYjFhZGIxNTcuLjJiNjE0MTc2ZmMwODA5YTg1YTRmMGI2OWM3ZGJmZGM5ZTlhYzJi
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVET01PYmplY3QuY3BwCkBAIC0yNTUsNyArMjU1LDcg
QEAgdm9pZCBKU1Rlc3RBY3RpdmVET01PYmplY3Q6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGws
IEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWwKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdEFjdGl2ZURPTU9iamVjdCo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9i
amVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJl
bEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAg
ICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFw
U25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3BwCmlu
ZGV4IDRhMDI3OTM2YjlkYjk5MzYwYmZkZDc4YTk3YjZiMzVkNjQ2ODZjYWUuLmExYmRhYjEwZjVl
YTI5Njg4MGZhMDg4MjJkYWRjZTNkMWMwOGU2YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9ucy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zLmNw
cApAQCAtNDM1LDcgKzQzNSw3IEBAIHZvaWQgSlNUZXN0Q0VSZWFjdGlvbnM6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDRVJlYWN0aW9ucyo+KGNlbGwpOwogICAgIGJ1aWxk
ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7
CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAg
YnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIg
KyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsK
ICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9u
c1N0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVyLmNwcAppbmRleCAzNDJhMGRmOGQxZTI4MzUy
ODRiYzM2YmU2MWRiYmJmMjdiYjI4ZDBjLi41ODBlMjQzNzM5M2M1ZTBmODljOWEyNzUyZTc0M2Vj
ODk0NjY4MTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIu
Y3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lmaWVy
OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGUKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIqPihjZWxs
KTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0Q2FsbFRyYWNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKaW5kZXggMmU4ZGU1MTRiYzQzN2VjNmI2MzRiNWM1MjIw
ZmY1MjMzNTVkMGNjMy4uNmI4MWJmZmU0OTVlNTAwYmNiYTM0NTFjN2ZkN2I2YmVlNzc1NDI1MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENhbGxUcmFjZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcApAQCAtNTI4LDcgKzUyOCw3IEBAIHZvaWQgSlNUZXN0
Q2FsbFRyYWNlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
ciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENhbGxUcmFj
ZXIqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmlu
Zzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJl
bEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxk
ZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNv
bnN0cnVjdG9yLmNwcAppbmRleCAwMDhiNWU4OTc2ODY5NWYyNWM4MzNiYTM0NjAxZDRiZTU3ZDBl
MjQ4Li41YzhjNzg1NThjNTlhMmIxYjIzNjhiMGJiNjE0M2MwNmQxY2UwYTNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRo
SlNCdWlsdGluQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKQEAg
LTE2OCw3ICsxNjgsNyBAQCB2b2lkIEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9y
OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNobwogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IqPihjZWxs
KTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0
LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0
KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0
cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RE9NSklULmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RET01KSVQuY3BwCmluZGV4IDk1ZDc2NzA0NzM4OGUzOGMwMTAwNDI5NWQ4Y2YxMzQ1NmJk
NDRiZGUuLjgzYjBmN2Q5ZTRiNTM5NGMxZGQ0MDM0NGE0NjZlNTNkMDMzZGJlZTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RET01KSVQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RE
T01KSVQuY3BwCkBAIC0xMjY2LDcgKzEyNjYsNyBAQCB2b2lkIEpTVGVzdERPTUpJVDo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdERPTUpJVCo+KGNlbGwpOwogICAgIGJ1aWxk
ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7
CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAg
YnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIg
KyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsK
ICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlT
ZXR0aW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RFbmFibGVkQnlTZXR0aW5nLmNwcAppbmRleCA2NjBiOTc3NWJjZmQ0YTIxNTE1ZjgwYzJmYmU1
NTY0OThiOGQ2YmUzLi40ZGY4MTMwZmY1ZjgyMmQyNDFlY2E0OWFhOGE5ZDgzNDgxMDk2NDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCkBAIC0zMDcsNyArMzA3LDcgQEAg
dm9pZCBKU1Rlc3RFbmFibGVkQnlTZXR0aW5nOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBI
ZWFwU25hcHNob3RCdWlsZGVyJiBidWkKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdEVuYWJsZWRCeVNldHRpbmcqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAg
ICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rv
ci5jcHAKaW5kZXggNDVkYzE5MjcwNDliZTI3MjA1NTJhOThiN2RmMjM1YjBmNWExNWJkMC4uMzNl
MmY5ZDRhMGZjMzgxZjk2NmFiOWZiOGIxYzllNzA5MmYyODZjOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudENvbnN0cnVjdG9yLmNwcApAQCAtMzExLDcgKzMxMSw3IEBAIHZvaWQgSlNUZXN0RXZlbnRD
b25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
ciYgYnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudENvbnN0cnVj
dG9yKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJp
bmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggMGVjMDY0MDhmZWZiM2Fl
ZGI1ZGNiYzEyMjgxZmQxZGIwYzkzODVkMS4uNWZjN2NiNmM1NTVlNzQ1YmNmYmFiY2EwNjQzMTE4
YzZkNjFmMDc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0yNTQsNyArMjU0LDcg
QEAgdm9pZCBKU1Rlc3RFdmVudFRhcmdldDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdEV2ZW50VGFyZ2V0Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAppbmRleCBkMzJj
MDRjYzUwZWVkZjI2OWVkODAxZDY5MTIzZjZiNTA1NDA0NzIxLi4zNmQ2MjQxMWE4ZDk5ZTEzM2U3
NWFlMmJiMTIwMGI5OTNkNWQwYTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTg1LDcg
KzE4NSw3IEBAIHZvaWQgSlNUZXN0RXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0RXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNS
ZWFjaGFibGUuY3BwCmluZGV4IGIwZDlkNDlmYzkyNjgzZjVlMWQ2ZmI4ZmQ2ODVkZjVkMzNiMjRi
ZTguLjlmMTZiODI4YzhiM2QyZTk1M2UzNTU4ZWE3ZjJlMDU4M2YyOTMzNzkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlz
UmVhY2hhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2b2lk
IEpTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aWxkZXImCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAppbmRl
eCBiMjBiODNjN2JlOWU1YjM3YjljYzU3NTg2NjNlMTc4NTU4NWUzOTJjLi5jZWMzNzFmNjhkNGRj
N2RjOTkzNjczM2Y0N2I1NTlmYTdmNGY5MTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNw
cApAQCAtNjE0LDcgKzYxNCw3IEBAIHZvaWQgSlNUZXN0R2xvYmFsT2JqZWN0OjpoZWFwU25hcHNo
b3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyCiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RHbG9iYWxPYmplY3QqPihjZWxsKTsKICAgICBidWls
ZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkp
OwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAi
ICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7
CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggNTc4OTI1Mzdi
ZTg3ODMyNGE1ZGRlOGY2ZDFjNTkyYzFiOTYyYjcyNS4uMDkzYWRjYmE2ZTQ1Njk4ZWI0ZDZiYTI5
NWI0OTM0MGVjMWZlYWI1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyLmNwcApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90
QnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCAzNTVhZGNkOTBhZWZjZjU5NWQwN2VkNTQ2ZTRj
YWFiMjBiM2VlMjQ0Li42MTU4MDJkOTZlNzdlY2Y2MWU2ZTY3OTcyZDdiNmZmOTZlYzc3OTNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcApAQCAtMjUzLDcgKzI1Myw3IEBAIHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNoCiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb24qPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1
aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCmluZGV4IDc2OTY3M2FmYmI0ZTYyMDFkOTRjMzJhODRjZjI0OWVlNjAzODhm
ZTYuLmE4NzEyMzE4NzlhOWYwYjY0ZGQ1Y2E5OTViNDAxNjU1MDI0YWU0MDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yODUs
NyArMjg1LDcgQEAgdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEIKICAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KGNlbGwpOwogICAg
IGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBw
ZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAl
cyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAi
dXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmlu
ZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRl
cmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAKaW5kZXggNmVhM2Y5NzQ1YjJhYjQ4Mjc2YzUxYWUzZGVhYTRjMWQ1ODA4
YTI2OS4uZDZjNDFmYjEwYzM1NmQ1NmQwZWY5YTcyODFlOThiNzQ1Y2YwZWUxNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZS5jcHAKQEAgLTEwMjIsNyArMTAyMiw3IEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNl
OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVy
KQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oY2VsbCk7
CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+
d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgi
dXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNl
bGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAKaW5k
ZXggY2ZmMzJmZjBlYjNhZGRhNzdmZTk0NjNhMmE0Zjk5Y2U2NThiNDk3MC4uYzk0MTgyYzI0NDQ0
NzNkZDdjNTdhYWJhZjMwYjUxMDhhOTZmY2IwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmUuY3BwCkBAIC0xODUsNyArMTg1LDcgQEAgdm9pZCBK
U1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdElu
dGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVk
T2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Cisg
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKaW5kZXgg
YWMxZThlN2Y5ZWY4MjkyNzhlMjQ1ODQ1YTY2MjMxYTVmY2JjYWIwOC4uMWE5MjM3NDcwYzhmZDY1
ODFiZjA0NmEwNDBhMWU2ZWE3YzE3N2E0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUuY3BwCkBAIC0yMzgs
NyArMjM4LDcgQEAgdm9pZCBKU1Rlc3RJdGVyYWJsZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdEl0ZXJhYmxlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVl
cnlMaXN0TGlzdGVuZXIuY3BwCmluZGV4IDAwZmFmOWYwNTczZmQwMDc1ZGU4ZGU1MTQ5ZThlYjUw
ODc0Yzk0ZmMuLmZhNzhkMDNjYzViYzdjZDk3MTc5MzRmYjAyNjhmN2Y0NjdkNTkwZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRp
YVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTE5NCw3ICsx
OTQsNyBAQCB2b2lkIEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lcio+KGNlbGwpOwogICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAg
ICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKaW5k
ZXggOTUzMTIwNzI5NTYwYTUzMjk4YzYzMDYzYmE5YWMyMDk0NjMzYzI2Ni4uMzViNzdhNzRkYjY3
ODY5ZjRkYTc2NzI2ODQ4Y2EzYzYzMzk1MGM1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTMxOSw3ICsz
MTksNyBAQCB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CiAg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQot
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJs
ICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
ICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggMDU5NTQ2MjJmMDZkYjQzNDU0ZDNiYmVkMmUwNjIxYTkz
MTYxMjZlMS4uZjFiMWRhMWI1NGI0YmEyNGM4Nzk0ZTkyMWRiNTY1Yjk5MWM5ZGM3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhy
b3dpbmdFeGNlcHRpb24uY3BwCkBAIC0zMTksNyArMzE5LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVk
T2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Cisg
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggNTVi
NWFmMzE4YTdjMGQ2N2VmNmJjNzUwOGU0NDY3NjY5OTFkNzU2MS4uZmI2MDg5Y2JkNDFhNWJmZTMy
ODI3MzdiMjI3MTU4ZDMwODE3ZmU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0zNzMsNyArMzcz
LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFMKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQot
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJs
ICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
ICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGYxYTg0YThiYWQ5YTVkNjA1YTEw
ZTQ5ZDljNWM0MjczZDk5Mjg3ZTEuLjAyMmQzY2RjM2ZlOTQwYzI0ZWNhODVhYjNiZjhiMTg0ZTA2
ZTc4ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKQEAgLTIwNSw3ICsy
MDUsNyBAQCB2b2lkIEpTVGVzdE5hbWVkQ29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRDb25zdHJ1Y3Rvcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKaW5kZXggOTdkODI2YTU5MTBmYWQ4MDg4YmY2
NTU3ZTlhZjcxNTBkZGIyMWNhMi4uZTdkOTFmOGM4NjhjMjUzZDZiODgwMTIxNDI1NTMxMTJjM2Y4
ZDgwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5j
cHAKQEAgLTIzMyw3ICsyMzMsNyBAQCB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmll
cjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbAogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKj4oY2Vs
bCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1h
dCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAKaW5kZXggZDFlZjMwNmI2YTljZDBmZjgyNjhiMGM3NjdhYmY4ZjQ3YmI3MDcwZi4uYTdk
NzZiYTdhM2RlYjU4NDUzMDRiZTY1Yzg5ZDhlMGRhMjlkYWY3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCkBAIC0yNDcsNyAr
MjQ3LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG8KICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAgICAg
YnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBl
ZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAg
ICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVz
IiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1
cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5n
KCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKaW5kZXggZTRm
YTM5MTMwYTM5NjRkMzQzY2JlZjNkZjBjMGY4YzdhMmU1OTQwZi4uOWVkYWI1OTFkOTQ4MzQ5NjUw
YWQxMjM5MTlmNmIzNjMxNmQ1NGQ2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgdm9pZCBKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKaW5kZXggY2Y0NjQwYjIzNjVjZTQ4ZGZhMTQw
NjE4ZThmMmE3Mjk2ZWZiYWQzMi4uMmZiNjI0YTAxNWI0YmE3ODk4ZDkwOTI1MGJkMDc0YzkyMGNh
NmUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4
ZWRHZXR0ZXIuY3BwCkBAIC0yNTAsNyArMjUwLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG8K
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRl
eGVkR2V0dGVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3Bw
CmluZGV4IDQxYTYyODNlMzRlZjMyYTUzNDBhMjhlZjkyYjQ2NDY4ZWJjMTRiYjcuLmY1OTU5Njkw
OTgwNTczMTgwZTg2MjQ2ZjE0ODNiZTlkMDMwOTBmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRHZXR0ZXJDYWxsV2l0aC5jcHAKQEAgLTIxMiw3ICsyMTIsNyBAQCB2b2lkIEpTVGVzdE5hbWVk
R2V0dGVyQ2FsbFdpdGg6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1
aWxkZXImCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEdldHRlckNh
bGxXaXRoKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxs
LCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBT
dHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0
TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBi
dWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmll
ci5jcHAKaW5kZXggMjQ5ZmM4ZGM4NmIwNzk4NTRhOWU5N2QzNWZhNTA3MzZjZDYyMTU5Ni4uZmFl
MTA0YTgzNGNkMWRiOGE0YjJhNDFhN2MxNjdjOWI3YmQxZjhhNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVu
dGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAgdm9p
ZCBKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGQKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVk
T2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Cisg
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkR2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCmluZGV4IGVhMDJhNDJlZWY0ZDdmMzg3ZGJjZjk2
OWM0NDAwNGI1N2ZjMzA3YWYuLjkxOGIyZDYxZWJkNmQyMmY3MDYyMTY0ZjY1ZGQyNDFjYTQ4YjQ4
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKQEAgLTI0MCw3ICsyNDAsNyBAQCB2b2lkIEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50aWZp
ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aQogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllcio+KGNl
bGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3Jt
YXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4
IGY0MzFhZGUzMTk3ZWY5ZWU5ODE4MTkwMDMxNmI4MDUyNjk3MmUzNjkuLjAyMWNlMWVhMTY3NDJk
MzkxMGVhYjFlOTc1NmUxNjU1ZmJmNzU3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgSlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRl
ck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcAppbmRleCA2NDQzN2ZjZmRlYjI5ZTY2MmYzZDdjNjkwNjhm
NmIxMWQyODUzNmJmLi4wNTJhMWEyMjgyNWFiNGQ2MDk5YjhkYjZkYTE4ZDUxNzRkNTBiYTAxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
Y3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3QKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24q
PihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlz
T2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6
Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKaW5kZXggZTgyZDc5OWQxYWYxMjQ4MmUwMWQ1MDdjMGZjZTAxOTBkNGRhMWQ2Yi4uMGI4ZjVk
ZTFjYWM2NDFhYmRmMGY2OTBiZDgyZGJiMDVkM2YyOWE3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50
aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIHZv
aWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCog
Y2VsbCwgSGVhcFNuYXBzaG90QnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFw
cGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAo
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNl
dExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6
OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4
ZWRHZXR0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IDY1ZTNlZDAyZTIwYmUz
M2YzYjc3Y2NiZGU0ZDM2NWNjYmUzNjA0YzMuLjA5MGRhMTYzZmM1MjA5MzE3MWNiNGZkYzA0YWJk
NmJlYjg1Nzc4NTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlci5jcHAKQEAgLTM0Nyw3ICszNDcsNyBAQCB2b2lkIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SW5kZXhlZEdldHRlcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcAppbmRleCBhNjlkMGQ3NGJi
YjZjMTc2OWM0YTgwNDZhYWUxN2QxZTRhM2M2YjhhLi41ZDBiYTIzYzQ3NmM5YzYyMTViMmNlN2Ux
MTVmMzU1OTgzOWNhZjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIuY3BwCkBAIC0zOTcsNyArMzk3LDcg
QEAgdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWEKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJBbmRTZXR0ZXIqPihjZWxsKTsKICAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0g
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwg
JXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwg
InVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJp
bmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5j
cHAKaW5kZXggMWQ4NGU3ODQ4OTkxOGQ3N2Q4MTMwZDY5Y2QzYWMwZDU3Y2U2MzZhYy4uZjI3NjI5
YzdiYmIzYTJiODhiYjU1NmQwOWU3NTQ1MzZlYjdjNDAwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJy
aWRlQnVpbHRpbnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcApAQCAtMjYxLDcg
KzI2MSw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6aGVh
cFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzCiAgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CiAg
ICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3Jh
cHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQot
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJs
ICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
ICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllcy5jcHAKaW5kZXggZDBlODU0ZWVhNjY3ZWRmOTA2Y2FhZjVmM2UzODU1ZTIyMWU0OWJi
Yy4uZDRkOTczOGNkYjAxYjg0MjZiNjYzYzIxZmM4Mjk4ZjE0NGJhMjYzNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXMuY3BwCkBAIC0zNDMsNyArMzQzLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFMKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5k
T3ZlcnJpZGVCdWlsdGlucy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zLmNwcAppbmRleCBjYmRiYWEyOGY3M2RkMGY2MWU2NmI4MzlmZDRmMTgyYzliMjI2
ZTg1Li5jZTU5ZTc0OWMyNzNlMDFjNDQwOWY2NjUzYWY1ZGZhOGQwNGQyYTM0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNwcApAQCAtMzMwLDcg
KzMzMCw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNB
bmRPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoCiAgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJy
aWRlQnVpbHRpbnMqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxs
KGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNl
bGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRl
ci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNl
bGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKaW5kZXggMzVhMmQ2MjNmODljZjA0MmViMDJi
NTVjNTZlODk5NTkzMGVlZTIzMi4uMjY0YmY5NjE0MjNhY2I3ODE5YmNlYmRjOTA0ZjI3MzBlODhh
OGMxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROb2RlLmNwcApAQCAtNDI5LDcgKzQyOSw3IEBAIHZvaWQgSlNUZXN0Tm9kZTo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5vZGUqPihjZWxsKTsKICAgICBi
dWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVk
KCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMi
LCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0
ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVy
bCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmco
KSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3Bw
CmluZGV4IDIxYzEwYzdjZmFhMzZkYjcxNWMyMzU5Y2FmM2JhMjc2Mjc0ZDA2YzUuLmVhZTJmMjll
NWZiNWM4ZmM2ZjM4YmZiYjIwNTAwNTVjNmVmN2MzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCkBAIC04NTQ2LDcg
Kzg1NDYsNyBAQCB2b2lkIEpTVGVzdE9iajo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE9iaio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwo
Y2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2Vs
bCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2Vs
bCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0
b3JzLmNwcAppbmRleCAxYWRiNzAyMTJmNDUxY2NlODViMDhjZGEwMzZmZTQ3ODA4OWMzOTc4Li43
NzA4ZWRhM2FhZGM3M2JkMTJmZjE1ZWQ2OGUzMTg4NjI5NzE0ODAxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCkBAIC0yNTcsNyArMjU3LDcgQEAgdm9p
ZCBKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZGUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVh
cFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dp
dGhTZXF1ZW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKaW5kZXggYjA1NTY2
ODU5NmJjNmYyN2M4MmM3MTZmZDIzNGU1ZDgwYWE4YTRjNS4uMzgzMTI2OTY0MDczM2VjNjM1Yjdl
Y2M0NmM4MzNiNzNmNTUwYWMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RP
dmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcApAQCAtMjEzLDcgKzIxMyw3IEBA
IHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZTo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlKj4oY2VsbCk7CiAgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRl
QnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCmluZGV4IDZjNmMwNDRlZmM1ZjFjNzFlYTcxM2MyMTJi
MDM5NTJmNmY5NDQ0NGEuLjliNWEwMjcyMzE2Yzc1ODNhZjMyN2MyYmFlOTdmNTJjNzljYzgzOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKQEAgLTI0Myw3ICsyNDMsNyBA
QCB2b2lkIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGws
IEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9i
amVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJl
bEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAg
ICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFw
U25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFj
ZS5jcHAKaW5kZXggYmVjNTdkNTUxN2Q1YjA5YzhkMjBhMGFkZTQyOTdjZjBhZThkZmNlZC4uYzM0
MGVkZDc1Nzg5NWVlY2IxMWI2ZmZjMzIxZDU4OGM1MjI0NzJhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBs
dWdpbkludGVyZmFjZS5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCB2b2lkIEpTVGVzdFBsdWdpbklu
dGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYg
YnVpbAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0UGx1Z2luSW50ZXJmYWNl
Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhp
c09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6
OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAppbmRl
eCA3YTI1ODk4NjcxNDYzMGEzMDUzYmM3NDgxYTVkZTBmZWYxYmQ3OThmLi5jOGRhNWRkMDZjOGIx
NGQ1ODgwZmQxZmNlZWM5NGFmNjAwZTBjZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlzZVJlamVjdGlvbkV2ZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50LmNwcApAQCAtMjkzLDcgKzI5Myw3IEBAIHZvaWQgSlNUZXN0UHJvbWlz
ZVJlamVjdGlvbkV2ZW50OjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RC
dWlsZGVyCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RQcm9taXNlUmVqZWN0
aW9uRXZlbnQqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNl
bGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
IFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbi5jcHAKaW5kZXggNzhkMWM0
MWM0MjhjMDFlMWY3NWY2ZTkxYTY0YWViMzA1YzBhNTI1Zi4uZWFmNTdmOGE4MTM3MmUwMWMzZmYx
OTVhYmQ1MjRiNzI5NGQxNzA5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcApAQCAt
NTUwLDcgKzU1MCw3IEBAIHZvaWQgSlNUZXN0U2VyaWFsaXphdGlvbjo6aGVhcFNuYXBzaG90KEpT
Q2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlCiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5z
ZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAg
ICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAg
IEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25J
bmRpcmVjdEluaGVyaXRhbmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAKaW5kZXgg
MTMzZWRhMDJlNjQwMTYzZmM5YmU2NTQzNDgyMGZiOTI1ZjA0YzBhNC4uNjQ5MjAwNTIyODRhZTUy
NWIxMmM2ZTcyMGQ4M2RlMTdmNGVjZTZkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRh
bmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2UuY3BwCkBAIC0xNTQsNyArMTU0LDcg
QEAgdm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZTo6aGVhcFNuYXBz
aG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXAKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlKj4oY2VsbCk7CiAgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
YXRpb25Jbmhlcml0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKaW5kZXggYWQ1MzFiMjBiNzRiYzZkMjU5
NTY5MTgyZWFlZmM1MzExY2Y4ZTA5Mi4uNDQ0MmY1MTM5YmVjOThiZTRiMTFhNmIwZDgzYzczNDhh
OGM0NDM4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCkBA
IC0yMjksNyArMjI5LDcgQEAgdm9pZCBKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdDo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0Kj4oY2VsbCk7CiAgICAg
YnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBl
ZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAg
ICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVz
IiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1
cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5n
KCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlh
bGl6YXRpb25Jbmhlcml0RmluYWwuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCmluZGV4IGExYWMy
ZDAxMGU1MWM0ODM3YzBmMGI1NDYyMjgwMzRhZDBkYjg0ZTguLmJhNjFiYzUyYTg0ZjcwZmQzNDMw
MWMzOGY3M2Y5NzBkNGM5ZjBmNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXph
dGlvbkluaGVyaXRGaW5hbC5jcHAKQEAgLTI2Myw3ICsyNjMsNyBAQCB2b2lkIEpTVGVzdFNlcmlh
bGl6YXRpb25Jbmhlcml0RmluYWw6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlv
bkluaGVyaXRGaW5hbCo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKaW5kZXggZGY3ZGZiOGY5NjFkOTRmZThlMjRmMDFk
MjQxZmIyNGY2YTk0ZmFlZi4uNDJiMjgzNmY5ZDJlNzkxNzM1OTQ1NDg0NjQzZGNhMjhmNTY3ZWQ1
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUlu
dGVyZmFjZS5jcHAKQEAgLTM1Myw3ICszNTMsNyBAQCB2b2lkIEpTVGVzdFNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZUludGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaAog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVl
SW50ZXJmYWNlKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKaW5kZXggNTI0MmJiOGJh
YWM2ZmM4Y2ExNDA0MDYwZjE1MGJiMWRkN2MwMTVkZi4uMzEzOTJjYjkyMGI3OWZiYmNiMzRlZGQy
OWUxNDc4NGVlZTJhMzZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCkBAIC0xODcsNyAr
MTg3LDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2Vs
bCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVk
T2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7Cisg
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3Bl
cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAKaW5kZXggN2NhZTI0MzllZjYyN2I2
YzI2NjE3Mzk0YjkxY2M4YjgwNGZmMDU1Yi4uNThjZDBmZjk0MDkyYmNlMDRjMjkxZmZmMzJiMGQ2
ZGFlMzlkMWJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9u
eW1vdXNPcGVyYXRpb24uY3BwCkBAIC0xODcsNyArMTg3LDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdp
ZmllckFub255bW91c09wZXJhdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNu
YXBzaG8KICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyQW5v
bnltb3VzT3BlcmF0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1
aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24uY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
TmFtZWRPcGVyYXRpb24uY3BwCmluZGV4IDUwYTQ2ZjYxNGY5ODQ4Yjc2OTI4NWUxNjM4OTA3M2Mx
MjkxNTdmZDEuLmM5YjI1ZjBhZDlkNmJiODNlNzYwZTQyYWM5NDExYWJhZTFjZTliNmUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKQEAgLTIw
Miw3ICsyMDIsNyBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb246OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aQogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbio+KGNlbGwpOwogICAg
IGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBw
ZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAl
cyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAi
dXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmlu
ZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJp
bmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRB
cy5jcHAKaW5kZXggMGEzM2FmMzc4YTJiMTIxOWYyOTI4NGRjODllMTZkMzhiNzI0Nzc5ZC4uMzVk
ODYzYTg1ZDYyNDk3NDgwYjFhNWY4NDU0OWJhZTRlZmQxZjE5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0
aW9uSW1wbGVtZW50ZWRBcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50ZWRBcy5jcHAKQEAg
LTIwMiw3ICsyMDIsNyBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVtZW50
ZWRBczo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYQogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzKj4o
Y2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25O
YW1lZFRvU3RyaW5nLmNwcAppbmRleCA0OTA0OTE3NGUwMzZmNWYxODA2MjQ0YzNmMmViZDE5ZTE2
OTYyZTQ0Li42YmE0Y2QxZmQwNTgxMGVhNzlkODFmYzhhZjBiYjhjNjRjNjI2MWI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5n
aWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3Ry
aW5nLmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRp
b25OYW1lZFRvU3RyaW5nOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hCiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVk
VG9TdHJpbmcqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNl
bGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGws
IFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGws
IGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFk
T25seUF0dHJpYnV0ZS5jcHAKaW5kZXggYzljNTI2OThiODJkM2ZmZjI3ZDIzNDRmZGRiNTU0M2Qw
OTJjYTQwNi4uNDE1MjNhNWFmMmFjMWU4NjlhOWFkMTBkMzg0ZWY0ZDRkMDc4NDhjMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcApA
QCAtMjA5LDcgKzIwOSw3IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJpYnV0
ZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90CiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlKj4oY2Vs
bCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1h
dCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0
ZS5jcHAKaW5kZXggNzVlYzM4YWRiOGZlODg5MzA0NjAzNTM0NmI1NjQ0NmQ3YjJiNjJmNC4uN2Nj
NjBlODBjOGUzMjExMTY0Nzc3M2E2YzAwNDM1OTMzNGY0OGQzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdy
aXRlQXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1dGUuY3BwCkBAIC0yMjcsNyAr
MjI3LDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZTo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG8KICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlKj4oY2VsbCk7CiAgICAg
YnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBl
ZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAg
ICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVz
IiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1
cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5n
KCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVk
ZWZzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKaW5kZXggMGViODY3ZTU0MWIxOTcyMjNiOTVhNTYzYjQzNzMxZTNlYjdiMTcx
OC4uOTA2YjY2ZGU4ZmEyMmNkMjczNWViOWIzNmY5ZmZlZTgwYTI4M2I2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFR5cGVkZWZzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0VHlw
ZWRlZnMuY3BwCkBAIC03NDksNyArNzQ5LDcgQEAgdm9pZCBKU1Rlc3RUeXBlZGVmczo6aGVhcFNu
YXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFR5cGVkZWZzKj4oY2VsbCk7CiAgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
CmluZGV4IGU2ZGJlZDdhYjI3ZmM5M2EyNWJkMDNkZmE5ZTNiOGU5NmExM2E0MzcuLmE1MmIxOTU4
YjNmZTk1ZWRhZDhhNThhZTJkNTY4ODljNjc5YmQyNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKQEAgLTQzLDYg
KzQzLDcgQEAKICNpbmNsdWRlICJDU1NWYWx1ZVBvb2wuaCIKICNpbmNsdWRlICJQYWlyLmgiCiAj
aW5jbHVkZSAiU3R5bGVDb2xvci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyMSw5ICs3MjIsOSBA
QCBzdGF0aWMgQ29sb3IgcGFyc2VIZXhDb2xvcihDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZSwg
Ym9vbCBhY2NlcHRRdWlya3lDb2xvcnMpCiAgICAgICAgICAgICAgICAgfHwgdG9rZW4ubnVtZXJp
Y1ZhbHVlKCkgPCAwLiB8fCB0b2tlbi5udW1lcmljVmFsdWUoKSA+PSAxMDAwMDAwLikKICAgICAg
ICAgICAgICAgICByZXR1cm4gQ29sb3IoKTsKICAgICAgICAgICAgIGlmICh0b2tlbi50eXBlKCkg
PT0gTnVtYmVyVG9rZW4pIC8vIGUuZy4gMTEyMjMzCi0gICAgICAgICAgICAgICAgY29sb3IgPSBT
dHJpbmc6OmZvcm1hdCgiJWQiLCBzdGF0aWNfY2FzdDxpbnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgp
KSk7CisgICAgICAgICAgICAgICAgY29sb3IgPSBTdHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDxp
bnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSk7CiAgICAgICAgICAgICBlbHNlIC8vIGUuZy4gMDAw
MUZGCi0gICAgICAgICAgICAgICAgY29sb3IgPSBTdHJpbmc6Om51bWJlcihzdGF0aWNfY2FzdDxp
bnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSkgKyB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCk7Cisg
ICAgICAgICAgICAgICAgY29sb3IgPSBtYWtlU3RyaW5nKHN0YXRpY19jYXN0PGludD4odG9rZW4u
bnVtZXJpY1ZhbHVlKCkpLCB0b2tlbi52YWx1ZSgpLnRvU3RyaW5nKCkpOwogICAgICAgICAgICAg
d2hpbGUgKGNvbG9yLmxlbmd0aCgpIDwgNikKICAgICAgICAgICAgICAgICBjb2xvciA9ICIwIiAr
IGNvbG9yOwogICAgICAgICB9IGVsc2UgaWYgKHRva2VuLnR5cGUoKSA9PSBJZGVudFRva2VuKSB7
IC8vIGUuZy4gRkYwMDAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxl
Y3RFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3Bw
CmluZGV4IDVkZTMyMGU4MjhlY2Q3ZWIwYzM5YzUzNWE1OWI0NTI4ZWU3MGFiZmEuLmQ0OTliOTFi
ODBkMDE0MzUzYjhmMzZhYjFmMDhmN2JiNTNkZmZkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC01NSw2ICs1NSw3IEBACiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJTcGF0aWFsTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9Jc29N
YWxsb2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1i
ZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDU4LDcgKzQ1OSw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IEhUTUxTZWxlY3RFbGVtZW50OjpzZXRJdGVtKHVuc2lnbmVkIGluZGV4LCBI
VE1MT3B0aW9uRWxlbWVudCoKIEV4Y2VwdGlvbk9yPHZvaWQ+IEhUTUxTZWxlY3RFbGVtZW50Ojpz
ZXRMZW5ndGgodW5zaWduZWQgbmV3TGVuZ3RoKQogewogICAgIGlmIChuZXdMZW5ndGggPiBsZW5n
dGgoKSAmJiBuZXdMZW5ndGggPiBtYXhTZWxlY3RJdGVtcykgewotICAgICAgICBkb2N1bWVudCgp
LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsIFN0cmluZzo6Zm9ybWF0KCJCbG9ja2VkIGF0dGVtcHQgdG8gZXhwYW5kIHRoZSBvcHRp
b24gbGlzdCB0byAldSBpdGVtcy4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1zIGFsbG93ZWQg
aXMgJXUuIiwgbmV3TGVuZ3RoLCBtYXhTZWxlY3RJdGVtcykpOworICAgICAgICBkb2N1bWVudCgp
LmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsIG1ha2VTdHJpbmcoIkJsb2NrZWQgYXR0ZW1wdCB0byBleHBhbmQgdGhlIG9wdGlvbiBs
aXN0IHRvICIsIG5ld0xlbmd0aCwgIiBpdGVtcy4gVGhlIG1heGltdW0gbnVtYmVyIG9mIGl0ZW1z
IGFsbG93ZWQgaXMgIiwgbWF4U2VsZWN0SXRlbXMsICcuJykpOwogICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKaW5kZXggOGVjY2E3
MDljMTBkMWQzNjM3ZmJkNTNlYzM5OTBiZGM4N2JlMjZhZi4uZjQyOTIyMzJlOWRjMjJkNzI5YWI1
OTUwODk2YWI4Njg4MzgwYTJmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZURvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3Bw
CkBAIC00OSw2ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgogI2luY2x1ZGUg
IlNldHRpbmdzLmgiCiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC0yNzMsNyArMjc0LDcgQEAgdm9pZCBJbWFnZURvY3VtZW50OjppbWFnZVVwZGF0
ZWQoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgICAgIEZsb2F0U2l6ZSBzY3JlZW5T
aXplID0gcGFnZSgpLT5jaHJvbWUoKS5zY3JlZW5TaXplKCk7CiAgICAgICAgIGlmIChpbWFnZVNp
emUud2lkdGgoKSA+IHNjcmVlblNpemUud2lkdGgoKSkKLSAgICAgICAgICAgIHByb2Nlc3NWaWV3
cG9ydChTdHJpbmc6OmZvcm1hdCgid2lkdGg9JXUsdmlld3BvcnQtZml0PWNvdmVyIiwgc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGltYWdlU2l6ZS53aWR0aCgpLnRvSW50KCkpKSwgVmlld3BvcnRBcmd1
bWVudHM6OkltYWdlRG9jdW1lbnQpOworICAgICAgICAgICAgcHJvY2Vzc1ZpZXdwb3J0KG1ha2VT
dHJpbmcoIndpZHRoPSIsIGltYWdlU2l6ZS53aWR0aCgpLnRvSW50KCksICIsdmlld3BvcnQtZml0
PWNvdmVyIiksIFZpZXdwb3J0QXJndW1lbnRzOjpJbWFnZURvY3VtZW50KTsKIAogICAgICAgICBp
ZiAocGFnZSgpKQogICAgICAgICAgICAgcGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5pbWFnZU9y
TWVkaWFEb2N1bWVudFNpemVDaGFuZ2VkKEludFNpemUoaW1hZ2VTaXplLndpZHRoKCksIGltYWdl
U2l6ZS5oZWlnaHQoKSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIv
WFNTQXVkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNw
cAppbmRleCA1ZWVkYjQ0MGQyOTQ1ZTNkMWE0ZTEyMTJiYzljMjliYWFmOWNkYmI2Li5kYTljMzMz
ZjU0Nzk2NTcwMzVmNzRlYWRiMmQzZDUwZjYxYWE1ODNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3BhcnNlci9YU1NBdWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L3BhcnNlci9YU1NBdWRpdG9yLmNwcApAQCAtNDUsNyArNDUsNyBAQAogI2luY2x1ZGUgPHd0Zi9B
U0NJSUNUeXBlLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYv
TmV2ZXJEZXN0cm95ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzMyLDcgKzMzMiw3IEBAIHZvaWQgWFNTQXVkaXRvcjo6aW5pdChEb2N1
bWVudCogZG9jdW1lbnQsIFhTU0F1ZGl0b3JEZWxlZ2F0ZSogYXVkaXRvckRlbGVnYXRlKQogICAg
ICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGlmIChtX3hzc1Byb3RlY3Rpb24gPT0gWFNT
UHJvdGVjdGlvbkRpc3Bvc2l0aW9uOjpJbnZhbGlkKSB7Ci0gICAgICAgICAgICBkb2N1bWVudC0+
YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6
RXJyb3IsICJFcnJvciBwYXJzaW5nIGhlYWRlciBYLVhTUy1Qcm90ZWN0aW9uOiAiICsgaGVhZGVy
VmFsdWUgKyAiOiAiICArIGVycm9yRGV0YWlscyArICIgYXQgY2hhcmFjdGVyIHBvc2l0aW9uICIg
KyBTdHJpbmc6OmZvcm1hdCgiJXUiLCBlcnJvclBvc2l0aW9uKSArICIuIFRoZSBkZWZhdWx0IHBy
b3RlY3Rpb25zIHdpbGwgYmUgYXBwbGllZC4iKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5hZGRD
b25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpFcnJv
ciwgbWFrZVN0cmluZygiRXJyb3IgcGFyc2luZyBoZWFkZXIgWC1YU1MtUHJvdGVjdGlvbjogIiwg
aGVhZGVyVmFsdWUsICI6ICIsIGVycm9yRGV0YWlscywgIiBhdCBjaGFyYWN0ZXIgcG9zaXRpb24g
IiwgZXJyb3JQb3NpdGlvbiwgIi4gVGhlIGRlZmF1bHQgcHJvdGVjdGlvbnMgd2lsbCBiZSBhcHBs
aWVkLiIpKTsKICAgICAgICAgICAgIG1feHNzUHJvdGVjdGlvbiA9IFhTU1Byb3RlY3Rpb25EaXNw
b3NpdGlvbjo6RW5hYmxlZDsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKaW5kZXggYTBj
Mzg4N2E2ZWZjMmEwNTFjM2EzNTMxNDdkNzEzNmNmOGFjOGFiNC4uMjQzZDg0OWM5YmYxYTFlNTlk
OGZhNzQ4NzQ4OTJiMjY1MjIyNmUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcApAQCAtMjA1LDcgKzIw
NSw3IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y2FuQXR0YWNoV2luZG93
KCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREb2NraW5nVW5hdmFp
bGFibGUoYm9vbCB1bmF2YWlsYWJsZSkKIHsKLSAgICBldmFsdWF0ZU9uTG9hZChTdHJpbmc6OmZv
cm1hdCgiW1wic2V0RG9ja2luZ1VuYXZhaWxhYmxlXCIsICVzXSIsIHVuYXZhaWxhYmxlID8gInRy
dWUiIDogImZhbHNlIikpOworICAgIGV2YWx1YXRlT25Mb2FkKG1ha2VTdHJpbmcoIltcInNldERv
Y2tpbmdVbmF2YWlsYWJsZVwiLCAiLCB1bmF2YWlsYWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIsICdd
JykpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNoYW5nZUF0dGFj
aGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKQEAgLTI3MCw3ICsyNzAsNyBAQCB2b2lk
IEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldEF0dGFjaGVkV2luZG93KERvY2tTaWRl
IGRvY2tTaWRlKQogCiAgICAgbV9kb2NrU2lkZSA9IGRvY2tTaWRlOwogCi0gICAgZXZhbHVhdGVP
bkxvYWQoU3RyaW5nOjpmb3JtYXQoIltcInNldERvY2tTaWRlXCIsIFwiJXNcIl0iLCBzaWRlKSk7
CisgICAgZXZhbHVhdGVPbkxvYWQobWFrZVN0cmluZygiW1wic2V0RG9ja1NpZGVcIiwgXCIiLCBz
aWRlLCAiXCJdIikpOwogfQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnJl
c3RvcmVBdHRhY2hlZFdpbmRvd0hlaWdodCgpCkBAIC0yOTQsNyArMjk0LDcgQEAgYm9vbCBJbnNw
ZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjppc0RlYnVnZ2luZ0VuYWJsZWQoKQogCiB2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERlYnVnZ2luZ0VuYWJsZWQoYm9vbCBlbmFi
bGVkKQogewotICAgIGV2YWx1YXRlT25Mb2FkKFN0cmluZzo6Zm9ybWF0KCJbXCJzZXREZWJ1Z2dp
bmdFbmFibGVkXCIsICVzXSIsIGVuYWJsZWQgPyAidHJ1ZSIgOiAiZmFsc2UiKSk7CisgICAgZXZh
bHVhdGVPbkxvYWQobWFrZVN0cmluZygiW1wic2V0RGVidWdnaW5nRW5hYmxlZFwiLCAiLCBlbmFi
bGVkID8gInRydWUiIDogImZhbHNlIiwgJ10nKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoKQpAQCAtMzA2LDcgKzMw
Niw3IEBAIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNUaW1lbGluZVByb2Zp
bGluZ0VuYWJsZWQoKQogCiB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgZXZhbHVhdGVPbkxv
YWQoU3RyaW5nOjpmb3JtYXQoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwiLCAlc10i
LCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIikpOworICAgIGV2YWx1YXRlT25Mb2FkKG1ha2VT
dHJpbmcoIltcInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZFwiLCAiLCBlbmFibGVkID8gInRy
dWUiIDogImZhbHNlIiwgJ10nKSk7CiB9CiAKIGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6aXNQcm9maWxpbmdKYXZhU2NyaXB0KCkKQEAgLTMzOSw3ICszMzksNyBAQCB2b2lkIElu
c3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNob3dSZXNvdXJjZXMoKQogdm9pZCBJbnNwZWN0
b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93TWFpblJlc291cmNlRm9yRnJhbWUoRnJhbWUqIGZy
YW1lKQogewogICAgIFN0cmluZyBmcmFtZUlkID0gbV9pbnNwZWN0ZWRQYWdlQ29udHJvbGxlci0+
cGFnZUFnZW50KCktPmZyYW1lSWQoZnJhbWUpOwotICAgIGV2YWx1YXRlT25Mb2FkKFN0cmluZzo6
Zm9ybWF0KCJbXCJzaG93TWFpblJlc291cmNlRm9yRnJhbWVcIiwgXCIlc1wiXSIsIGZyYW1lSWQu
YXNjaWkoKS5kYXRhKCkpKTsKKyAgICBldmFsdWF0ZU9uTG9hZChtYWtlU3RyaW5nKCJbXCJzaG93
TWFpblJlc291cmNlRm9yRnJhbWVcIiwgXCIiLCBmcmFtZUlkLCAiXCJdIikpOwogfQogCiB1bnNp
Z25lZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpjb25zdHJhaW5lZEF0dGFjaGVkV2lu
ZG93SGVpZ2h0KHVuc2lnbmVkIHByZWZlcnJlZEhlaWdodCwgdW5zaWduZWQgdG90YWxXaW5kb3dI
ZWlnaHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3Bl
Y3RvckNTU0FnZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVj
dG9yQ1NTQWdlbnQuY3BwCmluZGV4IDQ1Nzc2NTI1NzlhZjU2NDk3YzUyYmViMmQ5ZGMxMjViNDVl
ZDU0ZDguLjdmNDBlMDQ4ZDA2ZDJmYjIyM2U4M2RjMDc4OTQxMzgwMWE3OGJmZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ1NTQWdlbnQu
Y3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtZXJnZUlkKCkg
ZmluYWwKICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiU2V0U3R5bGVTaGVl
dFRleHQgJXMiLCBtX3N0eWxlU2hlZXQtPmlkKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJl
dHVybiAiU2V0U3R5bGVTaGVldFRleHQgIiArIG1fc3R5bGVTaGVldC0+aWQoKTsKICAgICB9CiAK
ICAgICB2b2lkIG1lcmdlKHN0ZDo6dW5pcXVlX3B0cjxBY3Rpb24+IGFjdGlvbikgb3ZlcnJpZGUK
QEAgLTE5OCw3ICsxOTgsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIG1lcmdlSWQoKSBvdmVycmlk
ZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fc3R5bGVTaGVldC0+aWQoKSA9PSBtX2Nzc0lkLnN0
eWxlU2hlZXRJZCgpKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJTZXRTdHlsZVRl
eHQgJXM6JXUiLCBtX3N0eWxlU2hlZXQtPmlkKCkudXRmOCgpLmRhdGEoKSwgbV9jc3NJZC5vcmRp
bmFsKCkpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiU2V0U3R5bGVUZXh0ICIsIG1fc3R5
bGVTaGVldC0+aWQoKSwgJzonLCBtX2Nzc0lkLm9yZGluYWwoKSk7CiAgICAgfQogCiAgICAgdm9p
ZCBtZXJnZShzdGQ6OnVuaXF1ZV9wdHI8QWN0aW9uPiBhY3Rpb24pIG92ZXJyaWRlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFn
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwCmluZGV4IDk2YmM4N2VmOGMxYWZkODk3YmQyNmJmMjI2OWU0MTA1NTk0ZGVh
OGEuLjZkNTg4MWVhMGU2NjRjYmJjZTJhODVmOGQ5ZGUwOTNmYjQzY2NhYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMu
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9y
Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIHVz
aW5nIEpTT046OkFycmF5T2Y7CiB1c2luZyBJbnNwZWN0b3I6OlByb3RvY29sOjpJbmRleGVkREI6
OkRhdGFiYXNlV2l0aE9iamVjdFN0b3JlczsKQEAgLTcxMSw3ICs3MTIsNyBAQCBwdWJsaWM6CiAg
ICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGlkYk9iamVjdFN0b3JlLT5jbGVhcigqZXhlYyk7CiAg
ICAgICAgICAgICBBU1NFUlQoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICBp
ZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICAgICAgbV9yZXF1ZXN0Q2Fs
bGJhY2stPnNlbmRGYWlsdXJlKFN0cmluZzo6Zm9ybWF0KCJDb3VsZCBub3QgY2xlYXIgb2JqZWN0
IHN0b3JlICclcyc6ICVkIiwgbV9vYmplY3RTdG9yZU5hbWUudXRmOCgpLmRhdGEoKSwgcmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKS5jb2RlKCkpKTsKKyAgICAgICAgICAgICAgICBtX3JlcXVlc3RD
YWxsYmFjay0+c2VuZEZhaWx1cmUobWFrZVN0cmluZygiQ291bGQgbm90IGNsZWFyIG9iamVjdCBz
dG9yZSAnIiwgbV9vYmplY3RTdG9yZU5hbWUsICInOiAiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3Vs
dC5yZWxlYXNlRXhjZXB0aW9uKCkuY29kZSgpKSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlkYlJlcXVlc3QgPSByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVh
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAppbmRleCAwOGYw
NGE0NmRjYmNmZDQyMmQzOTgzZmIwYTNiNTVmMzgzN2EwOTNiLi4xZjVmNjMzMDg0MzNlZWEwZWVj
MThiNDk3NTY3ZDk2M2QxMWNlMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01l
bW9yeVJlbGVhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5j
cHAKQEAgLTE2OSw3ICsxNjksNyBAQCB2b2lkIGxvZ01lbW9yeVN0YXRpc3RpY3NBdFRpbWVPZkRl
YXRoKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTdHJpbmcgdGFnTmFtZSA9IGRp
c3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFtZSkKLSAgICAgICAgICAg
IHRhZ05hbWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFnICV1IiwgaSk7CisgICAgICAgICAgICB0YWdO
YW1lID0gbWFrZVN0cmluZygiVGFnICIsIGkpOwogICAgICAgICBSRUxFQVNFX0xPRyhNZW1vcnlQ
cmVzc3VyZSwgIiUxNnM6ICVsdSBNQiIsIHRhZ05hbWUubGF0aW4xKCkuZGF0YSgpLCBkaXJ0eSAv
IE1CKTsKICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29j
b2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29j
b2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQppbmRleCBlMDNlMDZmNTFiNjI1NTg4MjAy
YzA2MjhhNmNhZTBhMDc1NGYyZDlkLi4wY2I1YzM1MzI3YjFkMjk3ZDA0ODk0MmExOWZhYTUwMGU2
Zjc0MDEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNh
Z2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJj
ZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIFN0cmluZyBm
b3JtYXRCeXRlTnVtYmVyKHNpemVfdCBudW1iZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmc6OmZv
cm1hdCgiJS4yZiBNQiIsIHN0YXRpY19jYXN0PGRvdWJsZT4obnVtYmVyKSAvIDEwNDg1NzYpOwog
ICAgIGlmIChudW1iZXIgPj0gMTAyNCkKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIl
LjFmIGtCIiwgc3RhdGljX2Nhc3Q8ZG91YmxlPihudW1iZXIpIC8gMTAyNCk7Ci0gICAgcmV0dXJu
IFN0cmluZzo6Zm9ybWF0KCIlbHUiLCBudW1iZXIpOworICAgIHJldHVybiBTdHJpbmc6Om51bWJl
cihudW1iZXIpOwogfQogCiBzdGF0aWMgU3RyaW5nIGdjVGltZXJTdHJpbmcoTW9ub3RvbmljVGlt
ZSB0aW1lckZpcmVEYXRlLCBNb25vdG9uaWNUaW1lIG5vdykKQEAgLTQ2OSw5ICs0NjksOSBAQCB2
b2lkIFJlc291cmNlVXNhZ2VPdmVybGF5OjpwbGF0Zm9ybURyYXcoQ0dDb250ZXh0UmVmIGNvbnRl
eHQpCiAgICAgICAgIAogICAgICAgICBTdHJpbmcgbGFiZWwgPSBTdHJpbmc6OmZvcm1hdCgiJSAx
MXM6ICVzIiwgY2F0ZWdvcnkubmFtZS5hc2NpaSgpLmRhdGEoKSwgZm9ybWF0Qnl0ZU51bWJlcihk
aXJ0eSkuYXNjaWkoKS5kYXRhKCkpOwogICAgICAgICBpZiAoZXh0ZXJuYWwpCi0gICAgICAgICAg
ICBsYWJlbCA9IGxhYmVsICsgU3RyaW5nOjpmb3JtYXQoIiArICVzIiwgZm9ybWF0Qnl0ZU51bWJl
cihleHRlcm5hbCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCAr
IG1ha2VTdHJpbmcoIiArICIsIGZvcm1hdEJ5dGVOdW1iZXIoZXh0ZXJuYWwpKTsKICAgICAgICAg
aWYgKHJlY2xhaW1hYmxlKQotICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCArIFN0cmluZzo6Zm9y
bWF0KCIgWyVzXSIsIGZvcm1hdEJ5dGVOdW1iZXIocmVjbGFpbWFibGUpLmFzY2lpKCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIGxhYmVsID0gbGFiZWwgKyBtYWtlU3RyaW5nKCIgWyIsIGZvcm1hdEJ5
dGVOdW1iZXIocmVjbGFpbWFibGUpLCAnXScpOwogCiAgICAgICAgIC8vIEZJWE1FOiBTaG93IHNp
emUvY2FwYWNpdHkgb2YgR0MgaGVhcC4KICAgICAgICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHks
IGNhdGVnb3J5LmNvbG9yLmdldCgpLCBsYWJlbCk7CkBAIC00ODAsOCArNDgwLDggQEAgdm9pZCBS
ZXNvdXJjZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1EcmF3KENHQ29udGV4dFJlZiBjb250ZXh0KQog
ICAgIHkgLT0gNTsKIAogICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93
KCk7Ci0gICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAxMCwgY29sb3JGb3JMYWJlbHMsIFN0
cmluZzo6Zm9ybWF0KCIgICAgRWRlbiBHQzogJXMiLCBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9m
TmV4dEVkZW5Db2xsZWN0aW9uLCBub3cpLmFzY2lpKCkuZGF0YSgpKSk7Ci0gICAgc2hvd1RleHQo
Y29udGV4dCwgMTAsIHkgKyAyMCwgY29sb3JGb3JMYWJlbHMsIFN0cmluZzo6Zm9ybWF0KCIgICAg
RnVsbCBHQzogJXMiLCBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9u
LCBub3cpLmFzY2lpKCkuZGF0YSgpKSk7CisgICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAx
MCwgY29sb3JGb3JMYWJlbHMsICIgICAgRWRlbiBHQzogIiArIGdjVGltZXJTdHJpbmcoZGF0YS50
aW1lT2ZOZXh0RWRlbkNvbGxlY3Rpb24sIG5vdykpOworICAgIHNob3dUZXh0KGNvbnRleHQsIDEw
LCB5ICsgMjAsIGNvbG9yRm9yTGFiZWxzLCAiICAgIEZ1bGwgR0M6ICIgKyBnY1RpbWVyU3RyaW5n
KGRhdGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9uLCBub3cpKTsKIAogICAgIGRyYXdDcHVIaXN0
b3J5KGNvbnRleHQsIHZpZXdCb3VuZHMuc2l6ZS53aWR0aCAtIDcwLCAwLCB2aWV3Qm91bmRzLnNp
emUuaGVpZ2h0LCBkYXRhLmNwdSk7CiAgICAgZHJhd0dDSGlzdG9yeShjb250ZXh0LCB2aWV3Qm91
bmRzLnNpemUud2lkdGggLSAxNDAsIDAsIHZpZXdCb3VuZHMuc2l6ZS5oZWlnaHQsIGRhdGEuZ2NI
ZWFwU2l6ZSwgZGF0YS5jYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdLmRpcnR5U2l6
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VU
aHJlYWRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRo
cmVhZENvY29hLm1tCmluZGV4IDY5OGZiOGRlNjRkZWIxMWY0M2RjYTViMzE5OTlhNGVhMWJlZGIz
NDguLjlkMGI2YzU0ZDg4MTZkMzZjYWM2OWQwMDgwYWFkNjEzZDk3OGJkMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1t
CkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8bWFjaC92bV9zdGF0aXN0aWNzLmg+CiAjaW5j
bHVkZSA8cGFsL3NwaS9jb2NvYS9NYWNoVk1TUEkuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRS
aWdodC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYyLDcgKzYzLDcgQEAgdm9pZCBsb2dGb290cHJp
bnRDb21wYXJpc29uKGNvbnN0IHN0ZDo6YXJyYXk8VGFnSW5mbywgMjU2PiYgYmVmb3JlLCBjb25z
dCBzdGQ6OmEKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTdHJpbmcgdGFnTmFtZSA9
IGRpc3BsYXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFtZSkKLSAgICAgICAg
ICAgIHRhZ05hbWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFnICV1IiwgaSk7CisgICAgICAgICAgICB0
YWdOYW1lID0gbWFrZVN0cmluZygiVGFnICIsIGkpOwogICAgICAgICBXVEZMb2dBbHdheXMoIiAg
JTAyWCAlMTZzICUxMGxkICUxMGxkICUxMGxkIiwKICAgICAgICAgICAgIGksCiAgICAgICAgICAg
ICB0YWdOYW1lLmFzY2lpKCkuZGF0YSgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2FuaW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKaW5kZXggY2ZkMGIzNjAyNzkzOWQ0Yjg2
YWZkNmZlN2U4NzNlMDRmYjg2ZmY2NS4uOTQwNzM0MjA2NWZlOWZjNTI4ZDU0NTc0NDQ2Mzc2YTFk
NGQ3ZDdkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1Rp
bWluZ0Z1bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24v
VGltaW5nRnVuY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU3ByaW5nU29s
dmVyLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVW5pdEJlemll
ci5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAt
MTgxLDcgKzE4Miw3IEBAIFN0cmluZyBUaW1pbmdGdW5jdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAg
ICAgaWYgKG1fdHlwZSA9PSBUaW1pbmdGdW5jdGlvbjo6U3RlcHNGdW5jdGlvbikgewogICAgICAg
ICBhdXRvJiBmdW5jdGlvbiA9IGRvd25jYXN0PFN0ZXBzVGltaW5nRnVuY3Rpb24+KCp0aGlzKTsK
ICAgICAgICAgaWYgKCFmdW5jdGlvbi5zdGVwQXRTdGFydCgpKQotICAgICAgICAgICAgcmV0dXJu
IFN0cmluZzo6Zm9ybWF0KCJzdGVwcyglZCkiLCBmdW5jdGlvbi5udW1iZXJPZlN0ZXBzKCkpOwor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoInN0ZXBzKCIsIGZ1bmN0aW9uLm51bWJlck9m
U3RlcHMoKSwgJyknKTsKICAgICB9CiAKICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNr
UHJpdmF0ZUFWRk9iakNJbXBsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KaW5kZXggNmU0OGZkYWYx
ODU5MDcwYTI2OTM0YmNiNjA2ZmU1YTQwY2ZiZGUyYy4uZWI2OTg4ODQwYTEzMDcxNTc4MzFmZTM4
YWFiMjNmMGU4NWE4YmU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRl
QVZGT2JqQ0ltcGwubW0KQEAgLTE4MCw3ICsxODAsNyBAQCBpbnQgQVZUcmFja1ByaXZhdGVBVkZP
YmpDSW1wbDo6aW5kZXgoKSBjb25zdAogQXRvbWljU3RyaW5nIEFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw6OmlkKCkgY29uc3QKIHsKICAgICBpZiAobV9hc3NldFRyYWNrKQotICAgICAgICByZXR1
cm4gU3RyaW5nOjpmb3JtYXQoIiVkIiwgW21fYXNzZXRUcmFjayB0cmFja0lEXSk7CisgICAgICAg
IHJldHVybiBBdG9taWNTdHJpbmc6Om51bWJlcihbbV9hc3NldFRyYWNrIHRyYWNrSURdKTsKICAg
ICBpZiAobV9tZWRpYVNlbGVjdGlvbk9wdGlvbikKICAgICAgICAgcmV0dXJuIFtbbV9tZWRpYVNl
bGVjdGlvbk9wdGlvbi0+YXZNZWRpYVNlbGVjdGlvbk9wdGlvbigpIG9wdGlvbklEXSBzdHJpbmdW
YWx1ZV07CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9i
akMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhU2FtcGxlQVZGT2JqQy5oCmluZGV4IDYwZWU5NmY0MDI0MzM2MjJmNTg1NDEyNmZmYjIz
OTUxMDY5OGNlMzEuLjk2NmNjZDU1NjlmOWUwNmI2ZjlhNTgxOTk3YWE3YjM4OWQxZGQyMzAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC04NCw3ICs4
NCw3IEBAIHByb3RlY3RlZDoKICAgICB9CiAgICAgTWVkaWFTYW1wbGVBVkZPYmpDKENNU2FtcGxl
QnVmZmVyUmVmIHNhbXBsZSwgaW50IHRyYWNrSUQpCiAgICAgICAgIDogbV9zYW1wbGUoc2FtcGxl
KQotICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgdHJhY2tJRCkpCisgICAgICAg
ICwgbV9pZChBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSkKICAgICB7CiAgICAgfQogICAg
IE1lZGlhU2FtcGxlQVZGT2JqQyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIFZpZGVvUm90YXRp
b24gcm90YXRpb24sIGJvb2wgbWlycm9yZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBlNGY2N2NkMWFi
MzlkOGQ5NmRiYmQ2MGU2YjMyZDAwMjI2NTBmM2YxLi45Nzc4OGZhMDkzNDlhZjJmMTIwNDliZGEw
ZjMyNDc5NTE3MGM3MDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTUyLDggKzUyLDggQEAKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4K
ICNpbmNsdWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAjaW5jbHVkZSAiU3lzdGVtTWVtb3J5LmgiCkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lk
IEdyYXBoaWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNv
bG9yKQogICAgICAgICAgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJQ
dXJwb3NlOjpCYWNrZ3JvdW5kQ29sb3I7CiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBj
cmVhdGVQbGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVMYXllciwgdGhp
cyk7CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICAgICAgbV9jb250ZW50c0xh
eWVyLT5zZXROYW1lKFN0cmluZzo6Zm9ybWF0KCJjb250ZW50cyBjb2xvciAlbGx1IiwgbV9jb250
ZW50c0xheWVyLT5sYXllcklEKCkpKTsKKyAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0
TmFtZShtYWtlU3RyaW5nKCJjb250ZW50cyBjb2xvciAiLCBtX2NvbnRlbnRzTGF5ZXItPmxheWVy
SUQoKSkpOwogI2Vsc2UKICAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmFtZSgiY29u
dGVudHMgY29sb3IiKTsKICNlbmRpZgpAQCAtMjU2Niw3ICsyNTY2LDcgQEAgdm9pZCBHcmFwaGlj
c0xheWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgICAgICBpZiAoIW1fY29udGVudHNM
YXllci5nZXQoKSkgewogICAgICAgICAgICAgbV9jb250ZW50c0xheWVyID0gY3JlYXRlUGxhdGZv
cm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIHRoaXMpOwogI2lmIEVO
QUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmFt
ZShTdHJpbmc6OmZvcm1hdCgiY29udGVudHMgaW1hZ2UgJWxsdSIsIG1fY29udGVudHNMYXllci0+
bGF5ZXJJRCgpKSk7CisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5hbWUobWFrZVN0
cmluZygiY29udGVudHMgaW1hZ2UgIiwgbV9jb250ZW50c0xheWVyLT5sYXllcklEKCkpKTsKICNl
bHNlCiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5hbWUoImNvbnRlbnRzIGltYWdl
Iik7CiAjZW5kaWYKQEAgLTI2NzIsNyArMjY3Miw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1
cGRhdGVDb250ZW50c1JlY3RzKCkKICAgICAgICAgICAgIG1fY29udGVudHNDbGlwcGluZ0xheWVy
ID0gY3JlYXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIs
IHRoaXMpOwogICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldEFuY2hvclBv
aW50KEZsb2F0UG9pbnQoKSk7CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICAg
ICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldE5hbWUoU3RyaW5nOjpmb3JtYXQoImNvbnRl
bnRzIGNsaXBwaW5nICVsbHUiLCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+bGF5ZXJJRCgpKSk7
CisgICAgICAgICAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+c2V0TmFtZShtYWtlU3RyaW5n
KCJjb250ZW50cyBjbGlwcGluZyAiLCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+bGF5ZXJJRCgp
KSk7CiAjZWxzZQogICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldE5hbWUo
ImNvbnRlbnRzIGNsaXBwaW5nIik7CiAjZW5kaWYKQEAgLTMxNTYsNyArMzE1Niw3IEBAIGJvb2wg
R3JhcGhpY3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlm
cmFtZVZhbHVlTGlzdCYgdmFsCiAgICAgZm9yIChpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUlu
ZGV4ID0gMDsgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4IDwgbnVtQW5pbWF0ZWRQcm9wZXJ0
aWVzOyArK2ludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgewogICAgICAgICBib29sIHZhbHVl
c09LOwogICAgICAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY2FBbmltYXRpb247Ci0g
ICAgICAgIFN0cmluZyBrZXlQYXRoID0gU3RyaW5nOjpmb3JtYXQoImZpbHRlcnMuZmlsdGVyXyVk
LiVzIiwgYW5pbWF0aW9uSW5kZXgsIFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmltYXRlZEZpbHRlclBy
b3BlcnR5TmFtZShmaWx0ZXJPcCwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSk7CisgICAg
ICAgIFN0cmluZyBrZXlQYXRoID0gbWFrZVN0cmluZygiZmlsdGVycy5maWx0ZXJfIiwgYW5pbWF0
aW9uSW5kZXgsICcuJywgUGxhdGZvcm1DQUZpbHRlcnM6OmFuaW1hdGVkRmlsdGVyUHJvcGVydHlO
YW1lKGZpbHRlck9wLCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpKTsKICAgICAgICAgCiAg
ICAgICAgIGlmIChpc0tleWZyYW1lKSB7CiAgICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0
ZUtleWZyYW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwga2V5UGF0aCwgZmFsc2UpOwpAQCAtMzkxNCw3
ICszOTE0LDcgQEAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpmaW5k
T3JNYWtlQ2xvbmUoQ2xvbmVJRCBjbG9uZUlELCBQbGF0Zm8KICAgICB9IGVsc2UgewogICAgICAg
ICByZXN1bHRMYXllciA9IGNsb25lTGF5ZXIoc291cmNlTGF5ZXIsIGNsb25lTGV2ZWwpOwogI2lm
IEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3Ry
aW5nOjpmb3JtYXQoImNsb25lICVkIG9mICVsbHUiLCBjbG9uZUlEWzBVXSwgc291cmNlTGF5ZXIt
PmxheWVySUQoKSkpOworICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJj
bG9uZSAiLCBjbG9uZUlEWzBVXSwgIiBvZiAiLCBzb3VyY2VMYXllci0+bGF5ZXJJRCgpKSk7CiAj
ZWxzZQogICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZSgiY2xvbmUgb2YgIiArIG1fbmFtZSk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMWZmNmMzMGM3YzRlYWUyMzdhZmQzZjcyYzMy
NjE0MTA2MjU3NWZjYi4uYTQ4ZTE0ZmRmMjVkZjc0MmNjZjM4NGJmMmIwNTRjOTIxZmI1YmM2NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL1VV
SUQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApA
QCAtMzY3LDEyICszNjcsMTIgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1Rl
eHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogCiAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6
ZSgpOwogICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0YXRzRm9udFNpemUpOwotICAgIHN0
cmluZyA9IFN0cmluZzo6Zm9ybWF0KCJTaXplOiAldSB4ICV1Iiwgc2l6ZS53aWR0aCgpLCBzaXpl
LmhlaWdodCgpKTsKKyAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJTaXplOiAiLCBzaXplLndpZHRo
KCksICIgeCAiLCBzaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0LmRyYXdUZXh0KHN0YXRzRm9u
dCwgVGV4dFJ1bigoU3RyaW5nVmlldyhzdHJpbmcpKSksIHN0YXRzTG9jYXRpb24pOwogCiAgICAg
aWYgKG1vY2tDYW1lcmEoKSkgewogICAgICAgICBzdGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0
c0ZvbnRTaXplKTsKLSAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIlByZXNldCBzaXpl
OiAldSB4ICV1IiwgY2FwdHVyZVNpemUud2lkdGgoKSwgY2FwdHVyZVNpemUuaGVpZ2h0KCkpOwor
ICAgICAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJQcmVzZXQgc2l6ZTogIiwgY2FwdHVyZVNpemUu
d2lkdGgoKSwgIiB4ICIsIGNhcHR1cmVTaXplLmhlaWdodCgpKTsKICAgICAgICAgY29udGV4dC5k
cmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1ZpZXcoc3RyaW5nKSkpLCBzdGF0c0xv
Y2F0aW9uKTsKIAogICAgICAgICBjb25zdCBjaGFyKiBjYW1lcmE7CkBAIC0zOTMsNyArMzkzLDcg
QEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KQogICAgICAgICAgICAgY2FtZXJhID0gIlVua25vd24iOwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KLSAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIkNhbWVy
YTogJXMiLCBjYW1lcmEpOworICAgICAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJDYW1lcmE6ICIs
IGNhbWVyYSk7CiAgICAgICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0YXRzRm9udFNpemUp
OwogICAgICAgICBjb250ZXh0LmRyYXdUZXh0KHN0YXRzRm9udCwgVGV4dFJ1bigoU3RyaW5nVmll
dyhzdHJpbmcpKSksIHN0YXRzTG9jYXRpb24pOwogICAgIH0gZWxzZSBpZiAoIW5hbWUoKS5pc051
bGwoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNv
dXJjZS9Nb2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA5ZmJh
YzAwMjA0NzhlOWIzNTBkZTdmZjRkNDdjOWZlMzU5NDYwZTFlLi5jZTI3M2YxN2YxNjcwYmJlZTNl
NDY5YjhmMjM4NTQwYzk3Yjk5NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2
YXRlLmNwcApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1vY2tNZWRp
YVNhbXBsZShjb25zdCBNb2NrU2FtcGxlQm94JiBib3gpCiAgICAgICAgIDogbV9ib3goYm94KQot
ICAgICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAg
ICAgICwgbV9pZChTdHJpbmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRl
bnRSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRl
bnRSYW5nZS5jcHAKaW5kZXggMDBiOTBjNDg1M2U4ZTIwYmI0ZTkyODU3YWYwZTE3ZTkxNTBkZjQy
NS4uYTNkNGYwNDQwNTlkZmQ5YTU3YjMxOTI5ZGI4ZjExMmMxNWY2MjExMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QYXJzZWRDb250ZW50UmFuZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGFyc2VkQ29udGVudFJhbmdlLmNw
cApAQCAtMjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIlBhcnNlZENvbnRlbnRSYW5nZS5oIgogCiAj
aW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTEyNyw4ICsxMjcsOCBAQCBTdHJpbmcgUGFyc2VkQ29u
dGVudFJhbmdlOjpoZWFkZXJWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKCFtX2lzVmFsaWQpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBpZiAobV9pbnN0YW5jZUxlbmd0aCA9PSBVbmtub3du
TGVuZ3RoKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoImJ5dGVzICUiIFBSSWQ2NCAi
LSUiIFBSSWQ2NCAiLyoiLCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCBtX2xhc3RCeXRlUG9zaXRpb24p
OwotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiYnl0ZXMgJSIgUFJJZDY0ICItJSIgUFJJZDY0
ICIvJSIgUFJJZDY0LCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCBtX2xhc3RCeXRlUG9zaXRpb24sIG1f
aW5zdGFuY2VMZW5ndGgpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiYnl0ZXMgIiwgbV9m
aXJzdEJ5dGVQb3NpdGlvbiwgJy0nLCBtX2xhc3RCeXRlUG9zaXRpb24sICIvKiIpOworICAgIHJl
dHVybiBtYWtlU3RyaW5nKCJieXRlcyAiLCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCAnLScsIG1fbGFz
dEJ5dGVQb3NpdGlvbiwgJy8nLCBtX2luc3RhbmNlTGVuZ3RoKTsKIH0KIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtT
dG9yYWdlU2Vzc2lvbkNGTmV0LmNwcAppbmRleCAwOWQ4NmQwZmVjZjA5YTY2ZGQzOTg0OTRjNzli
YmFmMDc5ZTRiYzYwLi5iMDFhN2U2NmJmMDkxNDk2MWQ2MzAxMDc0MWUyMjE3NWY5ZWZiOWI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9y
YWdlU2Vzc2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NmL05ldHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4K
ICNpbmNsdWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0
cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVk
ZSAiUHVibGljU3VmZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9z
cWwvU1FMaXRlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0
ZURhdGFiYXNlLmNwcAppbmRleCA2NjNlMGJjMGI4NTY3MDgzYWE5N2VmODExNWE1NDY4YzUxN2U5
NmM1Li5kN2JjNjEzMmI0MjY4NmRlNDllNThkYTI4NGQ2NjdkOTdhYjczNjk0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTQ2LDggKzQ2
LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFiYXNl
IGlzIG5vdCBvcGVuIjsKIHN0YXRpYyB2b2lkIHVuYXV0aG9yaXplZFNRTEZ1bmN0aW9uKHNxbGl0
ZTNfY29udGV4dCAqY29udGV4dCwgaW50LCBzcWxpdGUzX3ZhbHVlICoqKQogewogICAgIGNvbnN0
IGNoYXIqIGZ1bmN0aW9uTmFtZSA9IChjb25zdCBjaGFyKilzcWxpdGUzX3VzZXJfZGF0YShjb250
ZXh0KTsKLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIkZ1bmN0aW9u
ICVzIGlzIHVuYXV0aG9yaXplZCIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgc3FsaXRlM19yZXN1bHRf
ZXJyb3IoY29udGV4dCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCksIC0xKTsKKyAgICBzcWxp
dGUzX3Jlc3VsdF9lcnJvcihjb250ZXh0LCBtYWtlU3RyaW5nKCJGdW5jdGlvbiAiLCBmdW5jdGlv
bk5hbWUsICIgaXMgdW5hdXRob3JpemVkIikudXRmOCgpLmRhdGEoKSwgLTEpOwogfQogCiBzdGF0
aWMgdm9pZCBpbml0aWFsaXplU1FMaXRlSWZOZWNlc3NhcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA5YTc4M2RjMTZj
NDUxYjNiZDNkNDAwMzQ5NTY1MDcyZDBmODFjOGQ1Li40MWE4ZWFiZmI0YWY3NDAzOTljY2ZlNzY4
OTQyNjFkOTIzZGQ0MzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI3OCw3ICsxMjc4LDcgQEAgdm9pZCBSZW5kZXJM
YXllckNvbXBvc2l0b3I6OmxvZ0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGNv
bnN0IGNoYXIqIHAKICAgICAgICAgYmFja2luZy0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUo
KSAvIDEwMjQpKTsKICAgICAKICAgICBpZiAoIWxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5oYXNB
dXRvWkluZGV4KCkpCi0gICAgICAgIGxvZ1N0cmluZy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiB6
LWluZGV4OiAlZCIsIGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS56SW5kZXgoKSkpOyAKKyAgICAg
ICAgbG9nU3RyaW5nLmFwcGVuZChtYWtlU3RyaW5nKCIgei1pbmRleDogIiwgbGF5ZXIucmVuZGVy
ZXIoKS5zdHlsZSgpLnpJbmRleCgpKSk7CiAKICAgICBsb2dTdHJpbmcuYXBwZW5kTGl0ZXJhbCgi
ICgiKTsKICAgICBsb2dTdHJpbmcuYXBwZW5kKGxvZ1JlYXNvbnNGb3JDb21wb3NpdGluZyhsYXll
cikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9S
ZWdpc3RyYXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCA2MGVlYjhjYzJjMGY0MTJjYTJi
Y2VkOTgyYWU5MjdmZmIxZDZhNDY4Li42YTJkNjQwOWVhYTM0OWE2OTZiZWFiYWQ4NWMwMzI0ZTIw
OTEwZGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtNDUsNiArNDUsNyBAQAog
I2luY2x1ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg+CiAjaW5jbHVkZSA8
d3RmL3BlcnNpc3RlbmNlL1BlcnNpc3RlbnREZWNvZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNp
c3RlbmNlL1BlcnNpc3RlbnRFbmNvZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAxLDcgKzIw
Miw3IEBAIFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6ZW5zdXJlVmFsaWRSZWNvcmRzVGFi
bGUoKQogICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBSZWNvcmRzIHRhYmxlIGF0IGFsbCwgY3Jl
YXRlIGl0IGFuZCB0aGVuIGJhaWwuCiAgICAgICAgIGlmIChzcWxpdGVSZXN1bHQgPT0gU1FMSVRF
X0RPTkUpIHsKICAgICAgICAgICAgIGlmICghbV9kYXRhYmFzZS0+ZXhlY3V0ZUNvbW1hbmQocmVj
b3Jkc1RhYmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1h
dCgiQ291bGQgbm90IGNyZWF0ZSBSZWNvcmRzIHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIs
IG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCBjcmVhdGUgUmVjb3Jk
cyB0YWJsZSBpbiBkYXRhYmFzZSAoIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksICIpIC0gIiwg
bV9kYXRhYmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAg
ICAgICAgfQogCkBAIC0zNTksNyArMzYwLDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNl
OjppbXBvcnRSZWNvcmRzKCkKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fZGF0YWJhc2Us
ICJTRUxFQ1QgKiBGUk9NIFJlY29yZHM7Il9zKTsKICAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBT
UUxJVEVfT0spCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiRmFpbGVkIHRvIHByZXBh
cmUgc3RhdGVtZW50IHRvIHJldHJpZXZlIHJlZ2lzdHJhdGlvbnMgZnJvbSByZWNvcmRzIHRhYmxl
ICglaSkgLSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJy
b3JNc2coKSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gcHJlcGFyZSBz
dGF0ZW1lbnQgdG8gcmV0cmlldmUgcmVnaXN0cmF0aW9ucyBmcm9tIHJlY29yZHMgdGFibGUgKCIs
IG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1z
ZygpKTsKIAogICAgIGludCByZXN1bHQgPSBzcWwuc3RlcCgpOwogCkBAIC00MTEsNyArNDEyLDcg
QEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKICAgICB9CiAK
ICAgICBpZiAocmVzdWx0ICE9IFNRTElURV9ET05FKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpm
b3JtYXQoIkZhaWxlZCB0byBpbXBvcnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBmcm9tIHJl
Y29yZHMgdGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksIG1fZGF0YWJh
c2UtPmxhc3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkZhaWxlZCB0
byBpbXBvcnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBmcm9tIHJlY29yZHMgdGFibGUgKCIs
IG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1z
ZygpKTsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9y
eVNhbXBsZXIuY3BwCmluZGV4IDJiODUyMDBkZWM5Mjc4Yzc0ZGJhZjYyYWU1MzMwZDlmOGQzN2Rj
MDcuLjg3ZTZlZWIzYTk0MzFlNWM1NzI3ZmE1MjViNzFmZDc1NmViY2VhYTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CkBAIC0xNDIsNyArMTQzLDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVy
Ojppbml0aWFsaXplU2FuZGJveGVkTG9nRmlsZShTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBz
YW0KIAogdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhlYWRlcnMoKQogewotICAgIFN0cmlu
ZyBwcm9jZXNzRGV0YWlscyA9IFN0cmluZzo6Zm9ybWF0KCJQcm9jZXNzOiAlcyBQaWQ6ICVkXG4i
LCBwcm9jZXNzTmFtZSgpLnV0ZjgoKS5kYXRhKCksIGdldEN1cnJlbnRQcm9jZXNzSUQoKSk7Cisg
ICAgU3RyaW5nIHByb2Nlc3NEZXRhaWxzID0gbWFrZVN0cmluZygiUHJvY2VzczogIiwgcHJvY2Vz
c05hbWUoKSwgIiBQaWQ6ICIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgJ1xuJyk7CiAKICAgICBD
U3RyaW5nIHV0ZjhTdHJpbmcgPSBwcm9jZXNzRGV0YWlscy51dGY4KCk7CiAgICAgRmlsZVN5c3Rl
bTo6d3JpdGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0
cmluZy5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0K
aW5kZXggZWZjM2UxNjBiNDhiYzZlM2I3ZGFlNTQ0YTUyMjM0N2M5NzhiOTMyOC4uOWMyNzcyN2U4
NzI2MTc0MWEyMDNkNzBiYzFhYjIxZDdiNTFkNTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xv
Y2FsQXV0aGVudGljYXRvci5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgTG9jYWxBdXRoZW50
aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgpCiAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZU1ha2VD
cmVkZW50aWFsQWZ0ZXJVc2VyQ29uc2VudGVkKGNvbnNlbnQpOwogICAgIH07CiAgICAgbV9jb25u
ZWN0aW9uLT5nZXRVc2VyQ29uc2VudCgKLSAgICAgICAgU3RyaW5nOjpmb3JtYXQoIkFsbG93ICVz
IHRvIGNyZWF0ZSBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBmb3IgJXMiLCByZXF1ZXN0RGF0YSgp
LmNyZWF0aW9uT3B0aW9ucy5ycC5pZC51dGY4KCkuZGF0YSgpLCByZXF1ZXN0RGF0YSgpLmNyZWF0
aW9uT3B0aW9ucy51c2VyLm5hbWUudXRmOCgpLmRhdGEoKSksCisgICAgICAgICJBbGxvdyAiICsg
cmVxdWVzdERhdGEoKS5jcmVhdGlvbk9wdGlvbnMucnAuaWQgKyAiIHRvIGNyZWF0ZSBhIHB1Ymxp
YyBrZXkgY3JlZGVudGlhbCBmb3IgIiArIHJlcXVlc3REYXRhKCkuY3JlYXRpb25PcHRpb25zLnVz
ZXIubmFtZSwKICAgICAgICAgV1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmIC8vICFQTEFURk9S
TShJT1NfRkFNSUxZKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3Bl
Y3RvclV0aWxpdGllcy5jcHAKaW5kZXggYzVkYjQwMWVlMWM2MTk1ODk0MmQ2YTNiMzBjZjMwZjEz
ZmE2YjgwNi4uM2I0OWNlMDM0YTlhYWIwMzIzZGIxNGIzMzYwOGRlYmE2NGZmYmY5OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKQEAgLTU3LDcgKzU4LDcgQEAgdW5zaWduZWQgaW5zcGVjdG9yTGV2ZWxGb3JQYWdlKFdl
YlBhZ2VQcm94eSogcGFnZSkKIAogU3RyaW5nIGluc3BlY3RvclBhZ2VHcm91cElkZW50aWZpZXJG
b3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQo
Il9fV2ViSW5zcGVjdG9yUGFnZUdyb3VwTGV2ZWwldV9fIiwgaW5zcGVjdG9yTGV2ZWxGb3JQYWdl
KHBhZ2UpKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiX19XZWJJbnNwZWN0b3JQYWdlR3JvdXBM
ZXZlbCIsIGluc3BlY3RvckxldmVsRm9yUGFnZShwYWdlKSwgIl9fIik7CiB9CiAKIHZvaWQgdHJh
Y2tJbnNwZWN0b3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCBiZTg0NzliMzZiNjYyYjkyNDk1MDE0MjdiYzM1
ZjU1ZTI2NGU4NmE4Li5iNzBmMDliMzZhMTIyOTRjZTlkMWI3NmU1ZmIwMDQxYmNjM2I2MmE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00MSw5ICs0
MSw2IEBACiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiR2Ft
ZXBhZERhdGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxl
ci5oIgotI2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCi0jaW5jbHVk
ZSAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKLSNlbmRpZgogI2luY2x1
ZGUgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC05OCw2ICs5NSwxMSBAQAog
I2luY2x1ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CisKKyNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9QUk9U
T0NPTF9NQU5BR0VSKQorI2luY2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3Nh
Z2VzLmgiCisjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogI2luY2x1ZGUg
IlNlcnZpY2VzQ29udHJvbGxlci5oIgpAQCAtMTAxMyw3ICsxMDE1LDcgQEAgdm9pZCBXZWJQcm9j
ZXNzUG9vbDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqIHByb2Nl
c3MpCiAgICAgaWYgKG1fbWVtb3J5U2FtcGxlckVuYWJsZWQpIHsKICAgICAgICAgU2FuZGJveEV4
dGVuc2lvbjo6SGFuZGxlIHNhbXBsZUxvZ1NhbmRib3hIYW5kbGU7ICAgICAgICAKICAgICAgICAg
V2FsbFRpbWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwotICAgICAgICBTdHJpbmcgc2FtcGxlTG9n
RmlsZVBhdGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHVwaWQlZCIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkIGxvbmcgbG9uZz4obm93LnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygp
KSwgcHJvY2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIFN0cmluZyBzYW1wbGVM
b2dGaWxlUGF0aCA9IG1ha2VTdHJpbmcoIldlYlByb2Nlc3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZCBsb25nIGxvbmc+KG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSksICJwaWQiLCBw
cm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICAgICAgc2FtcGxlTG9nRmlsZVBhdGgg
PSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKHNhbXBsZUxv
Z0ZpbGVQYXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHNhbXBsZUxvZ1Nh
bmRib3hIYW5kbGUpOwogICAgICAgICAKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUHJvY2Vzczo6U3RhcnRNZW1vcnlTYW1wbGVyKHNhbXBsZUxvZ1NhbmRib3hIYW5kbGUsIHNh
bXBsZUxvZ0ZpbGVQYXRoLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCksIDApOwpAQCAtMTU3MSw3
ICsxNTczLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RhcnRNZW1vcnlTYW1wbGVyKGNvbnN0
IGRvdWJsZSBpbnRlcnZhbCkKICAgICAvLyBGb3IgV2ViUHJvY2VzcwogICAgIFNhbmRib3hFeHRl
bnNpb246OkhhbmRsZSBzYW1wbGVMb2dTYW5kYm94SGFuZGxlOyAgICAKICAgICBXYWxsVGltZSBu
b3cgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU3Ry
aW5nOjpmb3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBs
b25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKKyAgICBTdHJpbmcgc2Ft
cGxlTG9nRmlsZVBhdGggPSBtYWtlU3RyaW5nKCJXZWJQcm9jZXNzIiwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQgbG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKICAg
ICBzYW1wbGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRl
bXBvcmFyeUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJl
YWRXcml0ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAgICAgCiAgICAgc2VuZFRvQWxsUHJv
Y2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9yeVNhbXBsZXIoc2FtcGxlTG9n
U2FuZGJveEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIGludGVydmFsKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L05ldHdvcmtTdG9yYWdlU2Vzc2lv
bk1hcC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L05ldHdvcmtTdG9y
YWdlU2Vzc2lvbk1hcC5jcHAKaW5kZXggZmRiMWIyNDExZTk3YzJlMDEwYTJlODM3MTMxZTJmYzE5
NDA1NTRhNy4uMTdhZDFjNzJkMTEzMDU5ZDJhM2NiZjQwNDM3NzM4MDhlMzg4MWQyNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrU3RvcmFnZVNl
c3Npb25NYXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvTmV0
d29ya1N0b3JhZ2VTZXNzaW9uTWFwLmNwcApAQCAtNjcsNyArNjcsNyBAQCB2b2lkIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbk1hcDo6c3dpdGNoVG9OZXdUZXN0aW5nU2Vzc2lvbigpCiB7CiAjaWYgVVNF
KENGVVJMQ09OTkVDVElPTikKICAgICAvLyBTZXNzaW9uIG5hbWUgc2hvdWxkIGJlIHNob3J0IGVu
b3VnaCBmb3Igc2hhcmVkIG1lbW9yeSByZWdpb24gbmFtZSB0byBiZSB1bmRlciB0aGUgbGltaXQs
IG90ZWhyd2lzZSBzYW5kYm94IHJ1bGVzIHdvbid0IHdvcmsgKHNlZSA8cmRhcjovL3Byb2JsZW0v
MTM2NDI4NTI+KS4KLSAgICBTdHJpbmcgc2Vzc2lvbk5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiV2Vi
S2l0IFRlc3QtJXUiLCBzdGF0aWNfY2FzdDx1aW50MzJfdD4oZ2V0Q3VycmVudFByb2Nlc3NJRCgp
KSk7CisgICAgU3RyaW5nIHNlc3Npb25OYW1lID0gbWFrZVN0cmluZygiV2ViS2l0IFRlc3QtIiwg
Z2V0Q3VycmVudFByb2Nlc3NJRCgpKTsKIAogICAgIGF1dG8gc2Vzc2lvbiA9IGFkb3B0Q0YoV2Vi
Q29yZTo6Y3JlYXRlUHJpdmF0ZVN0b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3Ry
aW5nKCkuZ2V0KCkpKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGUxNWQwMjg3NjYwMzBmNjY2YjA3ZDI4NzJkMDRjNTYwZWE1ZWJjMmIuLjZj
MWI4MTI0OTk4OGRkZjJhZDZkZWUzY2IxOTc4NTQxM2QyYjcxMmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0x
Mi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBt
YW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0
MgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6Y2Fj
aGVUZXN0UnVubmVyQ2FsbGJhY2spOiBVc2UgbWFrZVN0cmluZy4KKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xs
ZXI6OmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6IFVzZSBtYWtlU3RyaW5nLgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKTogVXNlIGFuIEFT
Q0lJTGl0ZXJhbCB2aWEgdGhlIF9zIHN5bnRheC4KKwogMjAxOS0wMS0yMyAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIGNoZWNrLXdlYmtpdC1zdHlsZSBzaG91
bGQgd2FybiB3aGVuIHVzaW5nIHNvZnQtbGlua2luZyBtYWNyb3MgaW4gYSBoZWFkZXIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CmluZGV4IGQ3YTlkMjQ4MjlkZjhiNzRhZDhiY2Q5MWRkZDk2MDk0YjJjZTU4NTAuLmVkMzMxZGVk
N2E3MTE5MGVlM2JlOTgxZjBmNTllYmVkOTM0MmNhNWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtNTUsNiArNTUs
NyBAQAogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2luY2x1ZGUg
PHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV1RSIHsK
IApAQCAtODEzLDcgKzgxNCw3IEBAIHN0YXRpYyB2b2lkIGNhY2hlVGVzdFJ1bm5lckNhbGxiYWNr
KHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlUmVmIGNhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAK
ICAgICBpZiAoY2FsbGJhY2tNYXAoKS5jb250YWlucyhpbmRleCkpIHsKLSAgICAgICAgSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLm91dHB1dFRleHQoU3RyaW5nOjpmb3JtYXQoIkZBSUw6IFRy
aWVkIHRvIGluc3RhbGwgYSBzZWNvbmQgVGVzdFJ1bm5lciBjYWxsYmFjayBmb3IgdGhlIHNhbWUg
ZXZlbnQgKGlkICVkKVxuXG4iLCBpbmRleCkpOworICAgICAgICBJbmplY3RlZEJ1bmRsZTo6c2lu
Z2xldG9uKCkub3V0cHV0VGV4dChtYWtlU3RyaW5nKCJGQUlMOiBUcmllZCB0byBpbnN0YWxsIGEg
c2Vjb25kIFRlc3RSdW5uZXIgY2FsbGJhY2sgZm9yIHRoZSBzYW1lIGV2ZW50IChpZCAiLCBpbmRl
eCwgIilcblxuIikpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDdiNjYyYWE2MDAwYzYwNDhiMzdmNGVhYThm
NDAxOWQxMjAwOTYyNTIuLjBjZmY3MTk1NmRiOWM0MjhiYjUxN2I0ZDZjZDNhY2NiOTQxYmU0ZDgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCkBAIC03OCw3ICs3
OCw3IEBACiAjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+
CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0UHJpdmF0
ZU1hYy5oPgpAQCAtMjA3MywxMSArMjA3MywxMSBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV0tQYWdlUmVmIHBhZ2UsIFdLQXV0aGVudAog
CiAgICAgc3RkOjpzdHJpbmcgaG9zdCA9IHRvU1REKGFkb3B0V0soV0tQcm90ZWN0aW9uU3BhY2VD
b3B5SG9zdChwcm90ZWN0aW9uU3BhY2UpKS5nZXQoKSk7CiAgICAgaW50IHBvcnQgPSBXS1Byb3Rl
Y3Rpb25TcGFjZUdldFBvcnQocHJvdGVjdGlvblNwYWNlKTsKLSAgICBTdHJpbmcgbWVzc2FnZSA9
IFN0cmluZzo6Zm9ybWF0KCIlczolZCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSAtICVzIC0gIiwgaG9zdC5jX3N0cigpLCBwb3J0LCB0b1N0cmluZyhhdXRoZW50aWNhdGlvblNj
aGVtZSkpOworICAgIFN0cmluZyBtZXNzYWdlID0gbWFrZVN0cmluZyhob3N0LmNfc3RyKCksICc6
JywgcG9ydCwgIiAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtICIsIHRvU3Ry
aW5nKGF1dGhlbnRpY2F0aW9uU2NoZW1lKSwgIiAtICIpOwogICAgIGlmICghbV9oYW5kbGVzQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VzKQogICAgICAgICBtZXNzYWdlLmFwcGVuZCgiU2ltdWxhdGlu
ZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hlZXRcbiIpOwogICAgIGVsc2UKLSAgICAgICAg
bWVzc2FnZS5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIlJlc3BvbmRpbmcgd2l0aCAlczolc1xuIiwg
bV9hdXRoZW50aWNhdGlvblVzZXJuYW1lLnV0ZjgoKS5kYXRhKCksIG1fYXV0aGVudGljYXRpb25Q
YXNzd29yZC51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIG1lc3NhZ2UuYXBwZW5kKCJSZXNwb25k
aW5nIHdpdGggIiArIG1fYXV0aGVudGljYXRpb25Vc2VybmFtZSArICI6IiArIG1fYXV0aGVudGlj
YXRpb25QYXNzd29yZCArICJcbiIpOwogICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRl
eHQobWVzc2FnZSk7CiAKICAgICBpZiAoIW1faGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
cykgewpAQCAtMjE3NSw4ICsyMTc1LDcgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZG93bmxvYWRE
aWRSZWNlaXZlU2VydmVyUmVkaXJlY3RUb1VSTChXS0NvbnRleHRSZWYsIFdLRG93bmwKIHZvaWQg
VGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlkRmFpbChXS0NvbnRleHRSZWYsIFdLRG93bmxvYWRS
ZWYsIFdLRXJyb3JSZWYgZXJyb3IpCiB7CiAgICAgaWYgKG1fc2hvdWxkTG9nRG93bmxvYWRDYWxs
YmFja3MpIHsKLSAgICAgICAgU3RyaW5nIG1lc3NhZ2UgPSBTdHJpbmc6OmZvcm1hdCgiRG93bmxv
YWQgZmFpbGVkLlxuIik7Ci0gICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQo
bWVzc2FnZSk7CisgICAgICAgIG1fY3VycmVudEludm9jYXRpb24tPm91dHB1dFRleHQoIkRvd25s
b2FkIGZhaWxlZC5cbiJfcyk7CiAKICAgICAgICAgV0tSZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGVy
cm9yRG9tYWluID0gYWRvcHRXSyhXS0Vycm9yQ29weURvbWFpbihlcnJvcikpOwogICAgICAgICBX
S1JldGFpblB0cjxXS1N0cmluZ1JlZj4gZXJyb3JEZXNjcmlwdGlvbiA9IGFkb3B0V0soV0tFcnJv
ckNvcHlMb2NhbGl6ZWREZXNjcmlwdGlvbihlcnJvcikpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>360311</attachid>
            <date>2019-01-27 16:30:36 -0800</date>
            <delta_ts>2019-01-27 16:30:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192742-20190127163035.patch</filename>
            <type>text/plain</type>
            <size>136092</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwNTU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
YzZmNjY0YjU2MDM1NjkyMDFjZTAxYmFhZGE2YjdmN2I1ZGVmYzQyLi44NDhlODg5YWMyMDU0MWRj
YzUyNTA3OTI2MDIxZTUwNDMzZTViOGJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOSBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisK
KyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpmb3JtYXQgd2l0aCBtb3JlIHR5
cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2VkIGJ5IE1hcmsgTGFtLgorCisg
ICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHA6CisgICAgICAgIChJbnNw
ZWN0b3I6OkluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUNhbGwpOiBVc2UgbWFrZVN0cmluZy4KKyAg
ICAgICAgKEluc3BlY3Rvcjo6SW5qZWN0ZWRTY3JpcHRCYXNlOjptYWtlQXN5bmNDYWxsKTogRGl0
dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcDoK
KyAgICAgICAgKEluc3BlY3Rvcjo6QmFja2VuZERpc3BhdGNoZXI6OmdldFByb3BlcnR5VmFsdWUp
OiBEaXR0by4KKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNvbGVBZ2Vu
dC5jcHA6CisgICAgICAgIChJbnNwZWN0b3I6Okluc3BlY3RvckNvbnNvbGVBZ2VudDo6ZW5hYmxl
KTogRGl0dG8uCisgICAgICAgICoganNjLmNwcDoKKyAgICAgICAgKEZ1bmN0aW9uSlNDU3RhY2tG
dW5jdG9yOjpvcGVyYXRvcigpIGNvbnN0KTogRGl0dG8uCisKKyAgICAgICAgKiBydW50aW1lL0Nv
ZGVDYWNoZS5jcHA6CisgICAgICAgIChKU0M6OndyaXRlQ29kZUJsb2NrKTogVXNlIG1ha2VTdHJp
bmcncyBudW1lcmljIGNhcGFiaWxpdGllcyBpbnN0ZWFkIG9mCisgICAgICAgIHVzaW5nIFN0cmlu
Zzo6bnVtYmVyLgorCisgICAgICAgICogcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwOgor
ICAgICAgICAoSlNDOjpJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1h
dCk6IFVzZSBzdHJpbmcgY29uY2F0ZW5hdGlvbi4KKyAgICAgICAgKiBydW50aW1lL0ludGxPYmpl
Y3QuY3BwOgorICAgICAgICAoSlNDOjpjYW5vbmljYWxpemVMb2NhbGVMaXN0KTogRGl0dG8uCisK
IDIwMTktMDEtMjcgIENocmlzIEZsZWl6YWNoICA8Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBWDogSW50cm9kdWNlIGEgc3RhdGljIGFjY2Vzc2liaWxpdHkgdHJlZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA2ZTg0
ZDljMWZjYzU5YTk5ZjQxNGI5M2M2MjM4ZjE1ZTBlN2QyOWExLi44YzE5NDY1OGNkNDM3ZTM2ZDQ2
NWEzMTZiNzExYTc0MWMwMDIwYjZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE4LTEyLTE1ICBE
YXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBSZXBsYWNlIG1hbnkgdXNl
cyBvZiBTdHJpbmc6OmZvcm1hdCB3aXRoIG1vcmUgdHlwZS1zYWZlIGFsdGVybmF0aXZlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzQyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAgICAgKiB3dGYvV29ya1F1ZXVlLmNw
cDoKKyAgICAgICAgKFdURjo6V29ya1F1ZXVlOjpjb25jdXJyZW50QXBwbHkpOiBVc2UgbWFrZVN0
cmluZy4KKworICAgICAgICAqIHd0Zi9kdG9hLmNwcDoKKyAgICAgICAgKFdURjo6ZHRvYSk6IFVz
ZSBzcHJpbnRmIGluc3RlYWQgb2YgU3RyaW5nOjpmb3JtYXQgaW4gdGhlIGNvbW1lbnRzLAorICAg
ICAgICBzaW5jZSB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBub3RoaW5nIHRvIGRvIHdpdGggV1RGOjpT
dHJpbmcuCisKIDIwMTktMDEtMjUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbaU9TXSBBZGQgc3VwcG9ydCBmb3IgdGhlIGRvd25sb2FkIGF0dHJpYnV0ZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCmluZGV4IGQwMWFmMzM5MWI2ZGIwMjc4ZDRmOGRjZDI4N2UzZDE0NDc0YTY5NzYuLmE4NGQ5
NTgyNzU4OWI0MGFhNzU0MTJjMjhjODk1YTUyMDVmYTdjYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxODMgQEAKKzIwMTgtMTItMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgorCisg
ICAgICAgIFJlcGxhY2UgbWFueSB1c2VzIG9mIFN0cmluZzo6Zm9ybWF0IHdpdGggbW9yZSB0eXBl
LXNhZmUgYWx0ZXJuYXRpdmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xOTI3NDIKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAg
ICAgICBBIHdoaWxlIGJhY2ssIFN0cmluZzo6Zm9ybWF0IHdhcyBtb3JlIGVmZmljaWVudCB0aGFu
IHN0cmluZyBjb25jYXRlbmF0aW9uLAorICAgICAgICBidXQgdGhhdCBpcyBubyBsb25nZXIgdHJ1
ZSwgYW5kIHdlIHNob3VsZCBwcmVmZXIgU3RyaW5nOjpudW1iZXIsIG1ha2VTdHJpbmcsCisgICAg
ICAgIG9yIGNvbmNhdGVuYXRpb24gd2l0aCB0aGUgIisiIG9wZXJhdG9yIHRvIFN0cmluZzo6Zm9y
bWF0IGZvciBuZXcgY29kZS4KKworICAgICAgICBUaGlzIGlzIG5vdCBhcyBnb29kIGZvciBwcm9n
cmFtbWVycyB3aG8gYXJlIGZvbmQgb2YgcHJpbnRmIGZvcm1hdHRpbmcKKyAgICAgICAgc3R5bGUs
IGFuZCBpbiBzb21lIGNhc2VzIGl0J3MgYSBsaXR0bGUgaGFyZGVyIHRvIHJlYWQgdGhlIHN0cmlu
Z3MKKyAgICAgICAgaW50ZXJzcGVyc2VkIHdpdGggdmFyaWFibGVzIHJhdGhlciB0aGFuIGEgZm9y
bWF0IHN0cmluZywgYnV0IGl0J3MgYmV0dGVyCisgICAgICAgIGluIGEgZmV3IHdheXM6CisKKyAg
ICAgICAgLSBtb3JlIGVmZmljaWVudCAoSSBkaWRuJ3QgbWVhc3VyZSB0aGUgZGlmZmVyZW5jZSwg
YnV0IGl0J3MgZGVmaW5pdGVseQorICAgICAgICAgIHNsb3dlciB0byB1c2UgU3RyaW5nOjpGb3Jt
YXQgd2hpY2ggY2FsbHMgdnNucHJpbnRmIHR3aWNlIHRoYW4gdG8gdXNlCisgICAgICAgICAgdGhl
IFdURiBjb2RlKQorICAgICAgICAtIHdvcmtzIGluIGEgdHlwZS1zYWZlIHdheSB3aXRob3V0IGEg
bmVlZCB0byB1c2UgYSBmb3JtYXQgc3BlY2lmaWVyIHN1Y2gKKyAgICAgICAgICBhcyAiJSIgUFJJ
dTY0IG9yICIldHUiIG1ha2luZyBpdCBtdWNoIGVhc2llciB0byBhdm9pZCBwcm9ibGVtcyBkdWUg
dG8KKyAgICAgICAgICBzdWJ0bGUgZGlmZmVyZW5jZXMgYmV0d2VlbiBwbGF0Zm9ybXMKKyAgICAg
ICAgLSBhbGxvd3MgdXMgdG8gdXNlIFN0cmluZ1ZpZXcgaW4gc29tZSBjYXNlcyB0byBzaWRlc3Rl
cCB0aGUgbmVlZCB0bworICAgICAgICAgIGFsbG9jYXRlIHRlbXBvcmFyeSBXVEY6OlN0cmluZyBv
YmplY3RzCisgICAgICAgIC0gZG9lcyBub3QgcmVxdWlyZSBjb252ZXJ0aW5nIGVhY2ggV1RGOjpT
dHJpbmcgdG8gYSBDIHN0cmluZywgYWxsb3dpbmcKKyAgICAgICAgICB1cyB0byByZW1vdmUgbWFu
eSBjYXNlcyBvZiAiLnV0ZjgoKS5kYXRhKCkiIGFuZCBzaW1pbGFyIGV4cHJlc3Npb25zLAorICAg
ICAgICAgIGVsaW1pbmF0aW5nIHRoZSBhbGxvY2F0aW9uIG9mIHRlbXBvcmFyeSBXVEY6OkNTdHJp
bmcgb2JqZWN0cworCisgICAgICAgIFRoaXMgcGF0Y2ggY292ZXJzIGEgYmF0Y2ggb2YgZWFzaWVz
dC10by1jb252ZXJ0IGNhbGwgc2l0ZXMuCisgICAgICAgIExhdGVyIHBhdGNoZXMgd2lsbCBhbGxv
dyB1cyB0byBkZXByZWNhdGUgb3IgcmVtb3ZlIFN0cmluZzo6Zm9ybWF0LgorCisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6YWRkUmVjb3Jk
KTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QkN1cnNvckluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ3Vyc29ySW5mbzo6bG9nZ2lu
Z1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJHZXRBbGxSZWNvcmRzRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJHZXRBbGxS
ZWNvcmRzRGF0YTo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkdldFJlY29yZERhdGE6OmxvZ2dpbmdTdHJpbmcgY29uc3QpOiBEaXR0by4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OklEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbmZvOjpjb25kZW5zZWRMb2dnaW5nU3RyaW5nIGNvbnN0
KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkl0ZXJhdGVD
dXJzb3JEYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkl0ZXJhdGVDdXJzb3JEYXRhOjps
b2dnaW5nU3RyaW5nIGNvbnN0KTogRGl0dG8uCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0lEQk9iamVjdFN0b3JlSW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJPYmpl
Y3RTdG9yZUluZm86OmNvbmRlbnNlZExvZ2dpbmdTdHJpbmcgY29uc3QpOiBEaXR0by4KKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzb3VyY2VJZGVudGlmaWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlJlc291cmNlSWRlbnRpZmllcjo6bG9nZ2luZ1N0cmluZyBj
b25zdCk6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Zm9ybWF0RXJyb3JNZXNzYWdlKTogRGl0dG8uCisgICAgICAg
ICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oOgorICAgICAgICAoV2ViQ29yZTo6U1FM
RXJyb3I6OmNyZWF0ZSk6IERpdHRvLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2Rl
R2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKTogVXNlIG1h
a2VTdHJpbmcuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZh
Y2VOYW1lLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNSZWFkT25seU1hcExp
a2UuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RBY3RpdmVE
T01PYmplY3QuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
RVJlYWN0aW9ucy5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21Db25zdHJ1Y3RvcldpdGhO
b0ludGVyZmFjZU9iamVjdC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdERPTUpJVC5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RFdmVudENvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0R2xvYmFsT2JqZWN0LmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
ci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3Jl
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5
TGlzdExpc3RlbmVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRl
ckNhbGxXaXRoLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
OgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
bmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5z
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6CisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9h
ZGVkQ29uc3RydWN0b3JzV2l0aFNlcXVlbmNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFBsdWdpbkludGVyZmFjZS5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0
aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhlcml0LmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5hbC5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25JbXBsZW1lbnRlZEFzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25OYW1lZFRvU3RyaW5nLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0VHlwZWRlZnMuY3BwOgorICAgICAgICBVcGRhdGVkIGV4cGVjdGVkIHJl
c3VsdHMuCis6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpwYXJzZUhl
eENvbG9yKTogVXNlIFN0cmluZzo6bnVtYmVyCisgICAgICAgIGFuZCBtYWtlU3RyaW5nLgorCisg
ICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MU2VsZWN0RWxlbWVudDo6c2V0TGVuZ3RoKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgICog
aHRtbC9JbWFnZURvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlRG9jdW1lbnQ6
OmltYWdlVXBkYXRlZCk6IERpdHRvLgorICAgICAgICAqIGh0bWwvcGFyc2VyL1hTU0F1ZGl0b3Iu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6aW5pdCk6IERpdHRvLgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERvY2tpbmdVbmF2YWls
YWJsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbDo6c2V0QXR0YWNoZWRXaW5kb3cpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldERlYnVnZ2luZ0VuYWJsZWQpOiBEaXR0by4KKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OnNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRnJv
bnRlbmRDbGllbnRMb2NhbDo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1lKTogRGl0dG8uCisgICAg
ICAgICogaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6IERpdHRvLgorICAg
ICAgICAqIGluc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBwYWdlL01lbW9yeVJlbGVhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
bG9nTWVtb3J5U3RhdGlzdGljc0F0VGltZU9mRGVhdGgpOiBEaXR0by4KKworICAgICAgICAqIHBh
Z2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OmZvcm1hdEJ5dGVOdW1iZXIpOiBVc2UgU3RyaW5nOjpudW1iZXIuCisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1EcmF3KTogVXNlIHN0cmluZyBjb25jYXRl
bmF0aW9uLgorCisgICAgICAgICogcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlVGhyZWFkQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpsb2dGb290cHJpbnRDb21wYXJpc29uKTogVXNlIG1ha2VT
dHJpbmcuCisgICAgICAgICogcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlRpbWluZ0Z1bmN0aW9uOjpjc3NUZXh0IGNvbnN0KTogRGl0dG8u
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQVZUcmFja1ByaXZh
dGVBVkZPYmpDSW1wbC5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGw6OmlkIGNvbnN0KTogVXNlIEF0b21pY1N0cmluZzo6bnVtYmVyLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFTYW1wbGVBVkZPYmpDOjpNZWRpYVNhbXBsZUFWRk9iakMp
OiBEaXR0by4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJD
QS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnNldENvbnRlbnRzVG9T
b2xpZENvbG9yKTogVXNlIG1ha2VTdHJpbmcuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyQ0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJDQTo6dXBkYXRlQ29udGVudHNSZWN0cyk6IERpdHRvLgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckNBOjpjcmVhdGVUcmFuc2Zvcm1BbmltYXRpb25zRnJvbUtleWZy
YW1lcyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmRy
YXdUZXh0KTogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01v
Y2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcDogVXNlIFN0cmluZzo6bnVtYmVyLgorCisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9QYXJzZWRDb250ZW50UmFuZ2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UGFyc2VkQ29udGVudFJhbmdlOjpoZWFkZXJWYWx1ZSBjb25zdCk6IFVzZSBtYWtlU3Ry
aW5nLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Np
b25DRk5ldC5jcHA6IFJlbW92ZWQgc29tZSB1bm5lY2Vzc2FyeQorICAgICAgICBjb21waWxlciBj
b25kaXRpb25hbHMgYW5kIHJlb3JnYW5pemVkIHRoZSBzdGFydC9zdG9wIG9mIG5hbWVzcGFjZXMu
CisgICAgICAgIChXZWJDb3JlOjpOZXR3b3JrU3RvcmFnZVNlc3Npb246OnN3aXRjaFRvTmV3VGVz
dGluZ1Nlc3Npb24pOiBVc2UgbWFrZVN0cmluZy4KKworICAgICAgICAqIHBsYXRmb3JtL3NxbC9T
UUxpdGVEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp1bmF1dGhvcml6ZWRTUUxGdW5j
dGlvbik6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjps
b2dMYXllckluZm8pOiBEaXR0by4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1Jl
Z2lzdHJhdGlvbkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlZ2lzdHJhdGlvbkRh
dGFiYXNlOjplbnN1cmVWYWxpZFJlY29yZHNUYWJsZSk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6UmVnaXN0cmF0aW9uRGF0YWJhc2U6OmltcG9ydFJlY29yZHMpOiBEaXR0by4KKwogMjAxOS0w
MS0yNyAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZW1vdmUgYSBjb3VwbGUgb2YgUExBVEZPUk0gZGVmaW5lcyBpbnRlbmRlZCBmb3Igd2F0Y2hPUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwppbmRleCAwZmY3Yjg4NzA0ZjBlYzIwM2Q4ZjUwMjMyMzYwYWZmYjUzZjJhMjk1Li5kOTNm
OTIyMjg5MmMzYjVmYTdhMTE5NTYxMWE1NTJkN2U0MzBiYmE3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDIyIEBACisyMDE4LTEyLTE1ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXBsYWNlIG1hbnkgdXNlcyBvZiBTdHJpbmc6OmZvcm1hdCB3aXRoIG1vcmUgdHlwZS1z
YWZlIGFsdGVybmF0aXZlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTkyNzQyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBMYW0uCisKKyAgICAg
ICAgKiBTaGFyZWQvV2ViTWVtb3J5U2FtcGxlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYk1l
bW9yeVNhbXBsZXI6OndyaXRlSGVhZGVycyk6IFVzZSBtYWtlU3RyaW5nLgorCisgICAgICAgICog
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToK
KyAgICAgICAgKFdlYktpdDo6TG9jYWxBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCk6IFVz
ZSBzdHJpbmcgY29uY2F0ZW50YXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVj
dG9yVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6aW5zcGVjdG9yUGFnZUdyb3VwSWRl
bnRpZmllckZvclBhZ2UpOiBVc2UgbWFrZVN0cmluZy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUG9vbDo6cHJvY2Vz
c0RpZEZpbmlzaExhdW5jaGluZyk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UG9vbDo6c3RhcnRNZW1vcnlTYW1wbGVyKTogRGl0dG8uCisKIDIwMTktMDEtMjcgIEppZXdlbiBU
YW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVc2UgYSBsb2FkIG9wdGltaXpl
ciBmb3Igc29tZSBzaXRlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwppbmRleCBhNmE1OGM0ZTkzZDZjMjk2
NzhiZWM0MWZiZGYxYTEwNGY4ODg4ZWY1Li5kOTU5MGQ4ZDBlNjBjOTgyOTU3ZDUxZTI4N2E0MTEy
OWM3ZDA3OGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0TGVnYWN5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE5LTAx
LTI2ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKyAgCisgICAgICAgIFJlcGxhY2Ug
bWFueSB1c2VzIG9mIFN0cmluZzo6Zm9ybWF0IHdpdGggbW9yZSB0eXBlLXNhZmUgYWx0ZXJuYXRp
dmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTI3
NDIKKworICAgICAgICBSZXZpZXdlZCBieSBNYXJrIExhbS4KKworICAgICAgICAqIFNoYXJlZC9X
ZWJNZW1vcnlTYW1wbGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViTWVtb3J5U2FtcGxlcjo6
d3JpdGVIZWFkZXJzKTogVXNlIG1ha2VTdHJpbmcuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tOgorICAgICAgICAoV2Vi
S2l0OjpMb2NhbEF1dGhlbnRpY2F0b3I6Om1ha2VDcmVkZW50aWFsKTogVXNlIHN0cmluZyBjb25j
YXRlbnRhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JVdGlsaXRpZXMu
Y3BwOgorICAgICAgICAoV2ViS2l0OjppbnNwZWN0b3JQYWdlR3JvdXBJZGVudGlmaWVyRm9yUGFn
ZSk6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpwcm9jZXNzRGlkRmluaXNoTGF1
bmNoaW5nKTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQb29sOjpzdGFydE1l
bW9yeVNhbXBsZXIpOiBEaXR0by4KKwogMjAxOS0wMS0yNCAgUm9zcyBLaXJzbGluZyAgPHJvc3Mu
a2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgTW92ZSBGaWxlU3lzdGVtIHRvIFdURgpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJh
c2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEJh
c2UuY3BwCmluZGV4IDkxZDBjN2ZiMTc1MDAxYWVjNmZjZjY1NzliMDgwYWY0YmIzYTg0NjguLmZk
OGJiY2YwNmYwMGIxODc3ZGZhNjYwNzVlMmQ1YTI4MTExNjFjYmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRCYXNlLmNwcAorKysgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0QmFzZS5jcHAKQEAg
LTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlICJOYXRpdmVTdGRGdW5jdGlvbkNlbGwuaCIKICNpbmNs
dWRlICJTY3JpcHRGdW5jdGlvbkNhbGwuaCIKICNpbmNsdWRlIDx3dGYvSlNPTlZhbHVlcy5oPgot
I2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmlu
Z0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgSW5zcGVjdG9yIHsKIApAQCAtOTEs
NyArOTEsNyBAQCBSZWY8SlNPTjo6VmFsdWU+IEluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUNhbGwo
RGVwcmVjYXRlZDo6U2NyaXB0RnVuY3Rpb25DYWxsJiBmdQogCiAgICAgUmVmUHRyPEpTT046OlZh
bHVlPiByZXN1bHRKU09OVmFsdWUgPSB0b0luc3BlY3RvclZhbHVlKCptX2luamVjdGVkU2NyaXB0
T2JqZWN0LnNjcmlwdFN0YXRlKCksIHJlc3VsdEpTVmFsdWUpOwogICAgIGlmICghcmVzdWx0SlNP
TlZhbHVlKQotICAgICAgICByZXR1cm4gSlNPTjo6VmFsdWU6OmNyZWF0ZShTdHJpbmc6OmZvcm1h
dCgiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hhaW4gKG11c3Qgbm90IGJlIGxvbmdl
ciB0aGFuICVkKSIsIEpTT046OlZhbHVlOjptYXhEZXB0aCkpOworICAgICAgICByZXR1cm4gSlNP
Tjo6VmFsdWU6OmNyZWF0ZShtYWtlU3RyaW5nKCJPYmplY3QgaGFzIHRvbyBsb25nIHJlZmVyZW5j
ZSBjaGFpbiAobXVzdCBub3QgYmUgbG9uZ2VyIHRoYW4gIiwgSlNPTjo6VmFsdWU6Om1heERlcHRo
LCAnKScpKTsKIAogICAgIHJldHVybiByZXN1bHRKU09OVmFsdWUucmVsZWFzZU5vbk51bGwoKTsK
IH0KQEAgLTEyMiw3ICsxMjIsNyBAQCB2b2lkIEluamVjdGVkU2NyaXB0QmFzZTo6bWFrZUFzeW5j
Q2FsbChEZXByZWNhdGVkOjpTY3JpcHRGdW5jdGlvbkNhbGwmIGZ1bmN0aW9uLAogICAgICAgICAg
ICAgaWYgKGF1dG8gcmVzdWx0SlNPTlZhbHVlID0gdG9JbnNwZWN0b3JWYWx1ZSgqZXhlYywgZXhl
Yy0+YXJndW1lbnQoMCkpKQogICAgICAgICAgICAgICAgIGNoZWNrQXN5bmNDYWxsUmVzdWx0KHJl
c3VsdEpTT05WYWx1ZSwgY2FsbGJhY2spOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgIGNoZWNrQXN5bmNDYWxsUmVzdWx0KEpTT046OlZhbHVlOjpjcmVhdGUoU3RyaW5nOjpmb3Jt
YXQoIk9iamVjdCBoYXMgdG9vIGxvbmcgcmVmZXJlbmNlIGNoYWluIChtdXN0IG5vdCBiZSBsb25n
ZXIgdGhhbiAlZCkiLCBKU09OOjpWYWx1ZTo6bWF4RGVwdGgpKSwgY2FsbGJhY2spOworICAgICAg
ICAgICAgICAgIGNoZWNrQXN5bmNDYWxsUmVzdWx0KEpTT046OlZhbHVlOjpjcmVhdGUobWFrZVN0
cmluZygiT2JqZWN0IGhhcyB0b28gbG9uZyByZWZlcmVuY2UgY2hhaW4gKG11c3Qgbm90IGJlIGxv
bmdlciB0aGFuICIsIEpTT046OlZhbHVlOjptYXhEZXB0aCwgJyknKSksIGNhbGxiYWNrKTsKICAg
ICAgICAgICAgIHJldHVybiBKU0M6OkpTVmFsdWU6OmVuY29kZShKU0M6OmpzVW5kZWZpbmVkKCkp
OwogICAgICAgICB9KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmREaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCmluZGV4IDVj
YmMwZGE5ZGY0NzRhMTNhYmFlNzExMTc5YWUzZDVkZTExYzI5NGMuLmZkZWZkNDJjZWIzN2IwYjcy
NDMxMjA1YjhhMTE2NGQ3NDA4ZDA3ZGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZERpc3BhdGNoZXIuY3BwCkBA
IC0yODksMTkgKzI4OSwxOSBAQCBUIEJhY2tlbmREaXNwYXRjaGVyOjpnZXRQcm9wZXJ0eVZhbHVl
KEpTT046Ok9iamVjdCogb2JqZWN0LCBjb25zdCBTdHJpbmcmIG5hbWUsCiAKICAgICBpZiAoIW9i
amVjdCkgewogICAgICAgICBpZiAoIW91dF9vcHRpb25hbFZhbHVlRm91bmQpCi0gICAgICAgICAg
ICByZXBvcnRQcm90b2NvbEVycm9yKEJhY2tlbmREaXNwYXRjaGVyOjpJbnZhbGlkUGFyYW1zLCBT
dHJpbmc6OmZvcm1hdCgiJ3BhcmFtcycgb2JqZWN0IG11c3QgY29udGFpbiByZXF1aXJlZCBwYXJh
bWV0ZXIgJyVzJyB3aXRoIHR5cGUgJyVzJy4iLCBuYW1lLnV0ZjgoKS5kYXRhKCksIHR5cGVOYW1l
KSk7CisgICAgICAgICAgICByZXBvcnRQcm90b2NvbEVycm9yKEJhY2tlbmREaXNwYXRjaGVyOjpJ
bnZhbGlkUGFyYW1zLCBtYWtlU3RyaW5nKCIncGFyYW1zJyBvYmplY3QgbXVzdCBjb250YWluIHJl
cXVpcmVkIHBhcmFtZXRlciAnIiwgbmFtZSwgIicgd2l0aCB0eXBlICciLCB0eXBlTmFtZSwgIicu
IikpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIAogICAgIGF1dG8gZmluZFJlc3Vs
dCA9IG9iamVjdC0+ZmluZChuYW1lKTsKICAgICBpZiAoZmluZFJlc3VsdCA9PSBvYmplY3QtPmVu
ZCgpKSB7CiAgICAgICAgIGlmICghb3V0X29wdGlvbmFsVmFsdWVGb3VuZCkKLSAgICAgICAgICAg
IHJlcG9ydFByb3RvY29sRXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFsaWRQYXJhbXMsIFN0
cmluZzo6Zm9ybWF0KCJQYXJhbWV0ZXIgJyVzJyB3aXRoIHR5cGUgJyVzJyB3YXMgbm90IGZvdW5k
LiIsIG5hbWUudXRmOCgpLmRhdGEoKSwgdHlwZU5hbWUpKTsKKyAgICAgICAgICAgIHJlcG9ydFBy
b3RvY29sRXJyb3IoQmFja2VuZERpc3BhdGNoZXI6OkludmFsaWRQYXJhbXMsIG1ha2VTdHJpbmco
IlBhcmFtZXRlciAnIiwgbmFtZSwgIicgd2l0aCB0eXBlICciLCB0eXBlTmFtZSwgIicgd2FzIG5v
dCBmb3VuZC4iKSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogCiAgICAgaWYgKCFh
c01ldGhvZCgqZmluZFJlc3VsdC0+dmFsdWUsIHJlc3VsdCkpIHsKLSAgICAgICAgcmVwb3J0UHJv
dG9jb2xFcnJvcihCYWNrZW5kRGlzcGF0Y2hlcjo6SW52YWxpZFBhcmFtcywgU3RyaW5nOjpmb3Jt
YXQoIlBhcmFtZXRlciAnJXMnIGhhcyB3cm9uZyB0eXBlLiBJdCBtdXN0IGJlICclcycuIiwgbmFt
ZS51dGY4KCkuZGF0YSgpLCB0eXBlTmFtZSkpOworICAgICAgICByZXBvcnRQcm90b2NvbEVycm9y
KEJhY2tlbmREaXNwYXRjaGVyOjpJbnZhbGlkUGFyYW1zLCBtYWtlU3RyaW5nKCJQYXJhbWV0ZXIg
JyIsIG5hbWUsICInIGhhcyB3cm9uZyB0eXBlLiBJdCBtdXN0IGJlICciLCB0eXBlTmFtZSwgIicu
IikpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFnZW50LmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNvbnNv
bGVBZ2VudC5jcHAKaW5kZXggNGNmZWQ3YzU1ZjQ2OGRiNGViMWI1MGY1MGE4MjRjM2ZkZDdmZWE5
OS4uM2ZjNWU5OTJhOTUwZjIwMTlmOTE2NDhkMGQxYWU3ZDI3MzZlNDJmYyAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQ29uc29sZUFn
ZW50LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNw
ZWN0b3JDb25zb2xlQWdlbnQuY3BwCkBAIC0zNSw3ICszNSw3IEBACiAjaW5jbHVkZSAiU2NyaXB0
Q2FsbFN0YWNrLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrRmFjdG9yeS5oIgogI2luY2x1
ZGUgIlNjcmlwdE9iamVjdC5oIgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2Ug
SW5zcGVjdG9yIHsKIApAQCAtNzksNyArNzksNyBAQCB2b2lkIEluc3BlY3RvckNvbnNvbGVBZ2Vu
dDo6ZW5hYmxlKEVycm9yU3RyaW5nJikKICAgICBtX2VuYWJsZWQgPSB0cnVlOwogCiAgICAgaWYg
KG1fZXhwaXJlZENvbnNvbGVNZXNzYWdlQ291bnQpIHsKLSAgICAgICAgQ29uc29sZU1lc3NhZ2Ug
ZXhwaXJlZE1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6T3RoZXIsIE1lc3NhZ2VUeXBlOjpMb2csIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgU3RyaW5nOjpmb3JtYXQoIiVkIGNvbnNvbGUgbWVzc2FnZXMg
YXJlIG5vdCBzaG93bi4iLCBtX2V4cGlyZWRDb25zb2xlTWVzc2FnZUNvdW50KSk7CisgICAgICAg
IENvbnNvbGVNZXNzYWdlIGV4cGlyZWRNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok90aGVyLCBNZXNz
YWdlVHlwZTo6TG9nLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsIG1ha2VTdHJpbmcobV9leHBpcmVk
Q29uc29sZU1lc3NhZ2VDb3VudCwgIiBjb25zb2xlIG1lc3NhZ2VzIGFyZSBub3Qgc2hvd24uIikp
OwogICAgICAgICBleHBpcmVkTWVzc2FnZS5hZGRUb0Zyb250ZW5kKCptX2Zyb250ZW5kRGlzcGF0
Y2hlciwgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXIsIGZhbHNlKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2pzYy5jcHAKaW5kZXggZGViYTYzN2YxMjEzZDk0M2IyNDAyMWYyNTQwMmNkMmZkOTg1YTkxYS4u
Nzg4NDAxMzJkYmYxYjY4YzlmYzdmOWFkMzQ2M2U0Y2ZjYjliN2VhZiAxMDA2NDQKLS0tIGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2pz
Yy5jcHAKQEAgLTkxLDYgKzkxLDcgQEAKICNpbmNsdWRlIDx3dGYvVVJMLmg+CiAjaW5jbHVkZSA8
d3RmL1dhbGxUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiAjaWYgT1MoV0lO
RE9XUykKICNpbmNsdWRlIDxkaXJlY3QuaD4KQEAgLTExNzIsNyArMTE3Myw3IEBAIHB1YmxpYzoK
IAogICAgIFN0YWNrVmlzaXRvcjo6U3RhdHVzIG9wZXJhdG9yKCkoU3RhY2tWaXNpdG9yJiB2aXNp
dG9yKSBjb25zdAogICAgIHsKLSAgICAgICAgbV90cmFjZS5hcHBlbmQoU3RyaW5nOjpmb3JtYXQo
IiAgICAlenUgICAlc1xuIiwgdmlzaXRvci0+aW5kZXgoKSwgdmlzaXRvci0+dG9TdHJpbmcoKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIG1fdHJhY2UuYXBwZW5kKG1ha2VTdHJpbmcoIiAgICAi
LCB2aXNpdG9yLT5pbmRleCgpLCAiICAgIiwgdmlzaXRvci0+dG9TdHJpbmcoKSwgJ1xuJykpOwog
ICAgICAgICByZXR1cm4gU3RhY2tWaXNpdG9yOjpDb250aW51ZTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0NvZGVDYWNoZS5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9Db2RlQ2FjaGUuY3BwCmluZGV4IDI2ZTA5MzFkNDY4OWQy
ZDljYjQwMWExYzczZDE2NjM4YWUwZDlkNTguLmI0MWU1MjY1MWYzZTdjOWY2ZWNkZTIzZmZiOTY5
OWM4OWRiNzg2NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Nv
ZGVDYWNoZS5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvQ29kZUNhY2hl
LmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkNvZGVDYWNoZS5oIgogCiAjaW5jbHVk
ZSAiSW5kaXJlY3RFdmFsRXhlY3V0YWJsZS5oIgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0Nv
bmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgSlNDIHsKIApAQCAtMTk2LDcgKzE5Nyw3
IEBAIHZvaWQgd3JpdGVDb2RlQmxvY2soVk0mIHZtLCBjb25zdCBTb3VyY2VDb2RlS2V5JiBrZXks
IGNvbnN0IFNvdXJjZUNvZGVWYWx1ZSYgdmFsCiAKICAgICBzdGQ6OnBhaXI8TWFsbG9jUHRyPHVp
bnQ4X3Q+LCBzaXplX3Q+IHJlc3VsdCA9IGVuY29kZUNvZGVCbG9jayh2bSwga2V5LCBjb2RlQmxv
Y2spOwogCi0gICAgU3RyaW5nIGZpbGVuYW1lID0gbWFrZVN0cmluZyhjYWNoZVBhdGgsICcvJywg
U3RyaW5nOjpudW1iZXIoa2V5Lmhhc2goKSksICIuY2FjaGUiKTsKKyAgICBTdHJpbmcgZmlsZW5h
bWUgPSBtYWtlU3RyaW5nKGNhY2hlUGF0aCwgJy8nLCBrZXkuaGFzaCgpLCAiLmNhY2hlIik7CiAg
ICAgaW50IGZkID0gb3BlbihmaWxlbmFtZS51dGY4KCkuZGF0YSgpLCBPX0NSRUFUIHwgT19XUk9O
TFksIDA2NjYpOwogICAgIGlmIChmZCA9PSAtMSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcCBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxEYXRlVGltZUZvcm1hdC5jcHAKaW5k
ZXggYWUzZDY4MDE4NTMwMGQ0ZmIyYzJhMjIwN2E3M2EzOTE3ZGU4ZjM0YS4uMWU4ZDllM2NiM2Mw
MjYxZGNkNTgzMDczNThhMDQ5N2I4NTA0NjNmYyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSW50bERhdGVUaW1lRm9ybWF0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9JbnRsRGF0ZVRpbWVGb3JtYXQuY3BwCkBAIC01MDQsNyArNTA0LDcg
QEAgdm9pZCBJbnRsRGF0ZVRpbWVGb3JtYXQ6OmluaXRpYWxpemVEYXRlVGltZUZvcm1hdChFeGVj
U3RhdGUmIGV4ZWMsIEpTVmFsdWUgbG9jYWwKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTihz
Y29wZSwgdm9pZCgpKTsKICAgICAgICAgdHogPSBjYW5vbmljYWxpemVUaW1lWm9uZU5hbWUob3Jp
Z2luYWxUeik7CiAgICAgICAgIGlmICh0ei5pc051bGwoKSkgewotICAgICAgICAgICAgdGhyb3dS
YW5nZUVycm9yKCZleGVjLCBzY29wZSwgU3RyaW5nOjpmb3JtYXQoImludmFsaWQgdGltZSB6b25l
OiAlcyIsIG9yaWdpbmFsVHoudXRmOCgpLmRhdGEoKSkpOworICAgICAgICAgICAgdGhyb3dSYW5n
ZUVycm9yKCZleGVjLCBzY29wZSwgImludmFsaWQgdGltZSB6b25lOiAiICsgb3JpZ2luYWxUeik7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9IGVsc2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0ludGxPYmplY3QuY3BwIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVjdC5jcHAKaW5kZXggMzVjMGI4ODIyZTE5MWM5
MTAwNWM0NWVkZTY2OWRjZDY3NzU0Y2Q3NS4uZTE3NDkzYWJmMzA3ZWMyMWY5NDgzNzBkMGU0NTE0
MjkyZTU3YTBkOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50
bE9iamVjdC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSW50bE9iamVj
dC5jcHAKQEAgLTU5Miw3ICs1OTIsNyBAQCBWZWN0b3I8U3RyaW5nPiBjYW5vbmljYWxpemVMb2Nh
bGVMaXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgbG9jYWxlcykKIAogICAgICAgICAgICAg
U3RyaW5nIGNhbm9uaWNhbGl6ZWRUYWcgPSBjYW5vbmljYWxpemVMYW5ndWFnZVRhZyh0YWctPnZh
bHVlKCZzdGF0ZSkpOwogICAgICAgICAgICAgaWYgKGNhbm9uaWNhbGl6ZWRUYWcuaXNOdWxsKCkp
IHsKLSAgICAgICAgICAgICAgICB0aHJvd0V4Y2VwdGlvbigmc3RhdGUsIHNjb3BlLCBjcmVhdGVS
YW5nZUVycm9yKCZzdGF0ZSwgU3RyaW5nOjpmb3JtYXQoImludmFsaWQgbGFuZ3VhZ2UgdGFnOiAl
cyIsIHRhZy0+dmFsdWUoJnN0YXRlKS51dGY4KCkuZGF0YSgpKSkpOworICAgICAgICAgICAgICAg
IHRocm93RXhjZXB0aW9uKCZzdGF0ZSwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IoJnN0YXRlLCAi
aW52YWxpZCBsYW5ndWFnZSB0YWc6ICIgKyB0YWctPnZhbHVlKCZzdGF0ZSkpKTsKICAgICAgICAg
ICAgICAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKICAgICAgICAgICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtR
dWV1ZS5jcHAKaW5kZXggNDQxYjEyZDM0ZWE4ODFmMDJiZDM4ZjZiZDEwMjMwMjVmMzg2ZTgzNy4u
Mjg4YzE4NjI4MGNmNDdiZGEyOTA1MzM3MjhlMDI1ZGQ3MGViNTJiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dURi93dGYvV29ya1F1ZXVlLmNwcAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUu
Y3BwCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8d3RmL051bWJlck9mQ29yZXMuaD4KICNp
bmNsdWRlIDx3dGYvUmVmLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5oPgotI2luY2x1ZGUg
PHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVu
YXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV1RGIHsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri93dGYvZHRvYS5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAppbmRleCA4NDY1NTgzMGU5
MGZiN2ViNzU0ZWM3ZGQ5NDBiMjUzZWNhNWU0ZTUyLi42ODMzMTRmZmQ0ZTk4YTVmZGMwODU4NmZj
ODc3ODgxYjJhYjZjYWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9kdG9hLmNwcApAQCAtMTI3Miw3ICsxMjcyLDcgQEAgc3RhdGljIGlu
bGluZSBjb25zdCBjaGFyKiBmb3JtYXRTdHJpbmdUcnVuY2F0aW5nVHJhaWxpbmdaZXJvc0lmTmVl
ZGVkKE51bWJlclRvU3QKIAogY29uc3QgY2hhciogbnVtYmVyVG9GaXhlZFByZWNpc2lvblN0cmlu
Zyhkb3VibGUgZCwgdW5zaWduZWQgc2lnbmlmaWNhbnRGaWd1cmVzLCBOdW1iZXJUb1N0cmluZ0J1
ZmZlciBidWZmZXIsIGJvb2wgdHJ1bmNhdGVUcmFpbGluZ1plcm9zKQogewotICAgIC8vIE1pbWlj
IFN0cmluZzo6Zm9ybWF0KCIlLltwcmVjaXNpb25dZyIsIC4uLiksIGJ1dCB1c2UgZHRvYXMgcm91
bmRpbmcgZmFjaWxpdGllcy4KKyAgICAvLyBNaW1pYyBzcHJpbnRmKCIlLltwcmVjaXNpb25dZyIs
IC4uLiksIGJ1dCB1c2UgZHRvYXMgcm91bmRpbmcgZmFjaWxpdGllcy4KICAgICAvLyAiZyI6IFNp
Z25lZCB2YWx1ZSBwcmludGVkIGluIGYgb3IgZSBmb3JtYXQsIHdoaWNoZXZlciBpcyBtb3JlIGNv
bXBhY3QgZm9yIHRoZSBnaXZlbiB2YWx1ZSBhbmQgcHJlY2lzaW9uLgogICAgIC8vIFRoZSBlIGZv
cm1hdCBpcyB1c2VkIG9ubHkgd2hlbiB0aGUgZXhwb25lbnQgb2YgdGhlIHZhbHVlIGlzIGxlc3Mg
dGhhbiDigJM0IG9yIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUKICAgICAvLyBwcmVjaXNp
b24gYXJndW1lbnQuIFRyYWlsaW5nIHplcm9zIGFyZSB0cnVuY2F0ZWQsIGFuZCB0aGUgZGVjaW1h
bCBwb2ludCBhcHBlYXJzIG9ubHkgaWYgb25lIG9yIG1vcmUgZGlnaXRzIGZvbGxvdyBpdC4KQEAg
LTEyODcsNyArMTI4Nyw3IEBAIGNvbnN0IGNoYXIqIG51bWJlclRvRml4ZWRQcmVjaXNpb25TdHJp
bmcoZG91YmxlIGQsIHVuc2lnbmVkIHNpZ25pZmljYW50RmlndXJlcywKIAogY29uc3QgY2hhciog
bnVtYmVyVG9GaXhlZFdpZHRoU3RyaW5nKGRvdWJsZSBkLCB1bnNpZ25lZCBkZWNpbWFsUGxhY2Vz
LCBOdW1iZXJUb1N0cmluZ0J1ZmZlciBidWZmZXIpCiB7Ci0gICAgLy8gTWltaWMgU3RyaW5nOjpm
b3JtYXQoIiUuW3ByZWNpc2lvbl1mIiwgLi4uKSwgYnV0IHVzZSBkdG9hcyByb3VuZGluZyBmYWNp
bGl0aWVzLgorICAgIC8vIE1pbWljIHNwcmludGYoIiUuW3ByZWNpc2lvbl1mIiwgLi4uKSwgYnV0
IHVzZSBkdG9hcyByb3VuZGluZyBmYWNpbGl0aWVzLgogICAgIC8vICJmIjogU2lnbmVkIHZhbHVl
IGhhdmluZyB0aGUgZm9ybSBbIOKAkyBdZGRkZC5kZGRkLCB3aGVyZSBkZGRkIGlzIG9uZSBvciBt
b3JlIGRlY2ltYWwgZGlnaXRzLgogICAgIC8vIFRoZSBudW1iZXIgb2YgZGlnaXRzIGJlZm9yZSB0
aGUgZGVjaW1hbCBwb2ludCBkZXBlbmRzIG9uIHRoZSBtYWduaXR1ZGUgb2YgdGhlIG51bWJlciwg
YW5kCiAgICAgLy8gdGhlIG51bWJlciBvZiBkaWdpdHMgYWZ0ZXIgdGhlIGRlY2ltYWwgcG9pbnQg
ZGVwZW5kcyBvbiB0aGUgcmVxdWVzdGVkIHByZWNpc2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tp
bmdTdG9yZS5jcHAKaW5kZXggMjg1ZDUwMmRhZTgxYTlhNzY4YWEzNGExZDI1NmRmNTA0N2Q2MWJm
ZC4uNzQxNWVjODE4YTU0YTgyMmZiOWUzODBiMTlkNDg4MjkwMzQ4MGFlYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NR
TGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTU1LDYgKzU1LDcgQEAKICNpbmNsdWRlIDxKYXZh
U2NyaXB0Q29yZS9TdHJ1Y3R1cmVJbmxpbmVzLmg+CiAjaW5jbHVkZSA8d3RmL0ZpbGVTeXN0ZW0u
aD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcg
bmFtZXNwYWNlIEpTQzsKQEAgLTE4NDQsNyArMTg0NSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6YWRkUmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNh
Y3RpCiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSBkb24ndCBhbHJlYWR5IGhhdmUgYSBmaWxl
IGZvciB0aGlzIGJsb2JVUkwsIHNvIGNvbW1pdCBvdXIgZmlsZSBhcyBhIHVuaXF1ZSBmaWxlbmFt
ZQotICAgICAgICBTdHJpbmcgc3RvcmVkRmlsZW5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiJSIgUFJJ
ZDY0ICIuYmxvYiIsIHBvdGVudGlhbEZpbGVOYW1lSW50ZWdlcik7CisgICAgICAgIFN0cmluZyBz
dG9yZWRGaWxlbmFtZSA9IG1ha2VTdHJpbmcocG90ZW50aWFsRmlsZU5hbWVJbnRlZ2VyLCAiLmJs
b2IiKTsKICAgICAgICAgewogICAgICAgICAgICAgYXV0byogc3FsID0gY2FjaGVkU3RhdGVtZW50
KFNRTDo6QWRkQmxvYkZpbGVuYW1lLCAiSU5TRVJUIElOVE8gQmxvYkZpbGVzIFZBTFVFUyAoPywg
Pyk7Il9zKTsKICAgICAgICAgICAgIGlmICghc3FsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCQ3Vyc29ySW5mby5jcHAKaW5kZXggMGQz
ZTMzODhmOGYyNzJiMWRmYzM1NTY2OTlhNWJkODhjOWQ0NjQzMS4uMGU2ZDljZGViMWZlMWI3ZDc5
MDllZWM2NWM1M2UyODM2ZjI0NDM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkN1cnNvckluZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJDdXJzb3JJbmZvLmNwcApAQCAtMzEsNiArMzEs
NyBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb24u
aCIKICNpbmNsdWRlICJJbmRleGVkREIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0xMDAsMTMgKzEw
MSwxNSBAQCBJREJDdXJzb3JJbmZvIElEQkN1cnNvckluZm86Omlzb2xhdGVkQ29weSgpIGNvbnN0
CiB9CiAKICNpZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJREJDdXJzb3JJbmZvOjpsb2dnaW5n
U3RyaW5nKCkgY29uc3QKIHsKICAgICBpZiAobV9zb3VyY2UgPT0gSW5kZXhlZERCOjpDdXJzb3JT
b3VyY2U6OkluZGV4KQotICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjxDcnNyOiAlcyBJ
ZHggJSIgUFJJdTY0ICIsIE9TICUiIFBSSXU2NCAiLCB0eCAlcz4iLCBtX2N1cnNvcklkZW50aWZp
ZXIubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCksIG1fc291cmNlSWRlbnRpZmllciwgbV9v
YmplY3RTdG9yZUlkZW50aWZpZXIsIG1fdHJhbnNhY3Rpb25JZGVudGlmaWVyLmxvZ2dpbmdTdHJp
bmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxDcnNyOiAi
LCBtX2N1cnNvcklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLCAiIElkeCAiLCBtX3NvdXJjZUlk
ZW50aWZpZXIsICIsIE9TICIsIG1fb2JqZWN0U3RvcmVJZGVudGlmaWVyLCAiLCB0eCAiLCBtX3Ry
YW5zYWN0aW9uSWRlbnRpZmllci5sb2dnaW5nU3RyaW5nKCksICc+Jyk7CiAKLSAgICByZXR1cm4g
U3RyaW5nOjpmb3JtYXQoIjxDcnNyOiAlcyBPUyAlIiBQUkl1NjQgIiwgdHggJXM+IiwgbV9jdXJz
b3JJZGVudGlmaWVyLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBtX29iamVjdFN0b3Jl
SWRlbnRpZmllciwgbV90cmFuc2FjdGlvbklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLnV0Zjgo
KS5kYXRhKCkpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8Q3JzcjogIiwgbV9jdXJzb3JJZGVu
dGlmaWVyLmxvZ2dpbmdTdHJpbmcoKSwgIiBPUyAiLCBtX29iamVjdFN0b3JlSWRlbnRpZmllciwg
IiwgdHggIiwgbV90cmFuc2FjdGlvbklkZW50aWZpZXIubG9nZ2luZ1N0cmluZygpLCAnPicpOwog
fQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNEYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRBbGxSZWNv
cmRzRGF0YS5jcHAKaW5kZXggOTJiNmI5MjNkYzhmZTkyODcxZjdkYmJkOWU3MDQzNTAzMmE1OWQx
Yi4uYzk4NWQ3NDY2ODdmMjQ0MjFmZmVhMWIyZDQyODhkZjZjZDc1Nzc5MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldEFsbFJlY29yZHNE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
R2V0QWxsUmVjb3Jkc0RhdGEuY3BwCkBAIC0zOCwxMiArMzgsMTQgQEAgSURCR2V0QWxsUmVjb3Jk
c0RhdGEgSURCR2V0QWxsUmVjb3Jkc0RhdGE6Omlzb2xhdGVkQ29weSgpIGNvbnN0CiB9CiAKICNp
ZiAhTE9HX0RJU0FCTEVECisKIFN0cmluZyBJREJHZXRBbGxSZWNvcmRzRGF0YTo6bG9nZ2luZ1N0
cmluZygpIGNvbnN0CiB7CiAgICAgaWYgKGluZGV4SWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJu
IFN0cmluZzo6Zm9ybWF0KCI8R2V0QWxsUmVjb3JkczogSWR4ICUiIFBSSXU2NCAiLCBPUyAlIiBQ
Ukl1NjQgIiwgJXMsIHJhbmdlICVzPiIsIGluZGV4SWRlbnRpZmllciwgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBnZXRBbGxUeXBlID09IEluZGV4ZWREQjo6R2V0QWxsVHlwZTo6S2V5cyA/ICJLZXlz
IiA6ICJWYWx1ZXMiLCBrZXlSYW5nZURhdGEubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkp
OwotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiPEdldEFsbFJlY29yZHM6IE9TICUiIFBSSXU2
NCAiLCAlcywgcmFuZ2UgJXM+Iiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBnZXRBbGxUeXBlID09
IEluZGV4ZWREQjo6R2V0QWxsVHlwZTo6S2V5cyA/ICJLZXlzIiA6ICJWYWx1ZXMiLCBrZXlSYW5n
ZURhdGEubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICByZXR1cm4gbWFr
ZVN0cmluZygiPEdldEFsbFJlY29yZHM6IElkeCAiLCBpbmRleElkZW50aWZpZXIsICIsIE9TICIs
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgIiwgIiwgZ2V0QWxsVHlwZSA9PSBJbmRleGVkREI6Okdl
dEFsbFR5cGU6OktleXMgPyAiS2V5cyIgOiAiVmFsdWVzIiwgIiwgcmFuZ2UgIiwga2V5UmFuZ2VE
YXRhLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiPEdldEFs
bFJlY29yZHM6IE9TICIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwgIiwgIiwgZ2V0QWxsVHlwZSA9
PSBJbmRleGVkREI6OkdldEFsbFR5cGU6OktleXMgPyAiS2V5cyIgOiAiVmFsdWVzIiwgIiwgcmFu
Z2UgIiwga2V5UmFuZ2VEYXRhLmxvZ2dpbmdTdHJpbmcoKSwgJz4nKTsKIH0KKwogI2VuZGlmCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJHZXRSZWNvcmREYXRhLmNwcAppbmRleCBkNzg5
NjI2MDQ3Mjk2ZWQzZDE4NjY2Y2RlMzhkZGJlZGFkN2Y4ZDc4Li40NjM0NmRjMzQ5MjliZGNjZjAy
NjA2NDZiMDcyMmZlNTVlZWMyNDNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCR2V0UmVjb3JkRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkdldFJlY29yZERhdGEuY3BwCkBAIC0zOCwx
MCArMzgsMTIgQEAgSURCR2V0UmVjb3JkRGF0YSBJREJHZXRSZWNvcmREYXRhOjppc29sYXRlZENv
cHkoKSBjb25zdAogfQogCiAjaWYgIUxPR19ESVNBQkxFRAorCiBTdHJpbmcgSURCR2V0UmVjb3Jk
RGF0YTo6bG9nZ2luZ1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0
KCI8R2V0UmVjb3JkOiAlcyAlcz4iLCB0eXBlID09IElEQkdldFJlY29yZERhdGFUeXBlOjpLZXlP
bmx5ID8gIktleU9ubHkiIDogIktleStWYWx1ZSIsIGtleVJhbmdlRGF0YS5sb2dnaW5nU3RyaW5n
KCkudXRmOCgpLmRhdGEoKSk7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxHZXRSZWNvcmQ6ICIs
IHR5cGUgPT0gSURCR2V0UmVjb3JkRGF0YVR5cGU6OktleU9ubHkgPyAiS2V5T25seSIgOiAiS2V5
K1ZhbHVlIiwgJyAnLCBrZXlSYW5nZURhdGEubG9nZ2luZ1N0cmluZygpLCAnPicpOwogfQorCiAj
ZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAppbmRleCAyNzI5
MGY0YTRhNTRkOGRlZDliZjRiNzcxZTk5NTk3ODlkNjRhYmIwLi4xMmM1ZTZmMmI1YzljNzJhNjJj
ZjIwY2JlMDc0Zjk0NGFlY2Q3N2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcApAQCAtMjgsNiArMjgsOCBA
QAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBJREJJ
bmRleEluZm86OklEQkluZGV4SW5mbygpCkBAIC01MCwxOSArNTIsMjAgQEAgSURCSW5kZXhJbmZv
IElEQkluZGV4SW5mbzo6aXNvbGF0ZWRDb3B5KCkgY29uc3QKIH0KIAogI2lmICFMT0dfRElTQUJM
RUQKKwogU3RyaW5nIElEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25z
dAogewogICAgIFN0cmluZyBpbmRlbnRTdHJpbmc7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBp
bmRlbnQ7ICsraSkKICAgICAgICAgaW5kZW50U3RyaW5nLmFwcGVuZCgiICIpOwotCi0gICAgcmV0
dXJuIG1ha2VTdHJpbmcoaW5kZW50U3RyaW5nLCAiSW5kZXg6ICIsIG1fbmFtZSwgU3RyaW5nOjpm
b3JtYXQoIiAoJSIgUFJJdTY0ICIpIGtleVBhdGg6ICVzXG4iLCBtX2lkZW50aWZpZXIsIFdlYkNv
cmU6OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgcmV0dXJu
IG1ha2VTdHJpbmcoaW5kZW50U3RyaW5nLCAiSW5kZXg6ICIsIG1fbmFtZSwgIiAoIiwgbV9pZGVu
dGlmaWVyLCAiKSBrZXlQYXRoOiAiLCBXZWJDb3JlOjpsb2dnaW5nU3RyaW5nKG1fa2V5UGF0aCks
ICdcbicpOwogfQogCiBTdHJpbmcgSURCSW5kZXhJbmZvOjpjb25kZW5zZWRMb2dnaW5nU3RyaW5n
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjxJZHg6ICVzICglIiBQUkl1
NjQgIiksIE9TICglIiBQUkl1NjQgIik+IiwgbV9uYW1lLnV0ZjgoKS5kYXRhKCksIG1faWRlbnRp
ZmllciwgbV9vYmplY3RTdG9yZUlkZW50aWZpZXIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCI8
SWR4OiAiLCBtX25hbWUsICIgKCIsIG1faWRlbnRpZmllciwgIiksIE9TICgiLCBtX29iamVjdFN0
b3JlSWRlbnRpZmllciwgIik+Iik7CiB9CisKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQv
SURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkl0ZXJhdGVDdXJzb3JEYXRhLmNwcAppbmRleCBmYWFlZGE5ZmViZTc0MDRm
NDY0NzMzNDllMDFiMDMwZjk1ZTc5MzUwLi41OTNlMTQ4ZDI0NTI4MzBlMjkxZjZlNjViNmJmODk2
ZDA5NjgwMjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
aGFyZWQvSURCSXRlcmF0ZUN1cnNvckRhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJdGVyYXRlQ3Vyc29yRGF0YS5jcHAKQEAgLTM2LDEwICsz
NiwxMiBAQCBJREJJdGVyYXRlQ3Vyc29yRGF0YSBJREJJdGVyYXRlQ3Vyc29yRGF0YTo6aXNvbGF0
ZWRDb3B5KCkgY29uc3QKIH0KIAogI2lmICFMT0dfRElTQUJMRUQKKwogU3RyaW5nIElEQkl0ZXJh
dGVDdXJzb3JEYXRhOjpsb2dnaW5nU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5n
Ojpmb3JtYXQoIjxJdHI4Q3Jzcjoga2V5ICVzLCBwcmltYXJ5S2V5ICVzLCBjb3VudCAldT4iLCBr
ZXlEYXRhLmxvZ2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwcmltYXJ5S2V5RGF0YS5sb2dn
aW5nU3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgY291bnQpOworICAgIHJldHVybiBtYWtlU3RyaW5n
KCI8SXRyOENyc3I6IGtleSAiLCBrZXlEYXRhLmxvZ2dpbmdTdHJpbmcoKSwgIiwgcHJpbWFyeUtl
eSAiLCBwcmltYXJ5S2V5RGF0YS5sb2dnaW5nU3RyaW5nKCksICIsIGNvdW50ICIsIGNvdW50LCAn
PicpOwogfQorCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQk9iamVjdFN0b3JlSW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0
U3RvcmVJbmZvLmNwcAppbmRleCAwNGNhOTBiNzg1ZjRkMmRkMDBmNGY1OGM5NTQ3YTU3ODEyODUw
YTc0Li4yOTM4ZTkzMDZkZjFhZTNkYjA2NDNjMzZmZTQ1MzJiOWJhZjMxZTFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCT2JqZWN0U3RvcmVJ
bmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURC
T2JqZWN0U3RvcmVJbmZvLmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIFN0cmluZyBJREJPYmplY3RT
dG9yZUluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkgY29uc3QKIAogU3RyaW5nIElEQk9i
amVjdFN0b3JlSW5mbzo6Y29uZGVuc2VkTG9nZ2luZ1N0cmluZygpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuIFN0cmluZzo6Zm9ybWF0KCI8T1M6ICVzICglIiBQUkl1NjQgIik+IiwgbV9uYW1lLnV0Zjgo
KS5kYXRhKCksIG1faWRlbnRpZmllcik7CisgICAgcmV0dXJuIG1ha2VTdHJpbmcoIjxPUzogIiwg
bV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIpPiIpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXNvdXJjZUlk
ZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lE
QlJlc291cmNlSWRlbnRpZmllci5jcHAKaW5kZXggZjY3M2IyZGFiM2Q1MzRhNTljODZhZGY2ZDA0
ZDdkMWIwZTVkMzQ4Ni4uNjE2ZDU0ZmFkZjFlZGY2NDljMmM1NjJlNmI1YzU4NTMxNGJmMDRmNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJl
c291cmNlSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQlJlc291cmNlSWRlbnRpZmllci5jcHAKQEAgLTk5LDExICs5OSwxNCBAQCBi
b29sIElEQlJlc291cmNlSWRlbnRpZmllcjo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25z
dAogfQogCiAjaWYgIUxPR19ESVNBQkxFRAorCiBTdHJpbmcgSURCUmVzb3VyY2VJZGVudGlmaWVy
Ojpsb2dnaW5nU3RyaW5nKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIjwl
IiBQUkl1NjQiLCAlIiBQUkl1NjQiPiIsIG1faWRiQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fcmVz
b3VyY2VOdW1iZXIpOworICAgIHJldHVybiBtYWtlU3RyaW5nKCc8JywgbV9pZGJDb25uZWN0aW9u
SWRlbnRpZmllciwgIiwgIiwgbV9yZXNvdXJjZU51bWJlciwgJz4nKTsKIH0KKwogI2VuZGlmCisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShJTkRFWEVEX0RBVEFC
QVNFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNw
cAppbmRleCBjODc1ZjNiZjQ1OGM5ODM4ZmZlZmRmN2NmN2FjOTBmOWU5MmRkNmEyLi43YTUzZmVj
NDk5ODA0NmFlMTZmYjg4ODg2YmQ1MGVmMjA1Yzg0ZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtMTA3LDcgKzEwNyw3IEBAIHN0
YXRpYyBjb25zdCBjaGFyKiBmdWxseVF1YWxpZmllZEluZm9UYWJsZU5hbWUoKQogCiBzdGF0aWMg
U3RyaW5nIGZvcm1hdEVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBtZXNzYWdlLCBpbnQgc3FsaXRl
RXJyb3JDb2RlLCBjb25zdCBjaGFyKiBzcWxpdGVFcnJvck1lc3NhZ2UpCiB7Ci0gICAgcmV0dXJu
IFN0cmluZzo6Zm9ybWF0KCIlcyAoJWQgJXMpIiwgbWVzc2FnZSwgc3FsaXRlRXJyb3JDb2RlLCBz
cWxpdGVFcnJvck1lc3NhZ2UpOworICAgIHJldHVybiBtYWtlU3RyaW5nKG1lc3NhZ2UsICIgKCIs
IHNxbGl0ZUVycm9yQ29kZSwgJyAnLCBzcWxpdGVFcnJvck1lc3NhZ2UsICcpJyk7CiB9CiAKIHN0
YXRpYyBib29sIHNldFRleHRWYWx1ZUluRGF0YWJhc2UoU1FMaXRlRGF0YWJhc2UmIGRiLCBjb25z
dCBTdHJpbmcmIHF1ZXJ5LCBjb25zdCBTdHJpbmcmIHZhbHVlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxFcnJvci5oCmluZGV4IDRlMjc2Y2E3OGZjOTVkNzU5Y2Fk
MzBkZWFkMDdhZDZhMTc4ZTczMjYuLjZiMDcyYmJiNDI3YTg5YmJmZjNhYTA0MDAzYTlmZTcxZWQ4
MjkyN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
RXJyb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTEVycm9y
LmgKQEAgLTI5LDcgKzI5LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSA8d3RmL1RocmVh
ZFNhZmVSZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIApAQCAtMzgsMTEgKzM4LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFNR
TEVycm9yPiBjcmVhdGUodW5zaWduZWQgY29kZSwgY29uc3QgU3RyaW5nJiBtZXNzYWdlKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFNRTEVycm9yKGNvZGUsIG1lc3NhZ2UpKTsgfQogICAgIHN0YXRp
YyBSZWY8U1FMRXJyb3I+IGNyZWF0ZSh1bnNpZ25lZCBjb2RlLCBjb25zdCBjaGFyKiBtZXNzYWdl
LCBpbnQgc3FsaXRlQ29kZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBjcmVhdGUoY29kZSwgU3Ry
aW5nOjpmb3JtYXQoIiVzICglZCkiLCBtZXNzYWdlLCBzcWxpdGVDb2RlKSk7CisgICAgICAgIHJl
dHVybiBjcmVhdGUoY29kZSwgbWFrZVN0cmluZyhtZXNzYWdlLCAiICgiLCBzcWxpdGVDb2RlLCAn
KScpKTsKICAgICB9CiAgICAgc3RhdGljIFJlZjxTUUxFcnJvcj4gY3JlYXRlKHVuc2lnbmVkIGNv
ZGUsIGNvbnN0IGNoYXIqIG1lc3NhZ2UsIGludCBzcWxpdGVDb2RlLCBjb25zdCBjaGFyKiBzcWxp
dGVNZXNzYWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBTdHJpbmc6OmZv
cm1hdCgiJXMgKCVkICVzKSIsIG1lc3NhZ2UsIHNxbGl0ZUNvZGUsIHNxbGl0ZU1lc3NhZ2UpKTsK
KyAgICAgICAgcmV0dXJuIGNyZWF0ZShjb2RlLCBtYWtlU3RyaW5nKG1lc3NhZ2UsICIgKCIsIHNx
bGl0ZUNvZGUsICcgJywgc3FsaXRlTWVzc2FnZSwgJyknKSk7CiAgICAgfQogCiAgICAgdW5zaWdu
ZWQgY29kZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29kZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBmOTJlZDJkZWQ5OTE4
NDJlMjMzZmZlZGY2YzVmNTc0MDRiYWM5NmI2Li42YWY4OTNkNTNhNzJlNjQ4NzIzNmI4ZTUwMWQx
OThhMDMxM2M5MjZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQpAQCAtNDU3Miw3ICs0NTcyLDcgQEAgc3ViIEdlbmVyYXRlSW1w
bGVtZW50YXRpb24KICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihjZWxsKTtcbiIpOwogICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0
aGlzT2JqZWN0LT53cmFwcGVkKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpXG4iKTsKLSAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNl
bGwsIFN0cmluZzo6Zm9ybWF0KFwidXJsICVzXCIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpO1xuIik7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBcInVybCBcIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkpO1xuIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIEJhc2U6Omhl
YXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVu
dCwgIn1cblxuIik7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTSW50ZXJmYWNlTmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAppbmRleCA2ZDliZDE3YjZk
MTU0ZTBiZjBhNmZmOGIwMWIwMDFkMzM1NmRmZTZlLi4xNDFlYjhlZTU2OTA0Y2YzNzcyZDk2YmU2
ZmIzNGU0NzgyMzQwZmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNJbnRlcmZhY2VOYW1lLmNwcApAQCAtMTc2LDcgKzE3Niw3
IEBAIHZvaWQgSlNJbnRlcmZhY2VOYW1lOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFw
U25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNJbnRlcmZhY2VOYW1lKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1
aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTTWFwTGlrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNNYXBMaWtlLmNwcAppbmRleCAwNzljNjY2Mjk0YWVlY2E4Mjc0
YWUyYmNlNWVmZTRlYTc3YjE2YjRkLi4zNTY3YTcyZDA3ZmQ2YzdhZTFlNDhjYjNiMzQ4ODQ5ZjIw
ODg1M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNNYXBMaWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNNYXBMaWtlLmNwcApAQCAtMzQ1LDcgKzM0NSw3IEBAIHZvaWQgSlNNYXBMaWtlOjpo
ZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNNYXBMaWtlKj4oY2VsbCk7CiAgICAgYnVp
bGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgp
KTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwg
dGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwg
IiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkp
OwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBM
aWtlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1JlYWRP
bmx5TWFwTGlrZS5jcHAKaW5kZXggOTdkNGYzYWI0ZmExNjAyYWU0OTBhZTg2Yzk2ZTBjMzg0Nzhi
ZjkzNC4uYWIyODFmMDU5ZDZiMzE3YzJjOTIzM2QwYzY4MDlhMWZmNzk2Y2QzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTUmVhZE9ubHlNYXBM
aWtlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNS
ZWFkT25seU1hcExpa2UuY3BwCkBAIC0yOTQsNyArMjk0LDcgQEAgdm9pZCBKU1JlYWRPbmx5TWFw
TGlrZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVp
bGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTUmVhZE9ubHlNYXBMaWtlKj4o
Y2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA2Y2MyM2FkMDEzMWQx
MTJmMjJkYThkOGFkZjEyMDViYmIxYWRiMTU3Li4yYjYxNDE3NmZjMDgwOWE4NWE0ZjBiNjljN2Ri
ZmRjOWU5YWMyYmNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMjU1
LDcgKzI1NSw3IEBAIHZvaWQgSlNUZXN0QWN0aXZlRE9NT2JqZWN0OjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsCiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RBY3RpdmVET01PYmplY3QqPihjZWxsKTsKICAgICBidWlsZGVyLnNl
dFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAg
IGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rp
b25zLmNwcAppbmRleCA0YTAyNzkzNmI5ZGI5OTM2MGJmZGQ3OGE5N2I2YjM1ZDY0Njg2Y2FlLi5h
MWJkYWIxMGY1ZWEyOTY4ODBmYTA4ODIyZGFkY2UzZDFjMDhlNmFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJl
YWN0aW9ucy5jcHAKQEAgLTQzNSw3ICs0MzUsNyBAQCB2b2lkIEpTVGVzdENFUmVhY3Rpb25zOjpo
ZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWlsZGVyKQog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q0VSZWFjdGlvbnMqPihjZWxsKTsK
ICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53
cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
Ci0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1
cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2Vs
bCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q0VSZWFjdGlvbnNTdHJpbmdpZmllci5jcHAKaW5kZXggMzQyYTBk
ZjhkMWUyODM1Mjg0YmMzNmJlNjFkYmJiZjI3YmIyOGQwYy4uNTgwZTI0MzczOTNjNWUwZjg5Yzlh
Mjc1MmU3NDNlYzg5NDY2ODEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENFUmVhY3Rpb25zU3RyaW5naWZpZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDRVJlYWN0aW9uc1N0
cmluZ2lmaWVyLmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZvaWQgSlNUZXN0Q0VSZWFjdGlvbnNT
dHJpbmdpZmllcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDRVJlYWN0aW9uc1N0cmluZ2lm
aWVyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJp
bmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdENhbGxUcmFjZXIuY3BwCmluZGV4IDJlOGRlNTE0YmM0MzdlYzZi
NjM0YjVjNTIyMGZmNTIzMzU1ZDBjYzMuLjZiODFiZmZlNDk1ZTUwMGJjYmEzNDUxYzdmZDdiNmJl
ZTc3NTQyNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDYWxsVHJhY2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2FsbFRyYWNlci5jcHAKQEAgLTUyOCw3ICs1MjgsNyBAQCB2
b2lkIEpTVGVzdENhbGxUcmFjZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RDYWxsVHJhY2VyKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2Vs
bChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChj
ZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDbGFzc1dpdGhK
U0J1aWx0aW5Db25zdHJ1Y3Rvci5jcHAKaW5kZXggMDA4YjVlODk3Njg2OTVmMjVjODMzYmEzNDYw
MWQ0YmU1N2QwZTI0OC4uNWM4Yzc4NTU4YzU5YTJiMWIyMzY4YjBiYjYxNDNjMDZkMWNlMGEzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q2xhc3NXaXRoSlNCdWlsdGluQ29uc3RydWN0
b3IuY3BwCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBKU1Rlc3RDbGFzc1dpdGhKU0J1aWx0aW5D
b25zdHJ1Y3Rvcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG8KICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdENsYXNzV2l0aEpTQnVpbHRpbkNvbnN0cnVj
dG9yKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAm
dGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJp
bmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWls
ZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdERPTUpJVC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0RE9NSklULmNwcAppbmRleCA5NWQ3NjcwNDczODhlMzhjMDEwMDQyOTVk
OGNmMTM0NTZiZDQ0YmRlLi44M2IwZjdkOWU0YjUzOTRjMWRkNDAzNDRhNDY2ZTUzZDAzM2RiZWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RE9NSklULmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RE9NSklULmNwcApAQCAtMTI2Niw3ICsxMjY2LDcgQEAgdm9pZCBKU1Rlc3RET01K
SVQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxk
ZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RET01KSVQqPihjZWxsKTsK
ICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53
cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
Ci0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1
cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmlu
ZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2Vs
bCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
RW5hYmxlZEJ5U2V0dGluZy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0RW5hYmxlZEJ5U2V0dGluZy5jcHAKaW5kZXggNjYwYjk3NzViY2ZkNGEyMTUx
NWY4MGMyZmJlNTU2NDk4YjhkNmJlMy4uNGRmODEzMGZmNWY4MjJkMjQxZWNhNDlhYThhOWQ4MzQ4
MTA5NjQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEVuYWJsZWRCeVNldHRpbmcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFbmFibGVkQnlTZXR0aW5nLmNwcApAQCAtMzA3LDcg
KzMwNyw3IEBAIHZvaWQgSlNUZXN0RW5hYmxlZEJ5U2V0dGluZzo6aGVhcFNuYXBzaG90KEpTQ2Vs
bCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpCiAgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3RFbmFibGVkQnlTZXR0aW5nKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRX
cmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBp
ZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgp
KSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJh
c2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50Q29uc3RydWN0b3Iu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50
Q29uc3RydWN0b3IuY3BwCmluZGV4IDQ1ZGMxOTI3MDQ5YmUyNzIwNTUyYTk4YjdkZjIzNWIwZjVh
MTViZDAuLjMzZTJmOWQ0YTBmYzM4MWY5NjZhYjlmYjhiMWM5ZTcwOTJmMjg2YzggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudENv
bnN0cnVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTMxMSw3ICszMTEsNyBAQCB2b2lkIEpT
VGVzdEV2ZW50Q29uc3RydWN0b3I6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFw
c2hvdEJ1aWxkZXImIGJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZl
bnRDb25zdHJ1Y3Rvcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNl
bGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwo
Y2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3Qo
Y2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IDBlYzA2
NDA4ZmVmYjNhZWRiNWRjYmMxMjI4MWZkMWRiMGM5Mzg1ZDEuLjVmYzdjYjZjNTU1ZTc0NWJjZmJh
YmNhMDY0MzExOGM2ZDYxZjA3NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMjU0
LDcgKzI1NCw3IEBAIHZvaWQgSlNUZXN0RXZlbnRUYXJnZXQ6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFeGNlcHRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
aW5kZXggZDMyYzA0Y2M1MGVlZGYyNjllZDgwMWQ2OTEyM2Y2YjUwNTQwNDcyMS4uMzZkNjI0MTFh
OGQ5OWUxMzNlNzVhZTJiYjEyMDBiOTkzZDVkMGExNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV4Y2VwdGlvbi5jcHAK
QEAgLTE4NSw3ICsxODUsNyBAQCB2b2lkIEpTVGVzdEV4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpT
Q2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdEV4Y2VwdGlvbio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0
V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAg
aWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRl
ci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hh
YmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAppbmRleCBiMGQ5ZDQ5ZmM5MjY4M2Y1ZTFkNmZiOGZkNjg1
ZGY1ZDMzYjI0YmU4Li45ZjE2YjgyOGM4YjNkMmU5NTNlMzU1OGVhN2YyZTA1ODNmMjkzMzc5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCkBAIC0xOTQsNyArMTk0
LDcgQEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlOjpoZWFwU25hcHNob3QoSlNDZWxs
KiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJgogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHbG9iYWxPYmplY3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVj
dC5jcHAKaW5kZXggYjIwYjgzYzdiZTllNWIzN2I5Y2M1NzU4NjYzZTE3ODU1ODVlMzkyYy4uY2Vj
MzcxZjY4ZDRkYzdkYzk5MzY3MzNmNDdiNTU5ZmE3ZjRmOTE1NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2JhbE9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdsb2Jh
bE9iamVjdC5jcHAKQEAgLTYxNCw3ICs2MTQsNyBAQCB2b2lkIEpTVGVzdEdsb2JhbE9iamVjdDo6
aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlciYgYnVpbGRlcgog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0R2xvYmFsT2JqZWN0Kj4oY2VsbCk7
CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+
d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgi
dXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJp
bmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNl
bGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4
IDU3ODkyNTM3YmU4NzgzMjRhNWRkZThmNmQxYzU5MmMxYjk2MmI3MjUuLjA5M2FkY2JhNmU0NTY5
OGViNGQ2YmEyOTViNDkzNDBlYzFmZWFiNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIEpTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvdEJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggMzU1YWRjZDkwYWVmY2Y1OTVk
MDdlZDU0NmU0Y2FhYjIwYjNlZTI0NC4uNjE1ODAyZDk2ZTc3ZWNmNjFlNmU2Nzk3MmQ3YjZmZjk2
ZWM3NzkzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKQEAgLTI1Myw3ICsyNTMsNyBAQCB2b2lkIEpTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNu
YXBzaAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9y
Q2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1
aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hv
dChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCA3Njk2NzNhZmJiNGU2MjAxZDk0YzMyYTg0Y2Yy
NDllZTYwMzg4ZmU2Li5hODcxMjMxODc5YTlmMGI2NGRkNWNhOTk1YjQwMTY1NTAyNGFlNDAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNw
cApAQCAtMjg1LDcgKzI4NSw3IEBAIHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCCiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihj
ZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9y
bWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNl
bGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCmluZGV4IDZlYTNmOTc0NWIyYWI0ODI3NmM1MWFlM2Rl
YWE0YzFkNTgwOGEyNjkuLmQ2YzQxZmIxMGMzNTZkNTZkMGVmOWE3MjgxZTk4Yjc0NWNmMGVlMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCkBAIC0xMDIyLDcgKzEwMjIsNyBAQCB2b2lkIEpTVGVz
dEludGVyZmFjZTo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRl
ciYgYnVpbGRlcikKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEludGVyZmFj
ZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRo
aXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5n
Ojpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRl
cik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2Nv
cmUuY3BwCmluZGV4IGNmZjMyZmYwZWIzYWRkYTc3ZmU5NDYzYTJhNGY5OWNlNjU4YjQ5NzAuLmM5
NDE4MmMyNDQ0NDczZGQ3YzU3YWFiYWYzMGI1MTA4YTk2ZmNiMDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2VMZWFkaW5n
VW5kZXJzY29yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdEludGVyZmFjZUxlYWRpbmdVbmRlcnNjb3JlLmNwcApAQCAtMTg1LDcgKzE4NSw3
IEBAIHZvaWQgSlNUZXN0SW50ZXJmYWNlTGVhZGluZ1VuZGVyc2NvcmU6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RJbnRlcmZhY2VMZWFkaW5nVW5kZXJzY29yZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAg
ICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SXRlcmFibGUu
Y3BwCmluZGV4IGFjMWU4ZTdmOWVmODI5Mjc4ZTI0NTg0NWE2NjIzMWE1ZmNiY2FiMDguLjFhOTIz
NzQ3MGM4ZmQ2NTgxYmYwNDZhMDQwYTFlNmVhN2MxNzdhNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJdGVyYWJsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEl0ZXJhYmxlLmNw
cApAQCAtMjM4LDcgKzIzOCw3IEBAIHZvaWQgSlNUZXN0SXRlcmFibGU6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJdGVyYWJsZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0
V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAg
aWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRl
ci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEo
KSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBC
YXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RNZWRpYVF1ZXJ5TGlzdExp
c3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcAppbmRleCAwMGZhZjlmMDU3M2ZkMDA3NWRlOGRl
NTE0OWU4ZWI1MDg3NGM5NGZjLi5mYTc4ZDAzY2M1YmM3Y2Q5NzE3OTM0ZmIwMjY4ZjdmNDY3ZDU5
MGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwCkBA
IC0xOTQsNyArMTk0LDcgQEAgdm9pZCBKU1Rlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjpoZWFw
U25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGUKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIqPihjZWxsKTsKICAg
ICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFw
cGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0g
ICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwg
JXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygp
LnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwg
InVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJp
bmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuY3BwCmluZGV4IDk1MzEyMDcyOTU2MGE1MzI5OGM2MzA2M2JhOWFjMjA5NDYzM2MyNjYuLjM1
Yjc3YTc0ZGI2Nzg2OWY0ZGE3NjcyNjg0OGNhM2M2MzM5NTBjNTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCkBA
IC0zMTksNyArMzE5LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmEKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+
KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpm
b3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCmluZGV4IDA1OTU0NjIyZjA2ZGI0MzQ1NGQzYmJl
ZDJlMDYyMWE5MzE2MTI2ZTEuLmYxYjFkYTFiNTRiNGJhMjRjODc5NGU5MjFkYjU2NWI5OTFjOWRj
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcApAQCAtMzE5LDcgKzMxOSw3IEBAIHZvaWQgSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KGNlbGwpOwogICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAg
ICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3Bw
CmluZGV4IDU1YjVhZjMxOGE3YzBkNjdlZjZiYzc1MDhlNDQ2NzY2OTkxZDc1NjEuLmZiNjA4OWNi
ZDQxYTViZmUzMjgyNzM3YjIyNzE1OGQzMDgxN2ZlN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAt
MzczLDcgKzM3Myw3IEBAIHZvaWQgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTCiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+
KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpm
b3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRleCBmMWE4NGE4YmFk
OWE1ZDYwNWExMGU0OWQ5YzVjNDI3M2Q5OTI4N2UxLi4wMjJkM2NkYzNmZTk0MGMyNGVjYTg1YWIz
YmY4YjE4NGUwNmU3OGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCkBA
IC0yMDUsNyArMjA1LDcgQEAgdm9pZCBKU1Rlc3ROYW1lZENvbnN0cnVjdG9yOjpoZWFwU25hcHNo
b3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWkKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQ29uc3RydWN0b3IqPihjZWxsKTsKICAgICBidWls
ZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkp
OwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAi
ICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7
CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxl
dGVyTm9JZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCmluZGV4IDk3ZDgyNmE1OTEw
ZmFkODA4OGJmNjU1N2U5YWY3MTUwZGRiMjFjYTIuLmU3ZDkxZjhjODY4YzI1M2Q2Yjg4MDEyMTQy
NTUzMTEyYzNmOGQ4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXIuY3BwCkBAIC0yMzMsNyArMjMzLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWwK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwg
JnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3Ry
aW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCmluZGV4IGQxZWYzMDZiNmE5Y2QwZmY4MjY4YjBjNzY3YWJmOGY0N2Ji
NzA3MGYuLmE3ZDc2YmE3YTNkZWI1ODQ1MzA0YmU2NWM4OWQ4ZTBkYTI5ZGFmN2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcApA
QCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvCiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KGNl
bGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3Jt
YXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3Bw
CmluZGV4IGU0ZmEzOTEzMGEzOTY0ZDM0M2NiZWYzZGYwYzBmOGM3YTJlNTk0MGYuLjllZGFiNTkx
ZDk0ODM0OTY1MGFkMTIzOTE5ZjZiMzYzMTZkNTRkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIHZv
aWQgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3Jh
cHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYg
KHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5z
ZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkp
OworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNl
OjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCmluZGV4IGNmNDY0MGIyMzY1
Y2U0OGRmYTE0MDYxOGU4ZjJhNzI5NmVmYmFkMzIuLjJmYjYyNGEwMTViNGJhNzg5OGQ5MDkyNTBi
ZDA3NGM5MjBjYTZlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyLmNwcApAQCAtMjUwLDcgKzI1MCw3IEBAIHZvaWQgSlNUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2hvCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlcio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlckNh
bGxXaXRoLmNwcAppbmRleCA0MWE2MjgzZTM0ZWYzMmE1MzQwYTI4ZWY5MmI0NjQ2OGViYzE0YmI3
Li5mNTk1OTY5MDk4MDU3MzE4MGU4NjI0NmYxNDgzYmU5ZDAzMDkwZjJlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJD
YWxsV2l0aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkR2V0dGVyQ2FsbFdpdGguY3BwCkBAIC0yMTIsNyArMjEyLDcgQEAgdm9pZCBK
U1Rlc3ROYW1lZEdldHRlckNhbGxXaXRoOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFw
U25hcHNob3RCdWlsZGVyJgogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRHZXR0ZXJDYWxsV2l0aCo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZv
ckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3Qt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNl
bGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBi
dWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNo
b3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJO
b0lkZW50aWZpZXIuY3BwCmluZGV4IDI0OWZjOGRjODZiMDc5ODU0YTllOTdkMzVmYTUwNzM2Y2Q2
MjE1OTYuLmZhZTEwNGE4MzRjZDFkYjhhNGIyYTQxYTdjMTY3YzliN2JkMWY4YTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdl
dHRlck5vSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyTm9JZGVudGlmaWVyLmNwcApAQCAtMjEyLDcgKzIx
Miw3IEBAIHZvaWQgSlNUZXN0TmFtZWRHZXR0ZXJOb0lkZW50aWZpZXI6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3ROYW1lZEdldHRlck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAg
ICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZEdldHRlcldpdGhJZGVudGlmaWVyLmNwcAppbmRleCBlYTAyYTQyZWVmNGQ3
ZjM4N2RiY2Y5NjljNDQwMDRiNTdmYzMwN2FmLi45MThiMmQ2MWViZDZkMjJmNzA2MjE2NGY2NWRk
MjQxY2E0OGI0ODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRHZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkR2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCkBAIC0yNDAsNyArMjQwLDcgQEAgdm9pZCBKU1Rlc3ROYW1lZEdldHRlcldp
dGhJZGVudGlmaWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWkK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkR2V0dGVyV2l0aElkZW50
aWZpZXIqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGws
ICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0
cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1
aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcAppbmRleCBmNDMxYWRlMzE5N2VmOWVlOTgxODE5MDAzMTZiODA1MjY5NzJlMzY5Li4wMjFj
ZTFlYTE2NzQyZDM5MTBlYWIxZTk3NTZlMTY1NWZiZjc1N2IxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lk
IEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWlsZAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVh
cFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKaW5kZXggNjQ0MzdmY2ZkZWIyOWU2NjJm
M2Q3YzY5MDY4ZjZiMTFkMjg1MzZiZi4uMDUyYTFhMjI4MjVhYjRkNjA5OWI4ZGI2ZGExOGQ1MTc0
ZDUwYmEwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhcFNuYXBzaG90
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5n
RXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChj
ZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxs
LCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIu
c2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxs
LCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCmluZGV4IGU4MmQ3OTlkMWFmMTI0ODJlMDFkNTA3YzBmY2UwMTkwZDRkYTFk
NmIuLjBiOGY1ZGUxY2FjNjQxYWJkZjBmNjkwYmQ4MmRiYjA1ZDNmMjlhNzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAKQEAgLTMwNSw3ICsz
MDUsNyBAQCB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmhlYXBTbmFwc2hv
dChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGJ1aWxk
ZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7
CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAg
YnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgp
LmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIg
KyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsK
ICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhJbmRleGVkR2V0dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAppbmRleCA2NWUz
ZWQwMmUyMGJlMzNmM2I3N2NjYmRlNGQzNjVjY2JlMzYwNGMzLi4wOTBkYTE2M2ZjNTIwOTMxNzFj
YjRmZGMwNGFiZDZiZWI4NTc3ODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgdm9pZCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3QKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVk
U2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXIqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVh
cFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdl
dHRlckFuZFNldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNldHRlci5jcHAKaW5kZXgg
YTY5ZDBkNzRiYmI2YzE3NjljNGE4MDQ2YWFlMTdkMWU0YTNjNmI4YS4uNWQwYmEyM2M0NzZjOWM2
MjE1YjJjZTdlMTE1ZjM1NTk4MzljYWYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aEluZGV4ZWRHZXR0ZXJB
bmRTZXR0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyLmNwcApAQCAtMzk3
LDcgKzM5Nyw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSW5kZXhlZEdldHRlckFuZFNl
dHRlcjo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVhCiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJbmRleGVkR2V0dGVyQW5kU2V0dGVyKj4o
Y2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09i
amVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZv
cm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JD
ZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMuY3BwCmluZGV4IDFkODRlNzg0ODk5MThkNzdkODEzMGQ2OWNkM2FjMGQ1N2NlNjM2
YWMuLmYyNzYyOWM3YmJiM2EyYjg4YmI1NTZkMDllNzU0NTM2ZWI3YzQwMGUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAK
QEAgLTI2MSw3ICsyNjEsNyBAQCB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwcwogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucyo+
KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNP
YmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpm
b3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
PnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXMuY3BwCmluZGV4IGQwZTg1NGVlYTY2N2VkZjkwNmNhYWY1ZjNlMzg1
NWUyMjFlNDliYmMuLmQ0ZDk3MzhjZGIwMWI4NDI2YjY2M2MyMWZjODI5OGYxNDRiYTI2MzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzLmNwcApAQCAtMzQzLDcgKzM0Myw3IEBAIHZvaWQgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllcyo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
QW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKaW5kZXggY2JkYmFhMjhmNzNkZDBmNjFlNjZiODM5ZmQ0
ZjE4MmM5YjIyNmU4NS4uY2U1OWU3NDljMjczZTAxYzQ0MDlmNjY1M2FmNWRmYThkMDRkMmEzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAK
QEAgLTMzMCw3ICszMzAsNyBAQCB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluczo6aGVhcFNuYXBzaG90KAogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2Jq
ZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVs
Rm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAg
ICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBT
bmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCmluZGV4IDM1YTJkNjIzZjg5
Y2YwNDJlYjAyYjU1YzU2ZTg5OTU5MzBlZWUyMzIuLjI2NGJmOTYxNDIzYWNiNzgxOWJjZWJkYzkw
NGYyNzMwZTg4YThjMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKQEAgLTQyOSw3ICs0MjksNyBAQCB2b2lkIEpT
VGVzdE5vZGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXIm
IGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROb2RlKj4oY2Vs
bCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVj
dC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1h
dCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxs
KGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJs
KCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0T2JqLmNwcAppbmRleCAyMWMxMGM3Y2ZhYTM2ZGI3MTVjMjM1OWNhZjNiYTI3NjI3NGQwNmM1
Li5lYWUyZjI5ZTVmYjVjOGZjNmYzOGJmYmIyMDUwMDU1YzZlZjdjMzQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcApA
QCAtODU0Niw3ICs4NTQ2LDcgQEAgdm9pZCBKU1Rlc3RPYmo6OmhlYXBTbmFwc2hvdChKU0NlbGwq
IGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmpl
Y3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxG
b3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAg
ICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNu
YXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggMWFkYjcwMjEyZjQ1MWNjZTg1YjA4Y2RhMDM2ZmU0Nzgw
ODljMzk3OC4uNzcwOGVkYTNhYWRjNzNiZDEyZmYxNWVkNjhlMzE4ODYyOTcxNDgwMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMjU3LDcgKzI1
Nyw3IEBAIHZvaWQgSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yczo6aGVhcFNuYXBzaG90KEpT
Q2VsbCogY2VsbCwgSGVhcFNuYXBzaG90QnVpbGRlCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzKj4oY2VsbCk7CiAgICAgYnVpbGRlci5z
ZXRXcmFwcGVkT2JqZWN0Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAg
ICBpZiAodGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWls
ZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09i
amVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0
YSgpKSk7CisgICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAg
IEJhc2U6OmhlYXBTbmFwc2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25z
dHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2UuY3BwCmlu
ZGV4IGIwNTU2Njg1OTZiYzZmMjdjODJjNzE2ZmQyMzRlNWQ4MGFhOGE0YzUuLjM4MzEyNjk2NDA3
MzNlYzYzNWI3ZWNjNDZjODMzYjczZjU1MGFjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzV2l0
aFNlcXVlbmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZS5jcHAKQEAgLTIxMyw3
ICsyMTMsNyBAQCB2b2lkIEpTVGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnNXaXRoU2VxdWVuY2U6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbgogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9yc1dpdGhTZXF1ZW5jZSo+KGNlbGwp
OwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQo
InVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAppbmRleCA2YzZjMDQ0ZWZjNWYxYzcx
ZWE3MTNjMjEyYjAzOTUyZjZmOTQ0NDRhLi45YjVhMDI3MjMxNmM3NTgzYWYzMjdjMmJhZTk3ZjUy
Yzc5Y2M4Mzk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCkBAIC0yNDMs
NyArMjQzLDcgQEAgdm9pZCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpoZWFwU25hcHNob3QoSlND
ZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWlsZGVyJiBidWkKICAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMqPihjZWxsKTsKICAgICBidWlsZGVyLnNl
dFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAg
IGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxk
ZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2Jq
ZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhp
c09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAg
QmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0UGx1Z2luSW50ZXJmYWNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVn
aW5JbnRlcmZhY2UuY3BwCmluZGV4IGJlYzU3ZDU1MTdkNWIwOWM4ZDIwYTBhZGU0Mjk3Y2YwYWU4
ZGZjZWQuLmMzNDBlZGQ3NTc4OTVlZWNiMTFiNmZmYzMyMWQ1ODhjNTIyNDcyYTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RQbHVnaW5J
bnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RQbHVnaW5JbnRlcmZhY2UuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAgdm9pZCBKU1Rl
c3RQbHVnaW5JbnRlcmZhY2U6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hv
dEJ1aWxkZXImIGJ1aWwKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFBsdWdp
bkludGVyZmFjZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwo
Y2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2Vs
bCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVy
LnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRp
b25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2Vs
bCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RQcm9taXNlUmVqZWN0aW9uRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25FdmVu
dC5jcHAKaW5kZXggN2EyNTg5ODY3MTQ2MzBhMzA1M2JjNzQ4MWE1ZGUwZmVmMWJkNzk4Zi4uYzhk
YTVkZDA2YzhiMTRkNTg4MGZkMWZjZWVjOTRhZjYwMGUwY2Q5ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFByb21pc2VSZWplY3Rpb25F
dmVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudC5jcHAKQEAgLTI5Myw3ICsyOTMsNyBAQCB2b2lkIEpT
VGVzdFByb21pc2VSZWplY3Rpb25FdmVudDo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYXBzaG90QnVpbGRlcgogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0UHJv
bWlzZVJlamVjdGlvbkV2ZW50Kj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb24uY3BwCmlu
ZGV4IDc4ZDFjNDFjNDI4YzAxZTFmNzVmNmU5MWE2NGFlYjMwNWMwYTUyNWYuLmVhZjU3ZjhhODEz
NzJlMDFjM2ZmMTk1YWJkNTI0YjcyOTRkMTcwOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlv
bi5jcHAKQEAgLTU1MCw3ICs1NTAsNyBAQCB2b2lkIEpTVGVzdFNlcmlhbGl6YXRpb246OmhlYXBT
bmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZQogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U2VyaWFsaXphdGlvbio+KGNlbGwpOwogICAg
IGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBw
ZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAl
cyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCku
dXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAi
dXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmlu
ZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJp
YWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2Uu
Y3BwCmluZGV4IDEzM2VkYTAyZTY0MDE2M2ZjOWJlNjU0MzQ4MjBmYjkyNWYwNGMwYTQuLjY0OTIw
MDUyMjg0YWU1MjViMTJjNmU3MjBkODNkZTE3ZjRlY2U2ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJl
Y3RJbmhlcml0YW5jZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25JbmRpcmVjdEluaGVyaXRhbmNlLmNwcApAQCAtMTU0
LDcgKzE1NCw3IEBAIHZvaWQgSlNUZXN0U2VyaWFsaXphdGlvbkluZGlyZWN0SW5oZXJpdGFuY2U6
OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwCiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5kaXJlY3RJbmhlcml0YW5jZSo+KGNlbGwp
OwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQo
InVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXQuY3BwCmluZGV4IGFkNTMxYjIw
Yjc0YmM2ZDI1OTU2OTE4MmVhZWZjNTMxMWNmOGUwOTIuLjQ0NDJmNTEzOWJlYzk4YmU0YjExYTZi
MGQ4M2M3MzQ4YThjNDQzODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFNlcmlhbGl6YXRpb25Jbmhl
cml0LmNwcApAQCAtMjI5LDcgKzIyOSw3IEBAIHZvaWQgSlNUZXN0U2VyaWFsaXphdGlvbkluaGVy
aXQ6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImCiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdCo+KGNl
bGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3Jt
YXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsLmNwcApp
bmRleCBhMWFjMmQwMTBlNTFjNDgzN2MwZjBiNTQ2MjI4MDM0YWQwZGI4NGU4Li5iYTYxYmM1MmE4
NGY3MGZkMzQzMDFjMzhmNzNmOTcwZDRjOWYwZjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXphdGlvbkluaGVyaXRGaW5h
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dFNlcmlhbGl6YXRpb25Jbmhlcml0RmluYWwuY3BwCkBAIC0yNjMsNyArMjYzLDcgQEAgdm9pZCBK
U1Rlc3RTZXJpYWxpemF0aW9uSW5oZXJpdEZpbmFsOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxs
LCBIZWFwU25hcHNob3RCdWkKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNl
cmlhbGl6YXRpb25Jbmhlcml0RmluYWwqPihjZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRP
YmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2JqZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlz
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFi
ZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9ybWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAg
ICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVh
cFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCmluZGV4IGRmN2RmYjhmOTYxZDk0
ZmU4ZTI0ZjAxZDI0MWZiMjRmNmE5NGZhZWYuLjQyYjI4MzZmOWQyZTc5MTczNTk0NTQ4NDY0M2Rj
YTI4ZjU2N2VkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTZXJpYWxpemVkU2Ny
aXB0VmFsdWVJbnRlcmZhY2UuY3BwCkBAIC0zNTMsNyArMzUzLDcgQEAgdm9pZCBKU1Rlc3RTZXJp
YWxpemVkU2NyaXB0VmFsdWVJbnRlcmZhY2U6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhl
YXBTbmFwc2gKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZUludGVyZmFjZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVj
dEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmpl
Y3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZv
ckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAg
ICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3Jp
cHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25h
cHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXIuY3BwCmluZGV4
IDUyNDJiYjhiYWFjNmZjOGNhMTQwNDA2MGYxNTBiYjFkZDdjMDE1ZGYuLjMxMzkyY2I5MjBiNzlm
YmJjYjM0ZWRkMjllMTQ3ODRlZWUyYTM2YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyLmNwcApA
QCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXI6OmhlYXBTbmFwc2hvdChK
U0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxkZXIpCiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllcio+KGNlbGwpOwogICAgIGJ1aWxkZXIu
c2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAg
ICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVp
bGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRh
dGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0
aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAg
ICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFu
b255bW91c09wZXJhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb24uY3BwCmluZGV4IDdjYWUy
NDM5ZWY2MjdiNmMyNjYxNzM5NGI5MWNjOGI4MDRmZjA1NWIuLjU4Y2QwZmY5NDA5MmJjZTA0YzI5
MWZmZjMyYjBkNmRhZTM5ZDFiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllckFub255bW91c09wZXJhdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyQW5vbnltb3VzT3BlcmF0aW9uLmNwcApAQCAtMTg3LDcgKzE4Nyw3IEBAIHZvaWQgSlNU
ZXN0U3RyaW5naWZpZXJBbm9ueW1vdXNPcGVyYXRpb246OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNl
bGwsIEhlYXBTbmFwc2hvCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJp
bmdpZmllckFub255bW91c09wZXJhdGlvbio+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBl
ZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRo
aXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRM
YWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOwor
ICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0
LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpo
ZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RT
dHJpbmdpZmllck5hbWVkT3BlcmF0aW9uLmNwcAppbmRleCA1MGE0NmY2MTRmOTg0OGI3NjkyODVl
MTYzODkwNzNjMTI5MTU3ZmQxLi5jOWIyNWYwYWQ5ZDZiYjgzZTc2MGU0MmFjOTQxMWFiYWUxY2U5
YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJOYW1lZE9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24u
Y3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllck5hbWVkT3BlcmF0
aW9uOjpoZWFwU25hcHNob3QoSlNDZWxsKiBjZWxsLCBIZWFwU25hcHNob3RCdWkKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyTmFtZWRPcGVyYXRpb24qPihj
ZWxsKTsKICAgICBidWlsZGVyLnNldFdyYXBwZWRPYmplY3RGb3JDZWxsKGNlbGwsICZ0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkpOwogICAgIGlmICh0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpCi0gICAgICAgIGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsIFN0cmluZzo6Zm9y
bWF0KCJ1cmwgJXMiLCB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNl
bGwoY2VsbCwgInVybCAiICsgdGhpc09iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT51
cmwoKS5zdHJpbmcoKSk7CiAgICAgQmFzZTo6aGVhcFNuYXBzaG90KGNlbGwsIGJ1aWxkZXIpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0U3RyaW5naWZpZXJPcGVyYXRpb25JbXBsZW1lbnRlZEFzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbklt
cGxlbWVudGVkQXMuY3BwCmluZGV4IDBhMzNhZjM3OGEyYjEyMTlmMjkyODRkYzg5ZTE2ZDM4Yjcy
NDc3OWQuLjM1ZDg2M2E4NWQ2MjQ5NzQ4MGIxYTVmODQ1NDliYWU0ZWZkMWYxOTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
Zmllck9wZXJhdGlvbkltcGxlbWVudGVkQXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbkltcGxlbWVudGVk
QXMuY3BwCkBAIC0yMDIsNyArMjAyLDcgQEAgdm9pZCBKU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlv
bkltcGxlbWVudGVkQXM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmEKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uSW1wbGVt
ZW50ZWRBcyo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2Vs
bCwgJnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwg
U3RyaW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNl
dExhYmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwg
YnVpbGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllck9wZXJhdGlvbk5hbWVkVG9TdHJpbmcuY3BwIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVy
T3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKaW5kZXggNDkwNDkxNzRlMDM2ZjVmMTgwNjI0NGMz
ZjJlYmQxOWUxNjk2MmU0NC4uNmJhNGNkMWZkMDU4MTBlYTc5ZDgxZmM4YWYwYmI4YzY0YzYyNjFi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyT3BlcmF0aW9u
TmFtZWRUb1N0cmluZy5jcHAKQEAgLTE4Nyw3ICsxODcsNyBAQCB2b2lkIEpTVGVzdFN0cmluZ2lm
aWVyT3BlcmF0aW9uTmFtZWRUb1N0cmluZzo6aGVhcFNuYXBzaG90KEpTQ2VsbCogY2VsbCwgSGVh
cFNuYQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJPcGVy
YXRpb25OYW1lZFRvU3RyaW5nKj4oY2VsbCk7CiAgICAgYnVpbGRlci5zZXRXcmFwcGVkT2JqZWN0
Rm9yQ2VsbChjZWxsLCAmdGhpc09iamVjdC0+d3JhcHBlZCgpKTsKICAgICBpZiAodGhpc09iamVj
dC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKQotICAgICAgICBidWlsZGVyLnNldExhYmVsRm9y
Q2VsbChjZWxsLCBTdHJpbmc6OmZvcm1hdCgidXJsICVzIiwgdGhpc09iamVjdC0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgICAg
IGJ1aWxkZXIuc2V0TGFiZWxGb3JDZWxsKGNlbGwsICJ1cmwgIiArIHRoaXNPYmplY3QtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3RyaW5nKCkpOwogICAgIEJhc2U6OmhlYXBTbmFw
c2hvdChjZWxsLCBidWlsZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmlu
Z2lmaWVyUmVhZE9ubHlBdHRyaWJ1dGUuY3BwCmluZGV4IGM5YzUyNjk4YjgyZDNmZmYyN2QyMzQ0
ZmRkYjU1NDNkMDkyY2E0MDYuLjQxNTIzYTVhZjJhYzFlODY5YTlhZDEwZDM4NGVmNGQ0ZDA3ODQ4
YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RTdHJpbmdpZmllclJlYWRPbmx5QXR0cmlidXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZS5jcHAKQEAgLTIwOSw3ICsyMDksNyBAQCB2b2lkIEpTVGVzdFN0cmluZ2lmaWVyUmVhZE9u
bHlBdHRyaWJ1dGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdAogICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0U3RyaW5naWZpZXJSZWFkT25seUF0dHJp
YnV0ZSo+KGNlbGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwg
JnRoaXNPYmplY3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3Ry
aW5nOjpmb3JtYXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExh
YmVsRm9yQ2VsbChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPnVybCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVp
bGRlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0U3RyaW5naWZpZXJSZWFkV3Jp
dGVBdHRyaWJ1dGUuY3BwCmluZGV4IDc1ZWMzOGFkYjhmZTg4OTMwNDYwMzUzNDZiNTY0NDZkN2Iy
YjYyZjQuLjdjYzYwZTgwYzhlMzIxMTE2NDc3NzNhNmMwMDQzNTkzMzRmNDhkM2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RTdHJpbmdp
ZmllclJlYWRXcml0ZUF0dHJpYnV0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdFN0cmluZ2lmaWVyUmVhZFdyaXRlQXR0cmlidXRlLmNwcApA
QCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgSlNUZXN0U3RyaW5naWZpZXJSZWFkV3JpdGVBdHRyaWJ1
dGU6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvCiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RTdHJpbmdpZmllclJlYWRXcml0ZUF0dHJpYnV0ZSo+KGNl
bGwpOwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmpl
Y3QtPndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3Jt
YXQoInVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCku
c3RyaW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2Vs
bChjZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVy
bCgpLnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RUeXBlZGVmcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0VHlwZWRlZnMuY3BwCmluZGV4IDBlYjg2N2U1NDFiMTk3MjIzYjk1YTU2M2I0Mzcz
MWUzZWI3YjE3MTguLjkwNmI2NmRlOGZhMjJjZDI3MzVlYjliMzZmOWZmZWU4MGEyODNiNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RU
eXBlZGVmcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdFR5cGVkZWZzLmNwcApAQCAtNzQ5LDcgKzc0OSw3IEBAIHZvaWQgSlNUZXN0VHlwZWRl
ZnM6OmhlYXBTbmFwc2hvdChKU0NlbGwqIGNlbGwsIEhlYXBTbmFwc2hvdEJ1aWxkZXImIGJ1aWxk
ZXIpCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RUeXBlZGVmcyo+KGNlbGwp
OwogICAgIGJ1aWxkZXIuc2V0V3JhcHBlZE9iamVjdEZvckNlbGwoY2VsbCwgJnRoaXNPYmplY3Qt
PndyYXBwZWQoKSk7CiAgICAgaWYgKHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSkKLSAgICAgICAgYnVpbGRlci5zZXRMYWJlbEZvckNlbGwoY2VsbCwgU3RyaW5nOjpmb3JtYXQo
InVybCAlcyIsIHRoaXNPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+dXJsKCkuc3Ry
aW5nKCkudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBidWlsZGVyLnNldExhYmVsRm9yQ2VsbChj
ZWxsLCAidXJsICIgKyB0aGlzT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnVybCgp
LnN0cmluZygpKTsKICAgICBCYXNlOjpoZWFwU25hcHNob3QoY2VsbCwgYnVpbGRlcik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzLmNwcAppbmRleCBlNmRiZWQ3YWIyN2ZjOTNhMjViZDAzZGZhOWUzYjhlOTZhMTNhNDM3
Li5hNTJiMTk1OGIzZmU5NWVkYWQ4YTU4YWUyZDU2ODg5YzY3OWJkMjY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3Bw
CkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVQb29sLmgiCiAjaW5jbHVkZSAi
UGFpci5oIgogI2luY2x1ZGUgIlN0eWxlQ29sb3IuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJp
bmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC03MjEs
OSArNzIyLDkgQEAgc3RhdGljIENvbG9yIHBhcnNlSGV4Q29sb3IoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSYgcmFuZ2UsIGJvb2wgYWNjZXB0UXVpcmt5Q29sb3JzKQogICAgICAgICAgICAgICAgIHx8IHRv
a2VuLm51bWVyaWNWYWx1ZSgpIDwgMC4gfHwgdG9rZW4ubnVtZXJpY1ZhbHVlKCkgPj0gMTAwMDAw
MC4pCiAgICAgICAgICAgICAgICAgcmV0dXJuIENvbG9yKCk7CiAgICAgICAgICAgICBpZiAodG9r
ZW4udHlwZSgpID09IE51bWJlclRva2VuKSAvLyBlLmcuIDExMjIzMwotICAgICAgICAgICAgICAg
IGNvbG9yID0gU3RyaW5nOjpmb3JtYXQoIiVkIiwgc3RhdGljX2Nhc3Q8aW50Pih0b2tlbi5udW1l
cmljVmFsdWUoKSkpOworICAgICAgICAgICAgICAgIGNvbG9yID0gU3RyaW5nOjpudW1iZXIoc3Rh
dGljX2Nhc3Q8aW50Pih0b2tlbi5udW1lcmljVmFsdWUoKSkpOwogICAgICAgICAgICAgZWxzZSAv
LyBlLmcuIDAwMDFGRgotICAgICAgICAgICAgICAgIGNvbG9yID0gU3RyaW5nOjpudW1iZXIoc3Rh
dGljX2Nhc3Q8aW50Pih0b2tlbi5udW1lcmljVmFsdWUoKSkpICsgdG9rZW4udmFsdWUoKS50b1N0
cmluZygpOworICAgICAgICAgICAgICAgIGNvbG9yID0gbWFrZVN0cmluZyhzdGF0aWNfY2FzdDxp
bnQ+KHRva2VuLm51bWVyaWNWYWx1ZSgpKSwgdG9rZW4udmFsdWUoKS50b1N0cmluZygpKTsKICAg
ICAgICAgICAgIHdoaWxlIChjb2xvci5sZW5ndGgoKSA8IDYpCiAgICAgICAgICAgICAgICAgY29s
b3IgPSAiMCIgKyBjb2xvcjsKICAgICAgICAgfSBlbHNlIGlmICh0b2tlbi50eXBlKCkgPT0gSWRl
bnRUb2tlbikgeyAvLyBlLmcuIEZGMDAwMApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcAppbmRleCA1ZGUzMjBlODI4ZWNkN2ViMGMzOWM1MzVhNTliNDUyOGVlNzBhYmZh
Li5kNDk5YjkxYjgwZDAxNDM1M2I4ZjM2YWIxZjA4ZjdiYjUzZGZmZDM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNTUsNiArNTUsNyBAQAogI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3BhdGlhbE5hdmlnYXRpb24uaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTQ1OCw3ICs0NTks
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MU2VsZWN0RWxlbWVudDo6c2V0SXRlbSh1bnNpZ25l
ZCBpbmRleCwgSFRNTE9wdGlvbkVsZW1lbnQqCiBFeGNlcHRpb25Pcjx2b2lkPiBIVE1MU2VsZWN0
RWxlbWVudDo6c2V0TGVuZ3RoKHVuc2lnbmVkIG5ld0xlbmd0aCkKIHsKICAgICBpZiAobmV3TGVu
Z3RoID4gbGVuZ3RoKCkgJiYgbmV3TGVuZ3RoID4gbWF4U2VsZWN0SXRlbXMpIHsKLSAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBTdHJpbmc6OmZvcm1hdCgiQmxvY2tlZCBhdHRlbXB0IHRvIGV4cGFu
ZCB0aGUgb3B0aW9uIGxpc3QgdG8gJXUgaXRlbXMuIFRoZSBtYXhpbXVtIG51bWJlciBvZiBpdGVt
cyBhbGxvd2VkIGlzICV1LiIsIG5ld0xlbmd0aCwgbWF4U2VsZWN0SXRlbXMpKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpPdGhlciwgTWVzc2Fn
ZUxldmVsOjpXYXJuaW5nLCBtYWtlU3RyaW5nKCJCbG9ja2VkIGF0dGVtcHQgdG8gZXhwYW5kIHRo
ZSBvcHRpb24gbGlzdCB0byAiLCBuZXdMZW5ndGgsICIgaXRlbXMuIFRoZSBtYXhpbXVtIG51bWJl
ciBvZiBpdGVtcyBhbGxvd2VkIGlzICIsIG1heFNlbGVjdEl0ZW1zLCAnLicpKTsKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlRG9jdW1lbnQuY3BwCmlu
ZGV4IDhlY2NhNzA5YzEwZDFkMzYzN2ZiZDUzZWMzOTkwYmRjODdiZTI2YWYuLmY0MjkyMjMyZTlk
YzIyZDcyOWFiNTk1MDg5NmFiODY4ODM4MGEyZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZURv
Y3VtZW50LmNwcApAQCAtNDksNiArNDksNyBAQAogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHd0Zi9Jc29NYWxsb2NJbmxpbmVzLmg+
CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApAQCAtMjczLDcgKzI3NCw3IEBAIHZvaWQgSW1hZ2VEb2N1bWVudDo6
aW1hZ2VVcGRhdGVkKCkKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgICAgICBGbG9hdFNp
emUgc2NyZWVuU2l6ZSA9IHBhZ2UoKS0+Y2hyb21lKCkuc2NyZWVuU2l6ZSgpOwogICAgICAgICBp
ZiAoaW1hZ2VTaXplLndpZHRoKCkgPiBzY3JlZW5TaXplLndpZHRoKCkpCi0gICAgICAgICAgICBw
cm9jZXNzVmlld3BvcnQoU3RyaW5nOjpmb3JtYXQoIndpZHRoPSV1LHZpZXdwb3J0LWZpdD1jb3Zl
ciIsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihpbWFnZVNpemUud2lkdGgoKS50b0ludCgpKSksIFZp
ZXdwb3J0QXJndW1lbnRzOjpJbWFnZURvY3VtZW50KTsKKyAgICAgICAgICAgIHByb2Nlc3NWaWV3
cG9ydChtYWtlU3RyaW5nKCJ3aWR0aD0iLCBpbWFnZVNpemUud2lkdGgoKS50b0ludCgpLCAiLHZp
ZXdwb3J0LWZpdD1jb3ZlciIpLCBWaWV3cG9ydEFyZ3VtZW50czo6SW1hZ2VEb2N1bWVudCk7CiAK
ICAgICAgICAgaWYgKHBhZ2UoKSkKICAgICAgICAgICAgIHBhZ2UoKS0+Y2hyb21lKCkuY2xpZW50
KCkuaW1hZ2VPck1lZGlhRG9jdW1lbnRTaXplQ2hhbmdlZChJbnRTaXplKGltYWdlU2l6ZS53aWR0
aCgpLCBpbWFnZVNpemUuaGVpZ2h0KCkpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1hTU0F1ZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNT
QXVkaXRvci5jcHAKaW5kZXggNWVlZGI0NDBkMjk0NWUzZDFhNGUxMjEyYmM5YzI5YmFhZjljZGJi
Ni4uZGE5YzMzM2Y1NDc5NjU3MDM1Zjc0ZWFkYjJkM2Q1MGY2MWFhNTgzZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9wYXJzZXIvWFNTQXVkaXRvci5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAKICNpbmNs
dWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5j
bHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmll
dy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMzMiw3ICszMzIsNyBAQCB2b2lkIFhTU0F1ZGl0b3I6
OmluaXQoRG9jdW1lbnQqIGRvY3VtZW50LCBYU1NBdWRpdG9yRGVsZWdhdGUqIGF1ZGl0b3JEZWxl
Z2F0ZSkKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgICAgICBpZiAobV94c3NQcm90ZWN0
aW9uID09IFhTU1Byb3RlY3Rpb25EaXNwb3NpdGlvbjo6SW52YWxpZCkgewotICAgICAgICAgICAg
ZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNz
YWdlTGV2ZWw6OkVycm9yLCAiRXJyb3IgcGFyc2luZyBoZWFkZXIgWC1YU1MtUHJvdGVjdGlvbjog
IiArIGhlYWRlclZhbHVlICsgIjogIiAgKyBlcnJvckRldGFpbHMgKyAiIGF0IGNoYXJhY3RlciBw
b3NpdGlvbiAiICsgU3RyaW5nOjpmb3JtYXQoIiV1IiwgZXJyb3JQb3NpdGlvbikgKyAiLiBUaGUg
ZGVmYXVsdCBwcm90ZWN0aW9ucyB3aWxsIGJlIGFwcGxpZWQuIik7CisgICAgICAgICAgICBkb2N1
bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VM
ZXZlbDo6RXJyb3IsIG1ha2VTdHJpbmcoIkVycm9yIHBhcnNpbmcgaGVhZGVyIFgtWFNTLVByb3Rl
Y3Rpb246ICIsIGhlYWRlclZhbHVlLCAiOiAiLCBlcnJvckRldGFpbHMsICIgYXQgY2hhcmFjdGVy
IHBvc2l0aW9uICIsIGVycm9yUG9zaXRpb24sICIuIFRoZSBkZWZhdWx0IHByb3RlY3Rpb25zIHdp
bGwgYmUgYXBwbGllZC4iKSk7CiAgICAgICAgICAgICBtX3hzc1Byb3RlY3Rpb24gPSBYU1NQcm90
ZWN0aW9uRGlzcG9zaXRpb246OkVuYWJsZWQ7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuY3Bw
CmluZGV4IGEwYzM4ODdhNmVmYzJhMDUxYzNhMzUzMTQ3ZDcxMzZjZjhhYzhhYjQuLjI0M2Q4NDlj
OWJmMWExZTU5ZDhmYTc0ODc0ODkyYjI2NTIyMjZlMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5jcHAKQEAg
LTIwNSw3ICsyMDUsNyBAQCBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmNhbkF0
dGFjaFdpbmRvdygpCiAKIHZvaWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2V0RG9j
a2luZ1VuYXZhaWxhYmxlKGJvb2wgdW5hdmFpbGFibGUpCiB7Ci0gICAgZXZhbHVhdGVPbkxvYWQo
U3RyaW5nOjpmb3JtYXQoIltcInNldERvY2tpbmdVbmF2YWlsYWJsZVwiLCAlc10iLCB1bmF2YWls
YWJsZSA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICBldmFsdWF0ZU9uTG9hZChtYWtlU3RyaW5n
KCJbXCJzZXREb2NraW5nVW5hdmFpbGFibGVcIiwgIiwgdW5hdmFpbGFibGUgPyAidHJ1ZSIgOiAi
ZmFsc2UiLCAnXScpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpj
aGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCkBAIC0yNzAsNyArMjcw
LDcgQEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXRBdHRhY2hlZFdpbmRv
dyhEb2NrU2lkZSBkb2NrU2lkZSkKIAogICAgIG1fZG9ja1NpZGUgPSBkb2NrU2lkZTsKIAotICAg
IGV2YWx1YXRlT25Mb2FkKFN0cmluZzo6Zm9ybWF0KCJbXCJzZXREb2NrU2lkZVwiLCBcIiVzXCJd
Iiwgc2lkZSkpOworICAgIGV2YWx1YXRlT25Mb2FkKG1ha2VTdHJpbmcoIltcInNldERvY2tTaWRl
XCIsIFwiIiwgc2lkZSwgIlwiXSIpKTsKIH0KIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVu
dExvY2FsOjpyZXN0b3JlQXR0YWNoZWRXaW5kb3dIZWlnaHQoKQpAQCAtMjk0LDcgKzI5NCw3IEBA
IGJvb2wgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6aXNEZWJ1Z2dpbmdFbmFibGVkKCkK
IAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzZXREZWJ1Z2dpbmdFbmFibGVk
KGJvb2wgZW5hYmxlZCkKIHsKLSAgICBldmFsdWF0ZU9uTG9hZChTdHJpbmc6OmZvcm1hdCgiW1wi
c2V0RGVidWdnaW5nRW5hYmxlZFwiLCAlc10iLCBlbmFibGVkID8gInRydWUiIDogImZhbHNlIikp
OworICAgIGV2YWx1YXRlT25Mb2FkKG1ha2VTdHJpbmcoIltcInNldERlYnVnZ2luZ0VuYWJsZWRc
IiwgIiwgZW5hYmxlZCA/ICJ0cnVlIiA6ICJmYWxzZSIsICddJykpOwogfQogCiBib29sIEluc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGltZWxpbmVQcm9maWxpbmdFbmFibGVkKCkKQEAg
LTMwNiw3ICszMDYsNyBAQCBib29sIEluc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWw6OmlzVGlt
ZWxpbmVQcm9maWxpbmdFbmFibGVkKCkKIAogdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExv
Y2FsOjpzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIGV2
YWx1YXRlT25Mb2FkKFN0cmluZzo6Zm9ybWF0KCJbXCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJs
ZWRcIiwgJXNdIiwgZW5hYmxlZCA/ICJ0cnVlIiA6ICJmYWxzZSIpKTsKKyAgICBldmFsdWF0ZU9u
TG9hZChtYWtlU3RyaW5nKCJbXCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWRcIiwgIiwgZW5h
YmxlZCA/ICJ0cnVlIiA6ICJmYWxzZSIsICddJykpOwogfQogCiBib29sIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50TG9jYWw6OmlzUHJvZmlsaW5nSmF2YVNjcmlwdCgpCkBAIC0zMzksNyArMzM5LDcg
QEAgdm9pZCBJbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsOjpzaG93UmVzb3VyY2VzKCkKIHZv
aWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6c2hvd01haW5SZXNvdXJjZUZvckZyYW1l
KEZyYW1lKiBmcmFtZSkKIHsKICAgICBTdHJpbmcgZnJhbWVJZCA9IG1faW5zcGVjdGVkUGFnZUNv
bnRyb2xsZXItPnBhZ2VBZ2VudCgpLT5mcmFtZUlkKGZyYW1lKTsKLSAgICBldmFsdWF0ZU9uTG9h
ZChTdHJpbmc6OmZvcm1hdCgiW1wic2hvd01haW5SZXNvdXJjZUZvckZyYW1lXCIsIFwiJXNcIl0i
LCBmcmFtZUlkLmFzY2lpKCkuZGF0YSgpKSk7CisgICAgZXZhbHVhdGVPbkxvYWQobWFrZVN0cmlu
ZygiW1wic2hvd01haW5SZXNvdXJjZUZvckZyYW1lXCIsIFwiIiwgZnJhbWVJZCwgIlwiXSIpKTsK
IH0KIAogdW5zaWduZWQgSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbDo6Y29uc3RyYWluZWRB
dHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBwcmVmZXJyZWRIZWlnaHQsIHVuc2lnbmVkIHRv
dGFsV2luZG93SGVpZ2h0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Fn
ZW50cy9JbnNwZWN0b3JDU1NBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdl
bnRzL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCA0NTc3NjUyNTc5YWY1NjQ5N2M1MmJlYjJk
OWRjMTI1YjQ1ZWQ1NGQ4Li5kNWEyMjc0MTMzOWQ1MjQwOTI5ODhjYWQ4NzAxNWE3MTc2MTFhZWIy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckNT
U0FnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3Rv
ckNTU0FnZW50LmNwcApAQCAtNjIsOCArNjIsNyBAQAogI2luY2x1ZGUgPHd0Zi9SZWYuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+Ci0KKyNpbmNsdWRlIDx3dGYvdGV4
dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBA
IC0xNTcsNyArMTU2LDcgQEAgcHJpdmF0ZToKIAogICAgIFN0cmluZyBtZXJnZUlkKCkgZmluYWwK
ICAgICB7Ci0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiU2V0U3R5bGVTaGVldFRleHQg
JXMiLCBtX3N0eWxlU2hlZXQtPmlkKCkudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIHJldHVybiAi
U2V0U3R5bGVTaGVldFRleHQgIiArIG1fc3R5bGVTaGVldC0+aWQoKTsKICAgICB9CiAKICAgICB2
b2lkIG1lcmdlKHN0ZDo6dW5pcXVlX3B0cjxBY3Rpb24+IGFjdGlvbikgb3ZlcnJpZGUKQEAgLTE5
OCw3ICsxOTcsNyBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIG1lcmdlSWQoKSBvdmVycmlkZQogICAg
IHsKICAgICAgICAgQVNTRVJUKG1fc3R5bGVTaGVldC0+aWQoKSA9PSBtX2Nzc0lkLnN0eWxlU2hl
ZXRJZCgpKTsKLSAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJTZXRTdHlsZVRleHQgJXM6
JXUiLCBtX3N0eWxlU2hlZXQtPmlkKCkudXRmOCgpLmRhdGEoKSwgbV9jc3NJZC5vcmRpbmFsKCkp
OworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiU2V0U3R5bGVUZXh0ICIsIG1fc3R5bGVTaGVl
dC0+aWQoKSwgJzonLCBtX2Nzc0lkLm9yZGluYWwoKSk7CiAgICAgfQogCiAgICAgdm9pZCBtZXJn
ZShzdGQ6OnVuaXF1ZV9wdHI8QWN0aW9uPiBhY3Rpb24pIG92ZXJyaWRlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckluZGV4ZWREQkFnZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwCmluZGV4IDk2YmM4N2VmOGMxYWZkODk3YmQyNmJmMjI2OWU0MTA1NTk0ZGVhOGEuLjZk
NTg4MWVhMGU2NjRjYmJjZTJhODVmOGQ5ZGUwOTNmYjQzY2NhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9ySW5kZXhlZERCQWdl
bnQuY3BwCkBAIC02OCw2ICs2OCw3IEBACiAjaW5jbHVkZSA8d3RmL0pTT05WYWx1ZXMuaD4KICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Cisj
aW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIHVzaW5nIEpT
T046OkFycmF5T2Y7CiB1c2luZyBJbnNwZWN0b3I6OlByb3RvY29sOjpJbmRleGVkREI6OkRhdGFi
YXNlV2l0aE9iamVjdFN0b3JlczsKQEAgLTcxMSw3ICs3MTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
ICAgICBhdXRvIHJlc3VsdCA9IGlkYk9iamVjdFN0b3JlLT5jbGVhcigqZXhlYyk7CiAgICAgICAg
ICAgICBBU1NFUlQoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSk7CiAgICAgICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKSB7Ci0gICAgICAgICAgICAgICAgbV9yZXF1ZXN0Q2FsbGJhY2st
PnNlbmRGYWlsdXJlKFN0cmluZzo6Zm9ybWF0KCJDb3VsZCBub3QgY2xlYXIgb2JqZWN0IHN0b3Jl
ICclcyc6ICVkIiwgbV9vYmplY3RTdG9yZU5hbWUudXRmOCgpLmRhdGEoKSwgcmVzdWx0LnJlbGVh
c2VFeGNlcHRpb24oKS5jb2RlKCkpKTsKKyAgICAgICAgICAgICAgICBtX3JlcXVlc3RDYWxsYmFj
ay0+c2VuZEZhaWx1cmUobWFrZVN0cmluZygiQ291bGQgbm90IGNsZWFyIG9iamVjdCBzdG9yZSAn
IiwgbV9vYmplY3RTdG9yZU5hbWUsICInOiAiLCBzdGF0aWNfY2FzdDxpbnQ+KHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCkuY29kZSgpKSkpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIGlkYlJlcXVlc3QgPSByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJlbGVhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9NZW1vcnlSZWxlYXNlLmNwcAppbmRleCAwOGYwNGE0NmRj
YmNmZDQyMmQzOTgzZmIwYTNiNTVmMzgzN2EwOTNiLi4xZjVmNjMzMDg0MzNlZWEwZWVjMThiNDk3
NTY3ZDk2M2QxMWNlMjk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL01lbW9yeVJl
bGVhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTWVtb3J5UmVsZWFzZS5jcHAKQEAg
LTE2OSw3ICsxNjksNyBAQCB2b2lkIGxvZ01lbW9yeVN0YXRpc3RpY3NBdFRpbWVPZkRlYXRoKCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTdHJpbmcgdGFnTmFtZSA9IGRpc3BsYXlO
YW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFtZSkKLSAgICAgICAgICAgIHRhZ05h
bWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFnICV1IiwgaSk7CisgICAgICAgICAgICB0YWdOYW1lID0g
bWFrZVN0cmluZygiVGFnICIsIGkpOwogICAgICAgICBSRUxFQVNFX0xPRyhNZW1vcnlQcmVzc3Vy
ZSwgIiUxNnM6ICVsdSBNQiIsIHRhZ05hbWUubGF0aW4xKCkuZGF0YSgpLCBkaXJ0eSAvIE1CKTsK
ICAgICB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVz
b3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVz
b3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQppbmRleCA0YjVjNjMxMDk2MzIxMTg0YzY4YTEyZTJm
NmFiYjAzZjhkN2E5ZGY1Li5mZGY0YTIzMGVhZWFiMDhlYjMwZTc2Y2M0MmNjZWVjZDMwYTVhYmYz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVy
bGF5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdl
T3ZlcmxheUNvY29hLm1tCkBAIC00MzEsNyArNDMxLDcgQEAgc3RhdGljIFN0cmluZyBmb3JtYXRC
eXRlTnVtYmVyKHNpemVfdCBudW1iZXIpCiAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgi
JS4yZiBNQiIsIHN0YXRpY19jYXN0PGRvdWJsZT4obnVtYmVyKSAvIDEwNDg1NzYpOwogICAgIGlm
IChudW1iZXIgPj0gMTAyNCkKICAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCIlLjFmIGtC
Iiwgc3RhdGljX2Nhc3Q8ZG91YmxlPihudW1iZXIpIC8gMTAyNCk7Ci0gICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCIlbHUiLCBudW1iZXIpOworICAgIHJldHVybiBTdHJpbmc6Om51bWJlcihudW1i
ZXIpOwogfQogCiBzdGF0aWMgU3RyaW5nIGdjVGltZXJTdHJpbmcoTW9ub3RvbmljVGltZSB0aW1l
ckZpcmVEYXRlLCBNb25vdG9uaWNUaW1lIG5vdykKQEAgLTQ2OSw5ICs0NjksOSBAQCB2b2lkIFJl
c291cmNlVXNhZ2VPdmVybGF5OjpwbGF0Zm9ybURyYXcoQ0dDb250ZXh0UmVmIGNvbnRleHQpCiAg
ICAgICAgIAogICAgICAgICBTdHJpbmcgbGFiZWwgPSBTdHJpbmc6OmZvcm1hdCgiJSAxMXM6ICVz
IiwgY2F0ZWdvcnkubmFtZS5hc2NpaSgpLmRhdGEoKSwgZm9ybWF0Qnl0ZU51bWJlcihkaXJ0eSku
YXNjaWkoKS5kYXRhKCkpOwogICAgICAgICBpZiAoZXh0ZXJuYWwpCi0gICAgICAgICAgICBsYWJl
bCA9IGxhYmVsICsgU3RyaW5nOjpmb3JtYXQoIiArICVzIiwgZm9ybWF0Qnl0ZU51bWJlcihleHRl
cm5hbCkuYXNjaWkoKS5kYXRhKCkpOworICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCArIG1ha2VT
dHJpbmcoIiArICIsIGZvcm1hdEJ5dGVOdW1iZXIoZXh0ZXJuYWwpKTsKICAgICAgICAgaWYgKHJl
Y2xhaW1hYmxlKQotICAgICAgICAgICAgbGFiZWwgPSBsYWJlbCArIFN0cmluZzo6Zm9ybWF0KCIg
WyVzXSIsIGZvcm1hdEJ5dGVOdW1iZXIocmVjbGFpbWFibGUpLmFzY2lpKCkuZGF0YSgpKTsKKyAg
ICAgICAgICAgIGxhYmVsID0gbGFiZWwgKyBtYWtlU3RyaW5nKCIgWyIsIGZvcm1hdEJ5dGVOdW1i
ZXIocmVjbGFpbWFibGUpLCAnXScpOwogCiAgICAgICAgIC8vIEZJWE1FOiBTaG93IHNpemUvY2Fw
YWNpdHkgb2YgR0MgaGVhcC4KICAgICAgICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHksIGNhdGVn
b3J5LmNvbG9yLmdldCgpLCBsYWJlbCk7CkBAIC00ODAsOCArNDgwLDggQEAgdm9pZCBSZXNvdXJj
ZVVzYWdlT3ZlcmxheTo6cGxhdGZvcm1EcmF3KENHQ29udGV4dFJlZiBjb250ZXh0KQogICAgIHkg
LT0gNTsKIAogICAgIE1vbm90b25pY1RpbWUgbm93ID0gTW9ub3RvbmljVGltZTo6bm93KCk7Ci0g
ICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAxMCwgY29sb3JGb3JMYWJlbHMsIFN0cmluZzo6
Zm9ybWF0KCIgICAgRWRlbiBHQzogJXMiLCBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEVk
ZW5Db2xsZWN0aW9uLCBub3cpLmFzY2lpKCkuZGF0YSgpKSk7Ci0gICAgc2hvd1RleHQoY29udGV4
dCwgMTAsIHkgKyAyMCwgY29sb3JGb3JMYWJlbHMsIFN0cmluZzo6Zm9ybWF0KCIgICAgRnVsbCBH
QzogJXMiLCBnY1RpbWVyU3RyaW5nKGRhdGEudGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9uLCBub3cp
LmFzY2lpKCkuZGF0YSgpKSk7CisgICAgc2hvd1RleHQoY29udGV4dCwgMTAsIHkgKyAxMCwgY29s
b3JGb3JMYWJlbHMsICIgICAgRWRlbiBHQzogIiArIGdjVGltZXJTdHJpbmcoZGF0YS50aW1lT2ZO
ZXh0RWRlbkNvbGxlY3Rpb24sIG5vdykpOworICAgIHNob3dUZXh0KGNvbnRleHQsIDEwLCB5ICsg
MjAsIGNvbG9yRm9yTGFiZWxzLCAiICAgIEZ1bGwgR0M6ICIgKyBnY1RpbWVyU3RyaW5nKGRhdGEu
dGltZU9mTmV4dEZ1bGxDb2xsZWN0aW9uLCBub3cpKTsKIAogICAgIGRyYXdDcHVIaXN0b3J5KGNv
bnRleHQsIHZpZXdCb3VuZHMuc2l6ZS53aWR0aCAtIDcwLCAwLCB2aWV3Qm91bmRzLnNpemUuaGVp
Z2h0LCBkYXRhLmNwdSk7CiAgICAgZHJhd0dDSGlzdG9yeShjb250ZXh0LCB2aWV3Qm91bmRzLnNp
emUud2lkdGggLSAxNDAsIDAsIHZpZXdCb3VuZHMuc2l6ZS5oZWlnaHQsIGRhdGEuZ2NIZWFwU2l6
ZSwgZGF0YS5jYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdLmRpcnR5U2l6ZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VUaHJlYWRD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENv
Y29hLm1tCmluZGV4IGQ4ZTU0YmU5ZDM0MzYxYmFjNDZhMjE1YTM4YTNjMWZhMGZlZGU3YjkuLjg5
NTYxNzJlNzEwMzFlNGU5YzZiNzJkMzdjNzUwMTI3MjUwZTlkNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZVRocmVhZENvY29hLm1tCkBAIC0z
Niw2ICszNiw3IEBACiAjaW5jbHVkZSA8bWFjaC92bV9zdGF0aXN0aWNzLmg+CiAjaW5jbHVkZSA8
cGFsL3NwaS9jb2NvYS9NYWNoVk1TUEkuaD4KICNpbmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTYzLDcgKzY0LDcgQEAgdm9pZCBsb2dGb290cHJpbnRDb21w
YXJpc29uKGNvbnN0IHN0ZDo6YXJyYXk8VGFnSW5mbywgMjU2PiYgYmVmb3JlLCBjb25zdCBzdGQ6
OmEKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBTdHJpbmcgdGFnTmFtZSA9IGRpc3Bs
YXlOYW1lRm9yVk1UYWcoaSk7CiAgICAgICAgIGlmICghdGFnTmFtZSkKLSAgICAgICAgICAgIHRh
Z05hbWUgPSBTdHJpbmc6OmZvcm1hdCgiVGFnICV1IiwgaSk7CisgICAgICAgICAgICB0YWdOYW1l
ID0gbWFrZVN0cmluZygiVGFnICIsIGkpOwogICAgICAgICBXVEZMb2dBbHdheXMoIiAgJTAyWCAl
MTZzICUxMGxkICUxMGxkICUxMGxkIiwKICAgICAgICAgICAgIGksCiAgICAgICAgICAgICB0YWdO
YW1lLmFzY2lpKCkuZGF0YSgpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YW5pbWF0aW9uL1RpbWluZ0Z1bmN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Fu
aW1hdGlvbi9UaW1pbmdGdW5jdGlvbi5jcHAKaW5kZXggY2ZkMGIzNjAyNzkzOWQ0Yjg2YWZkNmZl
N2U4NzNlMDRmYjg2ZmY2NS4uOTQwNzM0MjA2NWZlOWZjNTI4ZDU0NTc0NDQ2Mzc2YTFkNGQ3ZDdk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYW5pbWF0aW9uL1RpbWluZ0Z1
bmN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hbmltYXRpb24vVGltaW5n
RnVuY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiU3ByaW5nU29sdmVyLmgi
CiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0aWVzLmgiCiAjaW5jbHVkZSAiVW5pdEJlemllci5oIgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUg
PHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMTgxLDcg
KzE4Miw3IEBAIFN0cmluZyBUaW1pbmdGdW5jdGlvbjo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgaWYg
KG1fdHlwZSA9PSBUaW1pbmdGdW5jdGlvbjo6U3RlcHNGdW5jdGlvbikgewogICAgICAgICBhdXRv
JiBmdW5jdGlvbiA9IGRvd25jYXN0PFN0ZXBzVGltaW5nRnVuY3Rpb24+KCp0aGlzKTsKICAgICAg
ICAgaWYgKCFmdW5jdGlvbi5zdGVwQXRTdGFydCgpKQotICAgICAgICAgICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KCJzdGVwcyglZCkiLCBmdW5jdGlvbi5udW1iZXJPZlN0ZXBzKCkpOworICAgICAg
ICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoInN0ZXBzKCIsIGZ1bmN0aW9uLm51bWJlck9mU3RlcHMo
KSwgJyknKTsKICAgICB9CiAKICAgICBUZXh0U3RyZWFtIHN0cmVhbTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9BVlRyYWNrUHJpdmF0
ZUFWRk9iakNJbXBsLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KaW5kZXggNmU0OGZkYWYxODU5MDcw
YTI2OTM0YmNiNjA2ZmU1YTQwY2ZiZGUyYy4uZWI2OTg4ODQwYTEzMDcxNTc4MzFmZTM4YWFiMjNm
MGU4NWE4YmU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGwubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0FWVHJhY2tQcml2YXRlQVZGT2Jq
Q0ltcGwubW0KQEAgLTE4MCw3ICsxODAsNyBAQCBpbnQgQVZUcmFja1ByaXZhdGVBVkZPYmpDSW1w
bDo6aW5kZXgoKSBjb25zdAogQXRvbWljU3RyaW5nIEFWVHJhY2tQcml2YXRlQVZGT2JqQ0ltcGw6
OmlkKCkgY29uc3QKIHsKICAgICBpZiAobV9hc3NldFRyYWNrKQotICAgICAgICByZXR1cm4gU3Ry
aW5nOjpmb3JtYXQoIiVkIiwgW21fYXNzZXRUcmFjayB0cmFja0lEXSk7CisgICAgICAgIHJldHVy
biBBdG9taWNTdHJpbmc6Om51bWJlcihbbV9hc3NldFRyYWNrIHRyYWNrSURdKTsKICAgICBpZiAo
bV9tZWRpYVNlbGVjdGlvbk9wdGlvbikKICAgICAgICAgcmV0dXJuIFtbbV9tZWRpYVNlbGVjdGlv
bk9wdGlvbi0+YXZNZWRpYVNlbGVjdGlvbk9wdGlvbigpIG9wdGlvbklEXSBzdHJpbmdWYWx1ZV07
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVNhbXBsZUFWRk9iakMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
U2FtcGxlQVZGT2JqQy5oCmluZGV4IDYwZWU5NmY0MDI0MzM2MjJmNTg1NDEyNmZmYjIzOTUxMDY5
OGNlMzEuLjk2NmNjZDU1NjlmOWUwNmI2ZjlhNTgxOTk3YWE3YjM4OWQxZGQyMzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01l
ZGlhU2FtcGxlQVZGT2JqQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhU2FtcGxlQVZGT2JqQy5oCkBAIC04NCw3ICs4NCw3IEBA
IHByb3RlY3RlZDoKICAgICB9CiAgICAgTWVkaWFTYW1wbGVBVkZPYmpDKENNU2FtcGxlQnVmZmVy
UmVmIHNhbXBsZSwgaW50IHRyYWNrSUQpCiAgICAgICAgIDogbV9zYW1wbGUoc2FtcGxlKQotICAg
ICAgICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgdHJhY2tJRCkpCisgICAgICAgICwgbV9p
ZChBdG9taWNTdHJpbmc6Om51bWJlcih0cmFja0lEKSkKICAgICB7CiAgICAgfQogICAgIE1lZGlh
U2FtcGxlQVZGT2JqQyhDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGUsIFZpZGVvUm90YXRpb24gcm90
YXRpb24sIGJvb2wgbWlycm9yZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAppbmRleCBlNGY2N2NkMWFiMzlkOGQ5
NmRiYmQ2MGU2YjMyZDAwMjI2NTBmM2YxLi45Nzc4OGZhMDkzNDlhZjJmMTIwNDliZGEwZjMyNDc5
NTE3MGM3MDA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9HcmFwaGljc0xheWVyQ0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKQEAgLTUyLDggKzUyLDggQEAKICNpbmNsdWRlIDx3
dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNs
dWRlIDx3dGYvU3lzdGVtVHJhY2luZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNh
dGVuYXRlTnVtYmVycy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLSNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAj
aW5jbHVkZSAiU3lzdGVtTWVtb3J5LmgiCkBAIC0xMTAxLDcgKzExMDEsNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6c2V0Q29udGVudHNUb1NvbGlkQ29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQog
ICAgICAgICAgICAgbV9jb250ZW50c0xheWVyUHVycG9zZSA9IENvbnRlbnRzTGF5ZXJQdXJwb3Nl
OjpCYWNrZ3JvdW5kQ29sb3I7CiAgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXIgPSBjcmVhdGVQ
bGF0Zm9ybUNBTGF5ZXIoUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVMYXllciwgdGhpcyk7CiAj
aWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICAgICAgbV9jb250ZW50c0xheWVyLT5z
ZXROYW1lKFN0cmluZzo6Zm9ybWF0KCJjb250ZW50cyBjb2xvciAlbGx1IiwgbV9jb250ZW50c0xh
eWVyLT5sYXllcklEKCkpKTsKKyAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmFtZSht
YWtlU3RyaW5nKCJjb250ZW50cyBjb2xvciAiLCBtX2NvbnRlbnRzTGF5ZXItPmxheWVySUQoKSkp
OwogI2Vsc2UKICAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmFtZSgiY29udGVudHMg
Y29sb3IiKTsKICNlbmRpZgpAQCAtMjU2Niw3ICsyNTY2LDcgQEAgdm9pZCBHcmFwaGljc0xheWVy
Q0E6OnVwZGF0ZUNvbnRlbnRzSW1hZ2UoKQogICAgICAgICBpZiAoIW1fY29udGVudHNMYXllci5n
ZXQoKSkgewogICAgICAgICAgICAgbV9jb250ZW50c0xheWVyID0gY3JlYXRlUGxhdGZvcm1DQUxh
eWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIHRoaXMpOwogI2lmIEVOQUJMRShU
UkVFX0RFQlVHR0lORykKLSAgICAgICAgICAgIG1fY29udGVudHNMYXllci0+c2V0TmFtZShTdHJp
bmc6OmZvcm1hdCgiY29udGVudHMgaW1hZ2UgJWxsdSIsIG1fY29udGVudHNMYXllci0+bGF5ZXJJ
RCgpKSk7CisgICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5hbWUobWFrZVN0cmluZygi
Y29udGVudHMgaW1hZ2UgIiwgbV9jb250ZW50c0xheWVyLT5sYXllcklEKCkpKTsKICNlbHNlCiAg
ICAgICAgICAgICBtX2NvbnRlbnRzTGF5ZXItPnNldE5hbWUoImNvbnRlbnRzIGltYWdlIik7CiAj
ZW5kaWYKQEAgLTI2NzIsNyArMjY3Miw3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjp1cGRhdGVD
b250ZW50c1JlY3RzKCkKICAgICAgICAgICAgIG1fY29udGVudHNDbGlwcGluZ0xheWVyID0gY3Jl
YXRlUGxhdGZvcm1DQUxheWVyKFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXIsIHRoaXMp
OwogICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldEFuY2hvclBvaW50KEZs
b2F0UG9pbnQoKSk7CiAjaWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICAgICAgbV9j
b250ZW50c0NsaXBwaW5nTGF5ZXItPnNldE5hbWUoU3RyaW5nOjpmb3JtYXQoImNvbnRlbnRzIGNs
aXBwaW5nICVsbHUiLCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+bGF5ZXJJRCgpKSk7CisgICAg
ICAgICAgICBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJjb250
ZW50cyBjbGlwcGluZyAiLCBtX2NvbnRlbnRzQ2xpcHBpbmdMYXllci0+bGF5ZXJJRCgpKSk7CiAj
ZWxzZQogICAgICAgICAgICAgbV9jb250ZW50c0NsaXBwaW5nTGF5ZXItPnNldE5hbWUoImNvbnRl
bnRzIGNsaXBwaW5nIik7CiAjZW5kaWYKQEAgLTMxNTYsNyArMzE1Niw3IEBAIGJvb2wgR3JhcGhp
Y3NMYXllckNBOjphcHBlbmRUb1VuY29tbWl0dGVkQW5pbWF0aW9ucyhjb25zdCBLZXlmcmFtZVZh
bHVlTGlzdCYgdmFsCiAgICAgZm9yIChpbnQgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4ID0g
MDsgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4IDwgbnVtQW5pbWF0ZWRQcm9wZXJ0aWVzOyAr
K2ludGVybmFsRmlsdGVyUHJvcGVydHlJbmRleCkgewogICAgICAgICBib29sIHZhbHVlc09LOwog
ICAgICAgICBSZWZQdHI8UGxhdGZvcm1DQUFuaW1hdGlvbj4gY2FBbmltYXRpb247Ci0gICAgICAg
IFN0cmluZyBrZXlQYXRoID0gU3RyaW5nOjpmb3JtYXQoImZpbHRlcnMuZmlsdGVyXyVkLiVzIiwg
YW5pbWF0aW9uSW5kZXgsIFBsYXRmb3JtQ0FGaWx0ZXJzOjphbmltYXRlZEZpbHRlclByb3BlcnR5
TmFtZShmaWx0ZXJPcCwgaW50ZXJuYWxGaWx0ZXJQcm9wZXJ0eUluZGV4KSk7CisgICAgICAgIFN0
cmluZyBrZXlQYXRoID0gbWFrZVN0cmluZygiZmlsdGVycy5maWx0ZXJfIiwgYW5pbWF0aW9uSW5k
ZXgsICcuJywgUGxhdGZvcm1DQUZpbHRlcnM6OmFuaW1hdGVkRmlsdGVyUHJvcGVydHlOYW1lKGZp
bHRlck9wLCBpbnRlcm5hbEZpbHRlclByb3BlcnR5SW5kZXgpKTsKICAgICAgICAgCiAgICAgICAg
IGlmIChpc0tleWZyYW1lKSB7CiAgICAgICAgICAgICBjYUFuaW1hdGlvbiA9IGNyZWF0ZUtleWZy
YW1lQW5pbWF0aW9uKGFuaW1hdGlvbiwga2V5UGF0aCwgZmFsc2UpOwpAQCAtMzkxNCw3ICszOTE0
LDcgQEAgUmVmUHRyPFBsYXRmb3JtQ0FMYXllcj4gR3JhcGhpY3NMYXllckNBOjpmaW5kT3JNYWtl
Q2xvbmUoQ2xvbmVJRCBjbG9uZUlELCBQbGF0Zm8KICAgICB9IGVsc2UgewogICAgICAgICByZXN1
bHRMYXllciA9IGNsb25lTGF5ZXIoc291cmNlTGF5ZXIsIGNsb25lTGV2ZWwpOwogI2lmIEVOQUJM
RShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgcmVzdWx0TGF5ZXItPnNldE5hbWUoU3RyaW5nOjpm
b3JtYXQoImNsb25lICVkIG9mICVsbHUiLCBjbG9uZUlEWzBVXSwgc291cmNlTGF5ZXItPmxheWVy
SUQoKSkpOworICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZShtYWtlU3RyaW5nKCJjbG9uZSAi
LCBjbG9uZUlEWzBVXSwgIiBvZiAiLCBzb3VyY2VMYXllci0+bGF5ZXJJRCgpKSk7CiAjZWxzZQog
ICAgICAgICByZXN1bHRMYXllci0+c2V0TmFtZSgiY2xvbmUgb2YgIiArIG1fbmFtZSk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMWZmNmMzMGM3YzRlYWUyMzdhZmQzZjcyYzMyNjE0MTA2
MjU3NWZjYi4uYTQ4ZTE0ZmRmMjVkZjc0MmNjZjM4NGJmMmIwNTRjOTIxZmI1YmM2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MuaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5jbHVkZSA8d3RmL1VVSUQuaD4K
LSNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdWaWV3Lmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3Ry
aW5nQ29uY2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzY3
LDEyICszNjcsMTIgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQoR3Jh
cGhpY3NDb250ZXh0JiBjb250ZXh0KQogCiAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOwog
ICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0YXRzRm9udFNpemUpOwotICAgIHN0cmluZyA9
IFN0cmluZzo6Zm9ybWF0KCJTaXplOiAldSB4ICV1Iiwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdo
dCgpKTsKKyAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJTaXplOiAiLCBzaXplLndpZHRoKCksICIg
eCAiLCBzaXplLmhlaWdodCgpKTsKICAgICBjb250ZXh0LmRyYXdUZXh0KHN0YXRzRm9udCwgVGV4
dFJ1bigoU3RyaW5nVmlldyhzdHJpbmcpKSksIHN0YXRzTG9jYXRpb24pOwogCiAgICAgaWYgKG1v
Y2tDYW1lcmEoKSkgewogICAgICAgICBzdGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0c0ZvbnRT
aXplKTsKLSAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIlByZXNldCBzaXplOiAldSB4
ICV1IiwgY2FwdHVyZVNpemUud2lkdGgoKSwgY2FwdHVyZVNpemUuaGVpZ2h0KCkpOworICAgICAg
ICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJQcmVzZXQgc2l6ZTogIiwgY2FwdHVyZVNpemUud2lkdGgo
KSwgIiB4ICIsIGNhcHR1cmVTaXplLmhlaWdodCgpKTsKICAgICAgICAgY29udGV4dC5kcmF3VGV4
dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1ZpZXcoc3RyaW5nKSkpLCBzdGF0c0xvY2F0aW9u
KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBjYW1lcmE7CkBAIC0zOTMsNyArMzkzLDcgQEAgdm9p
ZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KQogICAgICAgICAgICAgY2FtZXJhID0gIlVua25vd24iOwogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIH0KLSAgICAgICAgc3RyaW5nID0gU3RyaW5nOjpmb3JtYXQoIkNhbWVyYTogJXMi
LCBjYW1lcmEpOworICAgICAgICBzdHJpbmcgPSBtYWtlU3RyaW5nKCJDYW1lcmE6ICIsIGNhbWVy
YSk7CiAgICAgICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0YXRzRm9udFNpemUpOwogICAg
ICAgICBjb250ZXh0LmRyYXdUZXh0KHN0YXRzRm9udCwgVGV4dFJ1bigoU3RyaW5nVmlldyhzdHJp
bmcpKSksIHN0YXRzTG9jYXRpb24pOwogICAgIH0gZWxzZSBpZiAoIW5hbWUoKS5pc051bGwoKSkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZS9N
b2NrU291cmNlQnVmZmVyUHJpdmF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAppbmRleCA5ZmJhYzAwMjA0
NzhlOWIzNTBkZTdmZjRkNDdjOWZlMzU5NDYwZTFlLi5jZTI3M2YxN2YxNjcwYmJlZTNlNDY5Yjhm
MjM4NTQwYzk3Yjk5NzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL21lZGlhc291cmNlL01vY2tTb3VyY2VCdWZmZXJQcml2YXRlLmNw
cApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIE1vY2tNZWRpYVNhbXBs
ZShjb25zdCBNb2NrU2FtcGxlQm94JiBib3gpCiAgICAgICAgIDogbV9ib3goYm94KQotICAgICAg
ICAsIG1faWQoU3RyaW5nOjpmb3JtYXQoIiVkIiwgYm94LnRyYWNrSUQoKSkpCisgICAgICAgICwg
bV9pZChTdHJpbmc6Om51bWJlcihib3gudHJhY2tJRCgpKSkKICAgICB7CiAgICAgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRlbnRSYW5n
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1BhcnNlZENvbnRlbnRSYW5n
ZS5jcHAKaW5kZXggMDBiOTBjNDg1M2U4ZTIwYmI0ZTkyODU3YWYwZTE3ZTkxNTBkZjQyNS4uYTNk
NGYwNDQwNTlkZmQ5YTU3YjMxOTI5ZGI4ZjExMmMxNWY2MjExMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9QYXJzZWRDb250ZW50UmFuZ2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUGFyc2VkQ29udGVudFJhbmdlLmNwcApAQCAt
MjcsNyArMjcsNyBAQAogI2luY2x1ZGUgIlBhcnNlZENvbnRlbnRSYW5nZS5oIgogCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTEyNyw4ICsxMjcsOCBAQCBTdHJpbmcgUGFyc2VkQ29udGVudFJh
bmdlOjpoZWFkZXJWYWx1ZSgpIGNvbnN0CiAgICAgaWYgKCFtX2lzVmFsaWQpCiAgICAgICAgIHJl
dHVybiBTdHJpbmcoKTsKICAgICBpZiAobV9pbnN0YW5jZUxlbmd0aCA9PSBVbmtub3duTGVuZ3Ro
KQotICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoImJ5dGVzICUiIFBSSWQ2NCAiLSUiIFBS
SWQ2NCAiLyoiLCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCBtX2xhc3RCeXRlUG9zaXRpb24pOwotICAg
IHJldHVybiBTdHJpbmc6OmZvcm1hdCgiYnl0ZXMgJSIgUFJJZDY0ICItJSIgUFJJZDY0ICIvJSIg
UFJJZDY0LCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCBtX2xhc3RCeXRlUG9zaXRpb24sIG1faW5zdGFu
Y2VMZW5ndGgpOworICAgICAgICByZXR1cm4gbWFrZVN0cmluZygiYnl0ZXMgIiwgbV9maXJzdEJ5
dGVQb3NpdGlvbiwgJy0nLCBtX2xhc3RCeXRlUG9zaXRpb24sICIvKiIpOworICAgIHJldHVybiBt
YWtlU3RyaW5nKCJieXRlcyAiLCBtX2ZpcnN0Qnl0ZVBvc2l0aW9uLCAnLScsIG1fbGFzdEJ5dGVQ
b3NpdGlvbiwgJy8nLCBtX2luc3RhbmNlTGVuZ3RoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9OZXR3b3JrU3RvcmFnZVNlc3Npb25DRk5l
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdl
U2Vzc2lvbkNGTmV0LmNwcAppbmRleCAwOWQ4NmQwZmVjZjA5YTY2ZGQzOTg0OTRjNzliYmFmMDc5
ZTRiYzYwLi5iMDFhN2U2NmJmMDkxNDk2MWQ2MzAxMDc0MWUyMjE3NWY5ZWZiOWI4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05ldHdvcmtTdG9yYWdlU2Vz
c2lvbkNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbkNGTmV0LmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUg
PHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9jZXNzSUQuaD4KICNpbmNs
dWRlIDx3dGYvUHJvY2Vzc1ByaXZpbGVnZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0Nv
bmNhdGVuYXRlTnVtYmVycy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUHVi
bGljU3VmZml4LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FM
aXRlRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFi
YXNlLmNwcAppbmRleCA2NjNlMGJjMGI4NTY3MDgzYWE5N2VmODExNWE1NDY4YzUxN2U5NmM1Li5k
N2JjNjEzMmI0MjY4NmRlNDllNThkYTI4NGQ2NjdkOTdhYjczNjk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKQEAgLTQ2LDggKzQ2LDcgQEAg
c3RhdGljIGNvbnN0IGNoYXIgbm90T3BlbkVycm9yTWVzc2FnZVtdID0gImRhdGFiYXNlIGlzIG5v
dCBvcGVuIjsKIHN0YXRpYyB2b2lkIHVuYXV0aG9yaXplZFNRTEZ1bmN0aW9uKHNxbGl0ZTNfY29u
dGV4dCAqY29udGV4dCwgaW50LCBzcWxpdGUzX3ZhbHVlICoqKQogewogICAgIGNvbnN0IGNoYXIq
IGZ1bmN0aW9uTmFtZSA9IChjb25zdCBjaGFyKilzcWxpdGUzX3VzZXJfZGF0YShjb250ZXh0KTsK
LSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIkZ1bmN0aW9uICVzIGlz
IHVuYXV0aG9yaXplZCIsIGZ1bmN0aW9uTmFtZSk7Ci0gICAgc3FsaXRlM19yZXN1bHRfZXJyb3Io
Y29udGV4dCwgZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCksIC0xKTsKKyAgICBzcWxpdGUzX3Jl
c3VsdF9lcnJvcihjb250ZXh0LCBtYWtlU3RyaW5nKCJGdW5jdGlvbiAiLCBmdW5jdGlvbk5hbWUs
ICIgaXMgdW5hdXRob3JpemVkIikudXRmOCgpLmRhdGEoKSwgLTEpOwogfQogCiBzdGF0aWMgdm9p
ZCBpbml0aWFsaXplU1FMaXRlSWZOZWNlc3NhcnkoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCA1YjFjYTRjOTVkNmQxMDA2
ZTQ3NDI4NzMxNDkzYjRiMDgzODY5ZDAwLi44OGJjNWQxNTM1NGM2YjNkOGYwYmM0YTIzY2UzNGRi
MTkxNmVlMGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcApAQCAtMTI3OCw3ICsxMjc4LDcgQEAgdm9pZCBSZW5kZXJMYXllckNv
bXBvc2l0b3I6OmxvZ0xheWVySW5mbyhjb25zdCBSZW5kZXJMYXllciYgbGF5ZXIsIGNvbnN0IGNo
YXIqIHAKICAgICAgICAgYmFja2luZy0+YmFja2luZ1N0b3JlTWVtb3J5RXN0aW1hdGUoKSAvIDEw
MjQpKTsKICAgICAKICAgICBpZiAoIWxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS5oYXNBdXRvWklu
ZGV4KCkpCi0gICAgICAgIGxvZ1N0cmluZy5hcHBlbmQoU3RyaW5nOjpmb3JtYXQoIiB6LWluZGV4
OiAlZCIsIGxheWVyLnJlbmRlcmVyKCkuc3R5bGUoKS56SW5kZXgoKSkpOyAKKyAgICAgICAgbG9n
U3RyaW5nLmFwcGVuZChtYWtlU3RyaW5nKCIgei1pbmRleDogIiwgbGF5ZXIucmVuZGVyZXIoKS5z
dHlsZSgpLnpJbmRleCgpKSk7CiAKICAgICBsb2dTdHJpbmcuYXBwZW5kTGl0ZXJhbCgiICgiKTsK
ICAgICBsb2dTdHJpbmcuYXBwZW5kKGxvZ1JlYXNvbnNGb3JDb21wb3NpdGluZyhsYXllcikpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAppbmRleCAxYWY0Mzc4OGZmZmJhYWE5MTJlMWFkOTdi
YmQ5OGIxNzJkZTNmMGUzLi41NmRkOWJjOGUzMzA1Mzg4YmJmNTc3ZjU2YWU2NTI2MWQyNGFlMzc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lz
dHJhdGlvbkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2luY2x1
ZGUgPHd0Zi9wZXJzaXN0ZW5jZS9QZXJzaXN0ZW50Q29kZXJzLmg+CiAjaW5jbHVkZSA8d3RmL3Bl
cnNpc3RlbmNlL1BlcnNpc3RlbnREZWNvZGVyLmg+CiAjaW5jbHVkZSA8d3RmL3BlcnNpc3RlbmNl
L1BlcnNpc3RlbnRFbmNvZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5h
dGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMjAxLDcgKzIwMiw3IEBA
IFN0cmluZyBSZWdpc3RyYXRpb25EYXRhYmFzZTo6ZW5zdXJlVmFsaWRSZWNvcmRzVGFibGUoKQog
ICAgICAgICAvLyBJZiB0aGVyZSBpcyBubyBSZWNvcmRzIHRhYmxlIGF0IGFsbCwgY3JlYXRlIGl0
IGFuZCB0aGVuIGJhaWwuCiAgICAgICAgIGlmIChzcWxpdGVSZXN1bHQgPT0gU1FMSVRFX0RPTkUp
IHsKICAgICAgICAgICAgIGlmICghbV9kYXRhYmFzZS0+ZXhlY3V0ZUNvbW1hbmQocmVjb3Jkc1Rh
YmxlU2NoZW1hKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiQ291
bGQgbm90IGNyZWF0ZSBSZWNvcmRzIHRhYmxlIGluIGRhdGFiYXNlICglaSkgLSAlcyIsIG1fZGF0
YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2coKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNvdWxkIG5vdCBjcmVhdGUgUmVjb3JkcyB0YWJs
ZSBpbiBkYXRhYmFzZSAoIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksICIpIC0gIiwgbV9kYXRh
YmFzZS0+bGFzdEVycm9yTXNnKCkpOwogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQogCkBAIC0zNTksNyArMzYwLDcgQEAgU3RyaW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBv
cnRSZWNvcmRzKCkKIAogICAgIFNRTGl0ZVN0YXRlbWVudCBzcWwoKm1fZGF0YWJhc2UsICJTRUxF
Q1QgKiBGUk9NIFJlY29yZHM7Il9zKTsKICAgICBpZiAoc3FsLnByZXBhcmUoKSAhPSBTUUxJVEVf
T0spCi0gICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiRmFpbGVkIHRvIHByZXBhcmUgc3Rh
dGVtZW50IHRvIHJldHJpZXZlIHJlZ2lzdHJhdGlvbnMgZnJvbSByZWNvcmRzIHRhYmxlICglaSkg
LSAlcyIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvcigpLCBtX2RhdGFiYXNlLT5sYXN0RXJyb3JNc2co
KSk7CisgICAgICAgIHJldHVybiBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gcHJlcGFyZSBzdGF0ZW1l
bnQgdG8gcmV0cmlldmUgcmVnaXN0cmF0aW9ucyBmcm9tIHJlY29yZHMgdGFibGUgKCIsIG1fZGF0
YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
IAogICAgIGludCByZXN1bHQgPSBzcWwuc3RlcCgpOwogCkBAIC00MTEsNyArNDEyLDcgQEAgU3Ry
aW5nIFJlZ2lzdHJhdGlvbkRhdGFiYXNlOjppbXBvcnRSZWNvcmRzKCkKICAgICB9CiAKICAgICBp
ZiAocmVzdWx0ICE9IFNRTElURV9ET05FKQotICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQo
IkZhaWxlZCB0byBpbXBvcnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBmcm9tIHJlY29yZHMg
dGFibGUgKCVpKSAtICVzIiwgbV9kYXRhYmFzZS0+bGFzdEVycm9yKCksIG1fZGF0YWJhc2UtPmxh
c3RFcnJvck1zZygpKTsKKyAgICAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkZhaWxlZCB0byBpbXBv
cnQgYXQgbGVhc3Qgb25lIHJlZ2lzdHJhdGlvbiBmcm9tIHJlY29yZHMgdGFibGUgKCIsIG1fZGF0
YWJhc2UtPmxhc3RFcnJvcigpLCAiKSAtICIsIG1fZGF0YWJhc2UtPmxhc3RFcnJvck1zZygpKTsK
IAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9X
ZWJNZW1vcnlTYW1wbGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBs
ZXIuY3BwCmluZGV4IDJiODUyMDBkZWM5Mjc4Yzc0ZGJhZjYyYWU1MzMwZDlmOGQzN2RjMDcuLjg3
ZTZlZWIzYTk0MzFlNWM1NzI3ZmE1MjViNzFmZDc1NmViY2VhYTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYk1lbW9yeVNhbXBsZXIuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSA8
d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CkBAIC0xNDIsNyArMTQzLDcgQEAgdm9pZCBXZWJNZW1vcnlTYW1wbGVyOjppbml0
aWFsaXplU2FuZGJveGVkTG9nRmlsZShTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmJiBzYW0KIAog
dm9pZCBXZWJNZW1vcnlTYW1wbGVyOjp3cml0ZUhlYWRlcnMoKQogewotICAgIFN0cmluZyBwcm9j
ZXNzRGV0YWlscyA9IFN0cmluZzo6Zm9ybWF0KCJQcm9jZXNzOiAlcyBQaWQ6ICVkXG4iLCBwcm9j
ZXNzTmFtZSgpLnV0ZjgoKS5kYXRhKCksIGdldEN1cnJlbnRQcm9jZXNzSUQoKSk7CisgICAgU3Ry
aW5nIHByb2Nlc3NEZXRhaWxzID0gbWFrZVN0cmluZygiUHJvY2VzczogIiwgcHJvY2Vzc05hbWUo
KSwgIiBQaWQ6ICIsIGdldEN1cnJlbnRQcm9jZXNzSUQoKSwgJ1xuJyk7CiAKICAgICBDU3RyaW5n
IHV0ZjhTdHJpbmcgPSBwcm9jZXNzRGV0YWlscy51dGY4KCk7CiAgICAgRmlsZVN5c3RlbTo6d3Jp
dGVUb0ZpbGUobV9zYW1wbGVMb2dGaWxlLCB1dGY4U3RyaW5nLmRhdGEoKSwgdXRmOFN0cmluZy5s
ZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXgg
ZWZjM2UxNjBiNDhiYzZlM2I3ZGFlNTQ0YTUyMjM0N2M5NzhiOTMyOC4uOWMyNzcyN2U4NzI2MTc0
MWEyMDNkNzBiYzFhYjIxZDdiNTFkNTE3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0
aGVudGljYXRvci5tbQpAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9y
OjptYWtlQ3JlZGVudGlhbCgpCiAgICAgICAgIHdlYWtUaGlzLT5jb250aW51ZU1ha2VDcmVkZW50
aWFsQWZ0ZXJVc2VyQ29uc2VudGVkKGNvbnNlbnQpOwogICAgIH07CiAgICAgbV9jb25uZWN0aW9u
LT5nZXRVc2VyQ29uc2VudCgKLSAgICAgICAgU3RyaW5nOjpmb3JtYXQoIkFsbG93ICVzIHRvIGNy
ZWF0ZSBhIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBmb3IgJXMiLCByZXF1ZXN0RGF0YSgpLmNyZWF0
aW9uT3B0aW9ucy5ycC5pZC51dGY4KCkuZGF0YSgpLCByZXF1ZXN0RGF0YSgpLmNyZWF0aW9uT3B0
aW9ucy51c2VyLm5hbWUudXRmOCgpLmRhdGEoKSksCisgICAgICAgICJBbGxvdyAiICsgcmVxdWVz
dERhdGEoKS5jcmVhdGlvbk9wdGlvbnMucnAuaWQgKyAiIHRvIGNyZWF0ZSBhIHB1YmxpYyBrZXkg
Y3JlZGVudGlhbCBmb3IgIiArIHJlcXVlc3REYXRhKCkuY3JlYXRpb25PcHRpb25zLnVzZXIubmFt
ZSwKICAgICAgICAgV1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmIC8vICFQTEFURk9STShJT1Nf
RkFNSUxZKQogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVj
dG9yVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkluc3BlY3RvclV0
aWxpdGllcy5jcHAKaW5kZXggYzVkYjQwMWVlMWM2MTk1ODk0MmQ2YTNiMzBjZjMwZjEzZmE2Yjgw
Ni4uM2I0OWNlMDM0YTlhYWIwMzIzZGIxNGIzMzYwOGRlYmE2NGZmYmY5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yVXRpbGl0aWVzLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JVdGlsaXRpZXMuY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSA8d3RmL0hh
c2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYv
dGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTU3LDcgKzU4LDcgQEAgdW5zaWduZWQgaW5zcGVjdG9yTGV2ZWxGb3JQYWdlKFdlYlBhZ2VQ
cm94eSogcGFnZSkKIAogU3RyaW5nIGluc3BlY3RvclBhZ2VHcm91cElkZW50aWZpZXJGb3JQYWdl
KFdlYlBhZ2VQcm94eSogcGFnZSkKIHsKLSAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIl9fV2Vi
SW5zcGVjdG9yUGFnZUdyb3VwTGV2ZWwldV9fIiwgaW5zcGVjdG9yTGV2ZWxGb3JQYWdlKHBhZ2Up
KTsKKyAgICByZXR1cm4gbWFrZVN0cmluZygiX19XZWJJbnNwZWN0b3JQYWdlR3JvdXBMZXZlbCIs
IGluc3BlY3RvckxldmVsRm9yUGFnZShwYWdlKSwgIl9fIik7CiB9CiAKIHZvaWQgdHJhY2tJbnNw
ZWN0b3JQYWdlKFdlYlBhZ2VQcm94eSogcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAppbmRleCBkMmY2YTY3ZjYyZGExZDhlNTA4NDFlYTllYTc2NTFiYTEz
YzJhYzY3Li45ZTY0ODAwMTYwZjZjMjE0MTFjNzMyNWE3ZDllNTU4MDQ3Yjg4YjNiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC00MSw5ICs0MSw2IEBA
CiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiR2FtZXBhZERh
dGEuaCIKICNpbmNsdWRlICJIaWdoUGVyZm9ybWFuY2VHcmFwaGljc1VzYWdlU2FtcGxlci5oIgot
I2lmIEVOQUJMRShMRUdBQ1lfQ1VTVE9NX1BST1RPQ09MX01BTkFHRVIpCi0jaW5jbHVkZSAiTGVn
YWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyTWVzc2FnZXMuaCIKLSNlbmRpZgogI2luY2x1ZGUgIkxv
Z0luaXRpYWxpemF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5ldHdv
cmtQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCkBAIC05OCw2ICs5NSwxMSBAQAogI2luY2x1
ZGUgPHd0Zi9VUkxQYXJzZXIuaD4KICNpbmNsdWRlIDx3dGYvV2FsbFRpbWUuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29u
Y2F0ZW5hdGVOdW1iZXJzLmg+CisKKyNpZiBFTkFCTEUoTEVHQUNZX0NVU1RPTV9QUk9UT0NPTF9N
QU5BR0VSKQorI2luY2x1ZGUgIkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlck1lc3NhZ2VzLmgi
CisjZW5kaWYKIAogI2lmIEVOQUJMRShTRVJWSUNFX0NPTlRST0xTKQogI2luY2x1ZGUgIlNlcnZp
Y2VzQ29udHJvbGxlci5oIgpAQCAtMTAxOSw3ICsxMDIxLDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9v
bDo6cHJvY2Vzc0RpZEZpbmlzaExhdW5jaGluZyhXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCiAg
ICAgaWYgKG1fbWVtb3J5U2FtcGxlckVuYWJsZWQpIHsKICAgICAgICAgU2FuZGJveEV4dGVuc2lv
bjo6SGFuZGxlIHNhbXBsZUxvZ1NhbmRib3hIYW5kbGU7ICAgICAgICAKICAgICAgICAgV2FsbFRp
bWUgbm93ID0gV2FsbFRpbWU6Om5vdygpOwotICAgICAgICBTdHJpbmcgc2FtcGxlTG9nRmlsZVBh
dGggPSBTdHJpbmc6OmZvcm1hdCgiV2ViUHJvY2VzcyVsbHVwaWQlZCIsIHN0YXRpY19jYXN0PHVu
c2lnbmVkIGxvbmcgbG9uZz4obm93LnNlY29uZHNTaW5jZUVwb2NoKCkuc2Vjb25kcygpKSwgcHJv
Y2Vzcy0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7CisgICAgICAgIFN0cmluZyBzYW1wbGVMb2dGaWxl
UGF0aCA9IG1ha2VTdHJpbmcoIldlYlByb2Nlc3MiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25n
IGxvbmc+KG5vdy5zZWNvbmRzU2luY2VFcG9jaCgpLnNlY29uZHMoKSksICJwaWQiLCBwcm9jZXNz
LT5wcm9jZXNzSWRlbnRpZmllcigpKTsKICAgICAgICAgc2FtcGxlTG9nRmlsZVBhdGggPSBTYW5k
Ym94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGVGb3JUZW1wb3JhcnlGaWxlKHNhbXBsZUxvZ0ZpbGVQ
YXRoLCBTYW5kYm94RXh0ZW5zaW9uOjpUeXBlOjpSZWFkV3JpdGUsIHNhbXBsZUxvZ1NhbmRib3hI
YW5kbGUpOwogICAgICAgICAKICAgICAgICAgcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUHJv
Y2Vzczo6U3RhcnRNZW1vcnlTYW1wbGVyKHNhbXBsZUxvZ1NhbmRib3hIYW5kbGUsIHNhbXBsZUxv
Z0ZpbGVQYXRoLCBtX21lbW9yeVNhbXBsZXJJbnRlcnZhbCksIDApOwpAQCAtMTU3Nyw3ICsxNTc5
LDcgQEAgdm9pZCBXZWJQcm9jZXNzUG9vbDo6c3RhcnRNZW1vcnlTYW1wbGVyKGNvbnN0IGRvdWJs
ZSBpbnRlcnZhbCkKICAgICAvLyBGb3IgV2ViUHJvY2VzcwogICAgIFNhbmRib3hFeHRlbnNpb246
OkhhbmRsZSBzYW1wbGVMb2dTYW5kYm94SGFuZGxlOyAgICAKICAgICBXYWxsVGltZSBub3cgPSBX
YWxsVGltZTo6bm93KCk7Ci0gICAgU3RyaW5nIHNhbXBsZUxvZ0ZpbGVQYXRoID0gU3RyaW5nOjpm
b3JtYXQoIldlYlByb2Nlc3MlbGx1Iiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQgbG9uZyBsb25nPihu
b3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKKyAgICBTdHJpbmcgc2FtcGxlTG9n
RmlsZVBhdGggPSBtYWtlU3RyaW5nKCJXZWJQcm9jZXNzIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQg
bG9uZyBsb25nPihub3cuc2Vjb25kc1NpbmNlRXBvY2goKS5zZWNvbmRzKCkpKTsKICAgICBzYW1w
bGVMb2dGaWxlUGF0aCA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZUZvclRlbXBvcmFy
eUZpbGUoc2FtcGxlTG9nRmlsZVBhdGgsIFNhbmRib3hFeHRlbnNpb246OlR5cGU6OlJlYWRXcml0
ZSwgc2FtcGxlTG9nU2FuZGJveEhhbmRsZSk7CiAgICAgCiAgICAgc2VuZFRvQWxsUHJvY2Vzc2Vz
KE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTdGFydE1lbW9yeVNhbXBsZXIoc2FtcGxlTG9nU2FuZGJv
eEhhbmRsZSwgc2FtcGxlTG9nRmlsZVBhdGgsIGludGVydmFsKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L05ldHdvcmtTdG9yYWdlU2Vzc2lvbk1hcC5j
cHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L1dlYkNvcmVTdXBwb3J0L05ldHdvcmtTdG9yYWdlU2Vz
c2lvbk1hcC5jcHAKaW5kZXggNDcwNzk2YTZkY2FjMzNkZWE2MzkxNDQzZGJjZjcxMmRkMDNhOWMz
OC4uNTg0ZjBhMTYzYzhjM2E1MTNiZjczNTQzOWY3MTM0MTEyYmEzZjk4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdExlZ2FjeS9XZWJDb3JlU3VwcG9ydC9OZXR3b3JrU3RvcmFnZVNlc3Npb25N
YXAuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvV2ViQ29yZVN1cHBvcnQvTmV0d29ya1N0
b3JhZ2VTZXNzaW9uTWFwLmNwcApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1Byb2Nlc3NJRC5oPgogI2luY2x1ZGUgPHd0Zi9Qcm9j
ZXNzUHJpdmlsZWdlLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQ29uY2F0ZW5hdGVOdW1i
ZXJzLmg+CiAKIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uPiYgZGVmYXVsdE5ldHdvcmtTdG9yYWdlU2Vzc2lvbigpCiB7CkBAIC02Nyw3ICs2OCw3
IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VTZXNzaW9uTWFwOjpzd2l0Y2hUb05ld1Rlc3RpbmdTZXNz
aW9uKCkKIHsKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKENGVVJMQ09OTkVDVElPTikKICAg
ICAvLyBTZXNzaW9uIG5hbWUgc2hvdWxkIGJlIHNob3J0IGVub3VnaCBmb3Igc2hhcmVkIG1lbW9y
eSByZWdpb24gbmFtZSB0byBiZSB1bmRlciB0aGUgbGltaXQsIG90ZWhyd2lzZSBzYW5kYm94IHJ1
bGVzIHdvbid0IHdvcmsgKHNlZSA8cmRhcjovL3Byb2JsZW0vMTM2NDI4NTI+KS4KLSAgICBTdHJp
bmcgc2Vzc2lvbk5hbWUgPSBTdHJpbmc6OmZvcm1hdCgiV2ViS2l0IFRlc3QtJXUiLCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oZ2V0Q3VycmVudFByb2Nlc3NJRCgpKSk7CisgICAgU3RyaW5nIHNlc3Np
b25OYW1lID0gbWFrZVN0cmluZygiV2ViS2l0IFRlc3QtIiwgZ2V0Q3VycmVudFByb2Nlc3NJRCgp
KTsKIAogICAgIGF1dG8gc2Vzc2lvbiA9IGFkb3B0Q0YoV2ViQ29yZTo6Y3JlYXRlUHJpdmF0ZVN0
b3JhZ2VTZXNzaW9uKHNlc3Npb25OYW1lLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCkpKTsKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDAxY2IzYjk4
NjJjYWY5YzEzNDY1YzUxOGUyMTgzNjFkYjVhZGVkNTYuLjdmOTk0YjU4YzNmODQ2MmFlNjIzN2Yx
ZjBiOTc3Y2RhYjJhMDE2MDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29s
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxOC0xMi0xNSAgRGFyaW4gQWRsZXIgIDxk
YXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSBtYW55IHVzZXMgb2YgU3RyaW5nOjpm
b3JtYXQgd2l0aCBtb3JlIHR5cGUtc2FmZSBhbHRlcm5hdGl2ZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5Mjc0MgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE1hcmsgTGFtLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6Y2FjaGVUZXN0UnVubmVyQ2FsbGJhY2sp
OiBVc2UgbWFrZVN0cmluZy4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OmRpZFJlY2VpdmVBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSk6IFVzZSBtYWtlU3RyaW5nLgorICAgICAgICAoV1RSOjpUZXN0Q29u
dHJvbGxlcjo6ZG93bmxvYWREaWRGYWlsKTogVXNlIGFuIEFTQ0lJTGl0ZXJhbCB2aWEgdGhlIF9z
IHN5bnRheC4KKwogMjAxOS0wMS0yNyAgSmlld2VuIFRhbiAgPGppZXdlbl90YW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFVzZSBhIGxvYWQgb3B0aW1pemVyIGZvciBzb21lIHNpdGVzCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApp
bmRleCA0MGQ0MTI5YjFlY2QwZmQ1NGJjODgzYmVhYmUxOTJhMWEzNzNiNTgwLi4xMDBhYjdjNDBm
NzM4OTI5ZDkyNmNlODQ2OWYxMDY3MzJkMjA3ZDY4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKQEAgLTU1LDYgKzU1LDcg
QEAKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKyNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJlcnMuaD4KIAogbmFtZXNwYWNlIFdUUiB7CiAK
QEAgLTgxMyw3ICs4MTQsNyBAQCBzdGF0aWMgdm9pZCBjYWNoZVRlc3RSdW5uZXJDYWxsYmFjayh1
bnNpZ25lZCBpbmRleCwgSlNWYWx1ZVJlZiBjYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCiAg
ICAgaWYgKGNhbGxiYWNrTWFwKCkuY29udGFpbnMoaW5kZXgpKSB7Ci0gICAgICAgIEluamVjdGVk
QnVuZGxlOjpzaW5nbGV0b24oKS5vdXRwdXRUZXh0KFN0cmluZzo6Zm9ybWF0KCJGQUlMOiBUcmll
ZCB0byBpbnN0YWxsIGEgc2Vjb25kIFRlc3RSdW5uZXIgY2FsbGJhY2sgZm9yIHRoZSBzYW1lIGV2
ZW50IChpZCAlZClcblxuIiwgaW5kZXgpKTsKKyAgICAgICAgSW5qZWN0ZWRCdW5kbGU6OnNpbmds
ZXRvbigpLm91dHB1dFRleHQobWFrZVN0cmluZygiRkFJTDogVHJpZWQgdG8gaW5zdGFsbCBhIHNl
Y29uZCBUZXN0UnVubmVyIGNhbGxiYWNrIGZvciB0aGUgc2FtZSBldmVudCAoaWQgIiwgaW5kZXgs
ICIpXG5cbiIpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1Rlc3RDb250cm9sbGVyLmNwcAppbmRleCA3YjY2MmFhNjAwMGM2MDQ4YjM3ZjRlYWE4ZjQw
MTlkMTIwMDk2MjUyLi4wY2ZmNzE5NTZkYjljNDI4YmI1MTdiNGQ2Y2QzYWNjYjk0MWJlNGQ4IDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApAQCAtNzgsNyArNzgs
NyBAQAogI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0Zi9VVUlELmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlTnVtYmVycy5oPgog
CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dFByaXZhdGVN
YWMuaD4KQEAgLTIwNzMsMTEgKzIwNzMsMTEgQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdLUGFnZVJlZiBwYWdlLCBXS0F1dGhlbnQKIAog
ICAgIHN0ZDo6c3RyaW5nIGhvc3QgPSB0b1NURChhZG9wdFdLKFdLUHJvdGVjdGlvblNwYWNlQ29w
eUhvc3QocHJvdGVjdGlvblNwYWNlKSkuZ2V0KCkpOwogICAgIGludCBwb3J0ID0gV0tQcm90ZWN0
aW9uU3BhY2VHZXRQb3J0KHByb3RlY3Rpb25TcGFjZSk7Ci0gICAgU3RyaW5nIG1lc3NhZ2UgPSBT
dHJpbmc6OmZvcm1hdCgiJXM6JWQgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
LSAlcyAtICIsIGhvc3QuY19zdHIoKSwgcG9ydCwgdG9TdHJpbmcoYXV0aGVudGljYXRpb25TY2hl
bWUpKTsKKyAgICBTdHJpbmcgbWVzc2FnZSA9IG1ha2VTdHJpbmcoaG9zdC5jX3N0cigpLCAnOics
IHBvcnQsICIgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSAiLCB0b1N0cmlu
ZyhhdXRoZW50aWNhdGlvblNjaGVtZSksICIgLSAiKTsKICAgICBpZiAoIW1faGFuZGxlc0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlcykKICAgICAgICAgbWVzc2FnZS5hcHBlbmQoIlNpbXVsYXRpbmcg
Y2FuY2VsbGVkIGF1dGhlbnRpY2F0aW9uIHNoZWV0XG4iKTsKICAgICBlbHNlCi0gICAgICAgIG1l
c3NhZ2UuYXBwZW5kKFN0cmluZzo6Zm9ybWF0KCJSZXNwb25kaW5nIHdpdGggJXM6JXNcbiIsIG1f
YXV0aGVudGljYXRpb25Vc2VybmFtZS51dGY4KCkuZGF0YSgpLCBtX2F1dGhlbnRpY2F0aW9uUGFz
c3dvcmQudXRmOCgpLmRhdGEoKSkpOworICAgICAgICBtZXNzYWdlLmFwcGVuZCgiUmVzcG9uZGlu
ZyB3aXRoICIgKyBtX2F1dGhlbnRpY2F0aW9uVXNlcm5hbWUgKyAiOiIgKyBtX2F1dGhlbnRpY2F0
aW9uUGFzc3dvcmQgKyAiXG4iKTsKICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0
KG1lc3NhZ2UpOwogCiAgICAgaWYgKCFtX2hhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMp
IHsKQEAgLTIxNzUsOCArMjE3NSw3IEBAIHZvaWQgVGVzdENvbnRyb2xsZXI6OmRvd25sb2FkRGlk
UmVjZWl2ZVNlcnZlclJlZGlyZWN0VG9VUkwoV0tDb250ZXh0UmVmLCBXS0Rvd25sCiB2b2lkIFRl
c3RDb250cm9sbGVyOjpkb3dubG9hZERpZEZhaWwoV0tDb250ZXh0UmVmLCBXS0Rvd25sb2FkUmVm
LCBXS0Vycm9yUmVmIGVycm9yKQogewogICAgIGlmIChtX3Nob3VsZExvZ0Rvd25sb2FkQ2FsbGJh
Y2tzKSB7Ci0gICAgICAgIFN0cmluZyBtZXNzYWdlID0gU3RyaW5nOjpmb3JtYXQoIkRvd25sb2Fk
IGZhaWxlZC5cbiIpOwotICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KG1l
c3NhZ2UpOworICAgICAgICBtX2N1cnJlbnRJbnZvY2F0aW9uLT5vdXRwdXRUZXh0KCJEb3dubG9h
ZCBmYWlsZWQuXG4iX3MpOwogCiAgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBlcnJv
ckRvbWFpbiA9IGFkb3B0V0soV0tFcnJvckNvcHlEb21haW4oZXJyb3IpKTsKICAgICAgICAgV0tS
ZXRhaW5QdHI8V0tTdHJpbmdSZWY+IGVycm9yRGVzY3JpcHRpb24gPSBhZG9wdFdLKFdLRXJyb3JD
b3B5TG9jYWxpemVkRGVzY3JpcHRpb24oZXJyb3IpKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>