<?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>196659</bug_id>
          
          <creation_ts>2019-04-05 15:17:14 -0700</creation_ts>
          <short_desc>[Cocoa] Awaken UIProcess if WebContent process is awakened from suspensions unexpectedly.</short_desc>
          <delta_ts>2020-04-18 19:26:57 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>210710</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1524852</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-05 15:17:14 -0700</bug_when>
    <thetext>[Cocoa] Awaken UIProcess in WebContent process is awakened from suspensions unexpectedly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524854</commentid>
    <comment_count>1</comment_count>
      <attachid>366849</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-05 15:20:27 -0700</bug_when>
    <thetext>Created attachment 366849
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524859</commentid>
    <comment_count>2</comment_count>
      <attachid>366849</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-04-05 15:40:20 -0700</bug_when>
    <thetext>Comment on attachment 366849
WIP

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

&gt; Source/WebKit/Shared/Cocoa/ProcessTaskStateObserver.h:40
&gt; +    ProcessTaskStateObserver(Client&amp;);

explicit?

&gt; Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:44
&gt; +static const Seconds UnexpectedActivityDuration = 10_s;

I think our statics usually start with a lowercase letter.

&gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:306
&gt; +        uiProcessAssertion-&gt;setState(AssertionState::Suspended);

Do we really need to do this? Why doesn&apos;t destroying the ProcessAssertion suffice?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524862</commentid>
    <comment_count>3</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-05 15:48:07 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #2)
&gt; Comment on attachment 366849 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=366849&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/Cocoa/ProcessTaskStateObserver.h:40
&gt; &gt; +    ProcessTaskStateObserver(Client&amp;);
&gt; 
&gt; explicit?

Sure.

&gt; &gt; Source/WebKit/UIProcess/Cocoa/WebProcessProxyCocoa.mm:44
&gt; &gt; +static const Seconds UnexpectedActivityDuration = 10_s;
&gt; 
&gt; I think our statics usually start with a lowercase letter.

Ok.

&gt; &gt; Source/WebKit/WebProcess/cocoa/WebProcessCocoa.mm:306
&gt; &gt; +        uiProcessAssertion-&gt;setState(AssertionState::Suspended);
&gt; 
&gt; Do we really need to do this? Why doesn&apos;t destroying the ProcessAssertion
&gt; suffice?

It probably does suffice; I was taking a belt-and-suspenders approach. I&apos;ll remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524865</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2019-04-05 15:51:05 -0700</bug_when>
    <thetext>Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -arch x86_64 -dynamiclib -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk -L/Volumes/Data/EWS/WebKit/WebKitBuild/Release -L/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/WebKit.framework/Versions/A/Frameworks/WebCore.framework/Versions/A/Frameworks -F/Volumes/Data/EWS/WebKit/WebKitBuild/Release -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/PrivateFrameworks -iframework /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/Frameworks -filelist /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebKit.LinkFileList -Xlinker -reexport_framework -Xlinker WebKitLegacy -Xlinker -reexport_framework -Xlinker WebCore -install_name /System/Library/Frameworks/WebKit.framework/Versions/A/WebKit -mmacosx-version-min=10.13 -dead_strip -Xlinker -object_path_lto -Xlinker /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebKit_lto.o -stdlib=libc++ -fobjc-link-runtime -iframework/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk/System/Library/PrivateFrameworks -Wl,-unexported_symbol -Wl,__ZTISt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTISt9exception -Wl,-unexported_symbol -Wl,__ZTSSt9bad_alloc -Wl,-unexported_symbol -Wl,__ZTSSt9exception -Wl,-unexported_symbol -Wl,__ZdlPvS_ -Wl,-unexported_symbol -Wl,__ZnwmPv -Wl,-unexported_symbol -Wl,__Znwm -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEEC2EOS4_ -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEEC1EOS4_ -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEEaSEDn -Wl,-unexported_symbol -Wl,__ZNKSt3__18functionIFvN7WebCore12PolicyActionEEEclES2_ -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEE4swapERS4_ -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEEC1ERKS4_ -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEEC2ERKS4_ -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEED1Ev -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEED2Ev -Wl,-unexported_symbol -Wl,__ZNSt3__18functionIFvN7WebCore12PolicyActionEEEaSERKS4_ -Wl,-unexported_symbol -Wl,__ZTVNSt3__117bad_function_callE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_13basic_istreamIcS2_EE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE0_NS_14basic_iostreamIcS2_EE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE16_NS_13basic_ostreamIcS2_EE -Wl,-unexported_symbol -Wl,__ZTTNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE -Wl,-unexported_symbol -Wl,__ZTVNSt3__115basic_stringbufIcNS_11char_traitsIcEENS_9allocatorIcEEEE -Wl,-unexported_symbol -Wl,__ZTVNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE -Wl,-unexported_symbol -Wl,__ZTCNSt3__118basic_stringstreamIcNS_11char_traitsIcEENS_9allocatorIcEEEE8_NS_13basic_ostreamIcS2_EE -lobjc -framework CFNetwork -framework CoreAudio -framework CoreFoundation -framework CoreGraphics -framework CoreText -framework Foundation -framework ImageIO -framework IOKit -framework WebKitLegacy -lnetwork -framework AppKit -framework Carbon -weak_framework CorePrediction -framework CoreServices -framework IOSurface -lsandbox -weak-lwebrtc -framework OpenGL -weak_framework SafariSafeBrowsing -framework SecurityInterface -weak_framework WebInspectorUI -Wl,-not_for_dyld_shared_cache -framework JavaScriptCore -licucore -framework QuartzCore -framework Security -framework WebCore -compatibility_version 1 -current_version 608.1.16 -Xlinker -dependency_info -Xlinker /Volumes/Data/EWS/WebKit/WebKitBuild/WebKit.build/Release/WebKit.build/Objects-normal/x86_64/WebKit_dependency_info.dat -o /Volumes/Data/EWS/WebKit/WebKitBuild/Release/WebKit.framework/Versions/A/WebKit
Undefined symbols for architecture x86_64:
  &quot;WebKit::ProcessAssertion::ProcessAssertion(int, WTF::String const&amp;, WebKit::AssertionState, WebKit::AssertionReason)&quot;, referenced from:
      WebKit::WebProcess::processTaskStateDidChange(WebKit::ProcessTaskStateObserver::TaskState) in UnifiedSource51-mm.o
  &quot;_OBJC_CLASS_$_BKSProcess&quot;, referenced from:
      objc-class-ref in ProcessTaskStateObserver.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1524914</commentid>
    <comment_count>5</comment_count>
      <attachid>366849</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-04-05 17:28:43 -0700</bug_when>
    <thetext>Comment on attachment 366849
WIP

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        [Cocoa] Awaken UIProcess in WebContent process is awakened from suspensions unexpectedly.

Should be &quot;if&quot; instead of &quot;in&quot;, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525186</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-08 08:43:10 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #5)
&gt; Comment on attachment 366849 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=366849&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:3
&gt; &gt; +        [Cocoa] Awaken UIProcess in WebContent process is awakened from suspensions unexpectedly.
&gt; 
&gt; Should be &quot;if&quot; instead of &quot;in&quot;, right?

Yep!

(In reply to Geoffrey Garen from comment #4)
&gt; Undefined symbols for architecture x86_64:
&gt;   &quot;WebKit::ProcessAssertion::ProcessAssertion(int, WTF::String const&amp;,
&gt; WebKit::AssertionState, WebKit::AssertionReason)&quot;, referenced from:
&gt;      
&gt; WebKit::WebProcess::processTaskStateDidChange(WebKit::
&gt; ProcessTaskStateObserver::TaskState) in UnifiedSource51-mm.o

Yeah, I&apos;ll fix this; the non-iOS ProcessAssertion needs to have a constructor that takes a reason.

&gt;   &quot;_OBJC_CLASS_$_BKSProcess&quot;, referenced from:
&gt;       objc-class-ref in ProcessTaskStateObserver.o

Ooh, looks like we need to soft-link the BKSProcess class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525251</commentid>
    <comment_count>7</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-08 10:42:07 -0700</bug_when>
    <thetext>&gt; (In reply to Geoffrey Garen from comment #4)
&gt; &gt;   &quot;_OBJC_CLASS_$_BKSProcess&quot;, referenced from:
&gt; &gt;       objc-class-ref in ProcessTaskStateObserver.o
&gt; 
&gt; Ooh, looks like we need to soft-link the BKSProcess class.

Aha, this is more prosaic: we don&apos;t link against AssertionServices.framework on macOS. While technically we could, maybe I&apos;ll just make this entire code-path iOS-only.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525280</commentid>
    <comment_count>8</comment_count>
      <attachid>366959</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-08 11:59:15 -0700</bug_when>
    <thetext>Created attachment 366959
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525284</commentid>
    <comment_count>9</comment_count>
      <attachid>366961</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-08 12:02:51 -0700</bug_when>
    <thetext>Created attachment 366961
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525303</commentid>
    <comment_count>10</comment_count>
      <attachid>366969</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-08 13:01:34 -0700</bug_when>
    <thetext>Created attachment 366969
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525633</commentid>
    <comment_count>11</comment_count>
      <attachid>367040</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-09 09:03:02 -0700</bug_when>
    <thetext>Created attachment 367040
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525642</commentid>
    <comment_count>12</comment_count>
      <attachid>367042</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2019-04-09 09:31:06 -0700</bug_when>
    <thetext>Created attachment 367042
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525718</commentid>
    <comment_count>13</comment_count>
      <attachid>367042</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 12:37:34 -0700</bug_when>
    <thetext>Comment on attachment 367042
Patch for landing

Clearing flags on attachment: 367042

Committed r244091: &lt;https://trac.webkit.org/changeset/244091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525719</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-09 12:37:36 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1525720</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-09 12:38:53 -0700</bug_when>
    <thetext>&lt;rdar://problem/49745738&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366849</attachid>
            <date>2019-04-05 15:20:27 -0700</date>
            <delta_ts>2019-04-08 11:59:13 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-196659-20190405152026.patch</filename>
            <type>text/plain</type>
            <size>30693</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4MWEyZTgwN2FiZjVmOTQ5
MzA3NTk3OGRmOGRjMjljOTZjMmRkN2EuLjg5ZTkwMWRkYTUxMTU4YTVkODM1YzQ5NDFiZTNhODhm
NGQxNmQ1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMDUgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBd2FrZW4gVUlQcm9j
ZXNzIGluIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb25zIHVu
ZXhwZWN0ZWRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlv
bjo6c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Fzc2Vy
dGlvblNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3Rh
dGVPYnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rhc2tTdGF0ZU9i
c2VydmVyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZl
cjo6dGFza1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXJEZWxlZ2F0ZSBwcm9jZXNzOnRhc2tTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdl
YktpdDo6dG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUpOgorICAgICAgICAoV2Vi
S2l0OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZl
cjo6c2V0VGFza1N0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1By
b3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dh
c1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fz
c2VydGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzVGhyb3R0bGVyOjpzaG91bGRCZVJ1bm5hYmxlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25J
T1MubW06CisgICAgICAgIChXZWJLaXQ6OnJlYXNvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYktp
dDo6dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vz
c0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tT
dGF0ZURpZENoYW5nZSk6CisKIDIwMTktMDQtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBEZWFjdGl2YXRlIHRoZSBhdWRpbyBzZXNzaW9uIGJl
Zm9yZSB0aGUgV2ViUHJvY2VzcyBzdXNwZW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
UGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nv
bm5lY3Rpb24uaAppbmRleCBmMzczOWI0YWVhYjk5YjRmMzkyNWUxMjc1YmI4NTkxYjE1NzJlNzE2
Li4zNmJkOTEyZTBiY2U0YWE4Y2IxOGFkOTAxYmJiM2ZlOTBhNzNjODAzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0xNzcsNyArMTc3LDcgQEAgcHVibGljOgog
CiAgICAgdm9pZCBwb3N0Q29ubmVjdGlvbkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKCk7
CiAKLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIHNlbmRX
aXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4u
KT4mJiBhcmdzLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CisgICAgdGVtcGxhdGU8dHlw
ZW5hbWUgVCwgdHlwZW5hbWUgQz4gdm9pZCBzZW5kV2l0aEFzeW5jUmVwbHkoVCYmIG1lc3NhZ2Us
IEMmJiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogICAg
IHRlbXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgc2VuZChUJiYgbWVzc2FnZSwgdWludDY0X3QgZGVz
dGluYXRpb25JRCwgT3B0aW9uU2V0PFNlbmRPcHRpb24+IHNlbmRPcHRpb25zID0geyB9KTsKICAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRXaXRoUmVwbHkoVCYmIG1lc3NhZ2UsIHVp
bnQ2NF90IGRlc3RpbmF0aW9uSUQsIEZ1bmN0aW9uRGlzcGF0Y2hlciYgcmVwbHlEaXNwYXRjaGVy
LCBGdW5jdGlvbjx2b2lkKE9wdGlvbmFsPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6
UmVwbHk+OjpUeXBlPik+JiYgcmVwbHlIYW5kbGVyKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBib29sIHNlbmRTeW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1
aW50NjRfdCBkZXN0aW5hdGlvbklELCBTZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0
eSgpLCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSk7CkBA
IC00MTYsOCArNDE2LDggQEAgdWludDY0X3QgbmV4dEFzeW5jUmVwbHlIYW5kbGVySUQoKTsKIHZv
aWQgYWRkQXN5bmNSZXBseUhhbmRsZXIoQ29ubmVjdGlvbiYsIHVpbnQ2NF90LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKERlY29kZXIqKT4mJik7CiBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERlY29k
ZXIqKT4gdGFrZUFzeW5jUmVwbHlIYW5kbGVyKENvbm5lY3Rpb24mLCB1aW50NjRfdCk7CiAKLXRl
bXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+Ci12b2lkIENvbm5lY3Rpb246OnNl
bmRXaXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdz
Li4uKT4mJiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKK3RlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lIEM+Cit2b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoQXN5
bmNSZXBseShUJiYgbWVzc2FnZSwgQyYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0
aW5hdGlvbklEKQogewogICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFzeW5jTWVzc2Fn
ZUV4cGVjdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9z
L0Fzc2VydGlvblNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3Mv
QXNzZXJ0aW9uU2VydmljZXNTUEkuaAppbmRleCBmYWUyYTExMjkyODhiMzM0OThmZTY1ZjdjMDUy
ZTNmMTIzYTJlYzQxLi5lYmNlMDk5OWVhZmRkNmIyZTIyOWI3YWJiZjBmMzI3YjY1YmJjYjVlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2Vydmlj
ZXNTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2Vy
dmljZXNTUEkuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREsp
CiAKICNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU0FwcGxpY2F0aW9uU3RhdGVNb25pdG9y
Lmg+CisjaW1wb3J0IDxBc3NlcnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzLmg+CiAjaW1wb3J0IDxB
c3NlcnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzQXNzZXJ0aW9uLmg+CiAKICNlbHNlCkBAIC04Nyw0
ICs4OCwyNyBAQCB0eXBlZGVmIHZvaWQgKF5CS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25I
YW5kbGVyKShCT09MIGFjcXVpcmVkKTsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAorZW51
bSB7CisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZU5vbmUsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0
ZVJ1bm5pbmcsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZVN1c3BlbmRlZCwKK307Cit0eXBlZGVm
IHVpbnQzMl90IEJLU1Byb2Nlc3NUYXNrU3RhdGU7CisKK0BjbGFzcyBCS1NQcm9jZXNzOworCitA
cHJvdG9jb2wgQktTUHJvY2Vzc0RlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9p
ZClwcm9jZXNzOihCS1NQcm9jZXNzICopcHJvY2VzcyB0YXNrU3RhdGVEaWRDaGFuZ2U6KEJLU1By
b2Nlc3NUYXNrU3RhdGUpbmV3U3RhdGU7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyA6
IE5TT2JqZWN0CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyAoKQorKyAoQktTUHJvY2Vz
cyAqKWN1cnJlbnRQcm9jZXNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgd2Vh
aykgaWQgPEJLU1Byb2Nlc3NEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGFzc2lnbikgQktTUHJvY2Vzc1Rhc2tTdGF0ZSB0YXNrU3RhdGU7CitAZW5k
CisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNz
VGFza1N0YXRlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTg3NWNkMjVlMjBjZTg2OWFlMzhjNDAx
YzE1ZWNkNmE3NDA0ZWRlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpD
X0NMQVNTIFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGU7CitPQkpDX0NMQVNTIEJL
U1Byb2Nlc3M7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzVGFza1N0YXRl
T2JzZXJ2ZXIgeworcHVibGljOgorICAgIGNsYXNzIENsaWVudDsKKworICAgIFByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlcigpOworICAgIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcihDbGllbnQmKTsK
KyAgICB+UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCk7CisgICAgCisgICAgZW51bSBUYXNrU3Rh
dGUgeworICAgICAgICBOb25lLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdXNwZW5kZWQs
CisgICAgfTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0
dWFsIH5DbGllbnQoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVGFz
a1N0YXRlRGlkQ2hhbmdlKFRhc2tTdGF0ZSkgPSAwOworICAgIH07CisKKyAgICB2b2lkIHNldENs
aWVudChDbGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9ICZjbGllbnQ7IH0KKyAgICBDbGllbnQq
IGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CisKKyAgICBUYXNrU3RhdGUgdGFza1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV90YXNrU3RhdGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHNl
dFRhc2tTdGF0ZShUYXNrU3RhdGUpOworCisgICAgQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIg
fTsKKyAgICBUYXNrU3RhdGUgbV90YXNrU3RhdGUgeyBOb25lIH07CisgICAgUmV0YWluUHRyPEJL
U1Byb2Nlc3M+IG1fcHJvY2VzczsKKyAgICBSZXRhaW5QdHI8V0tQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXJEZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKK307CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YTMwY2E3NDY5ODNiNGVhM2ZmMTM0OTlmNGI4ODI1YjRmOGQzYjRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVy
Lm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgiCisKKyNpbmNsdWRlICJBc3NlcnRp
b25TZXJ2aWNlc1NQSS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KKwordHlwZWRlZiB2b2lkKF5UYXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2tUeXBlKShC
S1NQcm9jZXNzVGFza1N0YXRlKTsKKworQGludGVyZmFjZSBXS1Byb2Nlc3NUYXNrU3RhdGVPYnNl
cnZlckRlbGVnYXRlIDogTlNPYmplY3Q8QktTUHJvY2Vzc0RlbGVnYXRlPgorQHByb3BlcnR5IChj
b3B5KSBUYXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2tUeXBlIHRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFj
azsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVs
ZWdhdGUKKy0gKHZvaWQpcHJvY2VzczooQktTUHJvY2VzcyAqKXByb2Nlc3MgdGFza1N0YXRlRGlk
Q2hhbmdlOihCS1NQcm9jZXNzVGFza1N0YXRlKW5ld1N0YXRlCit7CisgICAgUkVMRUFTRV9MT0co
UHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtW1dLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdh
dGUgcHJvY2Vzczp0YXNrU3RhdGVEaWRDaGFuZ2U6XSwgcHJvY2VzcyglcCksIG5ld1N0YXRlKCVk
KSIsIHNlbGYsIHByb2Nlc3MsIChpbnQpbmV3U3RhdGUpOworCisgICAgaWYgKHNlbGYudGFza1N0
YXRlQ2hhbmdlZENhbGxiYWNrKQorICAgICAgICBzZWxmLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFj
ayhuZXdTdGF0ZSk7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgUHJv
Y2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpUYXNrU3RhdGUgdG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJUYXNrU3RhdGUoQktTUHJvY2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNz
ZXJ0KHN0YXRpY19jYXN0PHVpbnQzMl90PihCS1NQcm9jZXNzVGFza1N0YXRlTm9uZSkgPT0gc3Rh
dGljX2Nhc3Q8dWludDMyX3Q+KFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6Tm9uZSksICJCS1NQ
cm9jZXNzVGFza1N0YXRlICE9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7
CisgICAgc3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50MzJfdD4oQktTUHJvY2Vzc1Rhc2tT
dGF0ZVJ1bm5pbmcpID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXI6OlJ1bm5pbmcpLCAiQktTUHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRl
T2JzZXJ2ZXI6OlRhc2tTdGF0ZSIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KEJLU1Byb2Nlc3NUYXNrU3RhdGVTdXNwZW5kZWQpID09IHN0YXRpY19jYXN0PHVpbnQz
Ml90PihQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlN1c3BlbmRlZCksICJCS1NQcm9jZXNzVGFz
a1N0YXRlICE9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlPihzdGF0
ZSk7Cit9CisKK1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyKCkKKyAgICA6IG1fcHJvY2VzcyhCS1NQcm9jZXNzLmN1cnJlbnRQcm9jZXNzKQorICAgICwg
bV9kZWxlZ2F0ZShhZG9wdE5TKFtbV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJEZWxlZ2F0ZSBh
bGxvY10gaW5pdF0pKQoreworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpLCBt
X3Byb2Nlc3MoJXApIiwgdGhpcywgbV9wcm9jZXNzLmdldCgpKTsKKyAgICBtX2RlbGVnYXRlLmdl
dCgpLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjayA9IFt0aGlzXSAoQktTUHJvY2Vzc1Rhc2tTdGF0
ZSBzdGF0ZSkgeworICAgICAgICBzZXRUYXNrU3RhdGUodG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJUYXNrU3RhdGUoc3RhdGUpKTsKKyAgICB9OworICAgIG1fcHJvY2Vzcy5nZXQoKS5kZWxlZ2F0
ZSA9IG1fZGVsZWdhdGUuZ2V0KCk7Cit9CisKK1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6UHJv
Y2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKENsaWVudCYgY2xpZW50KQorICAgIDogUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyKCkKK3sKKyAgICBzZXRDbGllbnQoY2xpZW50KTsKK30KKworUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyOjp+UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKK3sKKyAgICBtX2Rl
bGVnYXRlLmdldCgpLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjayA9IG5pbDsKK30KKwordm9pZCBQ
cm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OnNldFRhc2tTdGF0ZShUYXNrU3RhdGUgc3RhdGUpCit7
CisgICAgaWYgKG1fdGFza1N0YXRlID09IHN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X3Rhc2tTdGF0ZSA9IHN0YXRlOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQt
PnByb2Nlc3NUYXNrU3RhdGVEaWRDaGFuZ2Uoc3RhdGUpOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4
IGNhNjk1NWIzNTAwYzdkZTJiZTcyYTRkYzc0ZjI1YzNjZjY1MzlmOWYuLjE2MTk2NzY1MzM1NjBi
ZTAxYjkwYjExMTBiZTAyMjcyOTZmOTEwY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC00MSw2ICs0MSw4IEBA
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgY29uc3QgU2Vjb25kcyBVbmV4cGVjdGVk
QWN0aXZpdHlEdXJhdGlvbiA9IDEwX3M7CisKIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYgV2ViUHJv
Y2Vzc1Byb3h5OjpwbGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKCkKIHsKICAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBwbGF0Zm9ybVBhdGhzV2l0aEFz
c3VtZWRSZWFkQWNjZXNzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxTdHJpbmc+IHsKQEAgLTE4Nyw0
ICsxODksMjMgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbGVhc2VIaWdoUGVyZm9ybWFuY2VH
UFUoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2FzVW5leHBl
Y3RlZGx5VW5zdXNwZW5kZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24p
Cit7CisgICAgaWYgKG1fdGhyb3R0bGVyLnNob3VsZEJlUnVubmFibGUoKSkgeworICAgICAgICAv
LyBUaGUgcHJvY2VzcyBiZWNvbWluZyB1bnN1c3BlbmRlZCB3YXMgbm90IHVuZXhwZWN0ZWQ7IGl0
IGxpa2VseSB3YXMgbm90aWZpZWQgb2YgaXRzIHJ1bm5pbmcgc3RhdGUKKyAgICAgICAgLy8gYmVm
b3JlIHJlY2VpdmluZyBhIHByb2NzZXNzRGlkUmVzdW1lKCkgbWVzc2FnZSBmcm9tIHRoZSBVSVBy
b2Nlc3MuCisgICAgICAgIGNvbXBsZXRpb24oKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdhcyBhd2FrZW5lZCBieSBzb21ldGhpbmcgb3RoZXIgdGhh
biB0aGUgVUlQcm9jZXNzLiBUYWtlIG91dCBhbiBhc3NlcnRpb24gZm9yIGEKKyAgICAvLyBsaW1p
dGVkIGR1cmF0aW9uIHRvIGFsbG93IHdoYXRldmVyIHRhc2sgbmVlZHMgdG8gYmUgYWNjb21wbGlz
aGVkIHRpbWUgdG8gY29tcGxldGUuCisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVk
KCkiLCB0aGlzKTsKKyAgICBhdXRvIGJhY2tncm91bmRBY3Rpdml0eVRpbWVvdXRIYW5kbGVyID0g
W2FjdGl2aXR5VG9rZW4gPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpLCB3
ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nl
c3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXYXNVbmV4cGVjdGVk
bHlVbnN1c3BlbmRlZCgpIC0gbGFtYmRhLCBiYWNrZ3JvdW5kIGFjdGl2aXR5IHRpbWVkIG91dCIs
IHdlYWtUaGlzLmdldCgpKTsKKyAgICB9OworICAgIG1fdW5leHBlY3RlZEFjdGl2aXR5VGltZXIg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI+KFdURk1v
dmUoYmFja2dyb3VuZEFjdGl2aXR5VGltZW91dEhhbmRsZXIpLCBVbmV4cGVjdGVkQWN0aXZpdHlE
dXJhdGlvbik7CisgICAgY29tcGxldGlvbigpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKaW5kZXggNDdjYzgwZjhlZGY3ZGFkZjk5ZDkwZjc5Y2Uy
ODE1ZGIzY2M5YmRmNi4uYTAxYzc2ZGI3MzNiOWVlZTZkMmJlOTdlNzYyYzgwZTk0YjU4MzAxMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaApAQCAtNDUsNyAr
NDUsMTMgQEAgZW51bSBjbGFzcyBBc3NlcnRpb25TdGF0ZSB7CiAgICAgU3VzcGVuZGVkLAogICAg
IEJhY2tncm91bmQsCiAgICAgVW5ib3VuZGVkTmV0d29ya2luZywKLSAgICBGb3JlZ3JvdW5kCisg
ICAgRm9yZWdyb3VuZCwKK307CisKK2VudW0gY2xhc3MgQXNzZXJ0aW9uUmVhc29uIHsKKyAgICBF
eHRlbnNpb24sCisgICAgRmluaXNoVGFzaywKKyAgICBGaW5pc2hUYXNrVW5ib3VuZGVkLAogfTsK
IAogY2xhc3MgUHJvY2Vzc0Fzc2VydGlvbiA6IHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxQcm9jZXNz
QXNzZXJ0aW9uPiB7CkBAIC01OCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgUHJv
Y2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmluZyYgcmVhc29uLCBBc3NlcnRpb25T
dGF0ZSk7CisgICAgUHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQsIGNvbnN0IFN0cmluZyYgcmVh
c29uLCBBc3NlcnRpb25TdGF0ZSwgQXNzZXJ0aW9uUmVhc29uKTsKICAgICB2aXJ0dWFsIH5Qcm9j
ZXNzQXNzZXJ0aW9uKCk7CiAKICAgICB2b2lkIHNldENsaWVudChDbGllbnQmIGNsaWVudCkgeyBt
X2NsaWVudCA9ICZjbGllbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NUaHJvdHRsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Ro
cm90dGxlci5jcHAKaW5kZXggYjYxMmRhMGU4OGFkOTdlNzZlNmY2ZTg3OTAwYWM1ZmJhZmYwM2Vm
Yi4uMDBhOTkxODg2MTQ4NzM5MzhhNmNiNGFiZDk5MTRiYzg2Mjk0NWNmNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAKQEAgLTY4LDcgKzY4LDcgQEAg
dm9pZCBQcm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb25Ob3coKQogICAgIAogdm9pZCBQ
cm9jZXNzVGhyb3R0bGVyOjp1cGRhdGVBc3NlcnRpb24oKQogewotICAgIGJvb2wgc2hvdWxkQmVS
dW5uYWJsZSA9IG1fZm9yZWdyb3VuZENvdW50ZXIudmFsdWUoKSB8fCBtX2JhY2tncm91bmRDb3Vu
dGVyLnZhbHVlKCk7CisgICAgYm9vbCBzaG91bGRCZVJ1bm5hYmxlID0gdGhpcy0+c2hvdWxkQmVS
dW5uYWJsZSgpOwogCiAgICAgLy8gSWYgdGhlIHByb2Nlc3MgaXMgY3VycmVudGx5IHJ1bm5hYmxl
IGJ1dCB3aWxsIGJlIHN1c3BlbmRlZCB0aGVuIGZpcnN0IGdpdmUgaXQgYSBjaGFuY2UgdG8gY29t
cGxldGUgd2hhdCBpdCB3YXMgZG9pbmcKICAgICAvLyBhbmQgY2xlYW4gdXAgLSBtb3ZlIGl0IHRv
IHRoZSBiYWNrZ3JvdW5kIGFuZCBzZW5kIGl0IGEgbWVzc2FnZSB0byBub3RpZnkuIFNjaGVkdWxl
IGEgdGltZW91dCBzbyBpdCBjYW4ndCBzdGF5IHJ1bm5pbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAppbmRleCAwNTc2ZTM4NmQ4NjY1NWY0YTc4NGU3NzcyMWMw
ZmMzYjM0NGMzZGQ1Li5mZDE1MjljZDQ3NzVlODYyYzBmNjI1MTg4ZTkxMDY1MWZhMjEyN2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCkBAIC02MCw2ICs2
MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENvbm5lY3RUb1Byb2Nlc3MoUHJvY2Vzc0lEKTsK
ICAgICB2b2lkIHByb2Nlc3NSZWFkeVRvU3VzcGVuZCgpOwogICAgIHZvaWQgZGlkQ2FuY2VsUHJv
Y2Vzc1N1c3BlbnNpb24oKTsKKyAgICBib29sIHNob3VsZEJlUnVubmFibGUoKSBjb25zdCB7IHJl
dHVybiBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCkgfHwgbV9iYWNrZ3JvdW5kQ291bnRlci52
YWx1ZSgpOyB9CiAKIHByaXZhdGU6CiAgICAgQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKaW5kZXggYTI1M2Fl
NWI2YTkxZWU0MjNjMjdhZWU0ZjFkYzM5ZWJjYzMxOGYwZC4uNTBhMmM2OTkyZjFhMTk4MTBhZDVk
NDk0YTM3NTUyYzFkZDUxOGM4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmgKQEAgLTU3LDYgKzU3LDcgQEAgY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiB9CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIERlZmVycmFibGVPbmVTaG90VGltZXI7CiBjbGFz
cyBSZXNvdXJjZVJlcXVlc3Q7CiBzdHJ1Y3QgUGx1Z2luSW5mbzsKIHN0cnVjdCBTZWN1cml0eU9y
aWdpbkRhdGE7CkBAIC0yOTcsNiArMjk4LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIHVuYmxvY2tB
Y2Nlc3NpYmlsaXR5U2VydmVySWZOZWVkZWQoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oQ09D
T0EpCisgICAgdm9pZCBwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIHVp
bnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlByb2Nlc3NQ
b29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTQ3Miw2ICs0NzcsNyBA
QCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgTWVkaWFDYXB0dXJlU2FuZGJv
eEV4dGVuc2lvbnMgbV9tZWRpYUNhcHR1cmVTYW5kYm94RXh0ZW5zaW9ucyB7IFNhbmRib3hFeHRl
bnNpb25UeXBlOjpOb25lIH07CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRlZmVycmFi
bGVPbmVTaG90VGltZXI+IG1fdW5leHBlY3RlZEFjdGl2aXR5VGltZXI7CiAjZW5kaWYKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgppbmRleCBjNDI0YzE4ZTY4MzQ0NDM3NWU0OTE2NGM5ZGU4OTkyZjg3YmNkN2ZmLi5jMmNm
NGM2MWYwNjJmODkzNzYxNDJiMjNiZTVkNjU2ODA4NDRlMjVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC03OSw0ICs3
OSw4IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAg
U3RhcnREaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQp
CiAgICAgU3RvcERpc3BsYXlMaW5rKHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3Bs
YXlJRCkKICNlbmRpZgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgUHJvY2Vzc1dhc1VuZXhw
ZWN0ZWRseVVuc3VzcGVuZGVkKCkgLT4gKCkgQXN5bmMKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCA4YzRk
ZTNhMzBlZjJiNTczYzM3YzViY2E2Nzk3NzFiOWU2ZTMwZTdmLi5iOGU2Y2ZkNjdiYjYxYjVmOTE0
NTA5NmQ3NGMzNWE2OTE3MmQ1MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMTQ2LDE5ICsxNDYsMzYgQEAgc3RhdGlj
IEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBmbGFnc0ZvclN0YXRlKEFzc2VydGlvblN0YXRlIGFz
c2VydGlvblN0YXRlKQogICAgIH0KIH0KIAotc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFz
b24gcmVhc29uRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCitzdGF0aWMg
QXNzZXJ0aW9uUmVhc29uIHJlYXNvbkZvclN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0
YXRlKQogewogICAgIHN3aXRjaCAoYXNzZXJ0aW9uU3RhdGUpIHsKICAgICBjYXNlIEFzc2VydGlv
blN0YXRlOjpVbmJvdW5kZWROZXR3b3JraW5nOgotICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fz
c2VydGlvblJlYXNvbkZpbmlzaFRhc2tVbmJvdW5kZWQ7CisgICAgICAgIHJldHVybiBBc3NlcnRp
b25SZWFzb246OkZpbmlzaFRhc2tVbmJvdW5kZWQ7CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6
U3VzcGVuZGVkOgogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQ6CiAgICAgY2Fz
ZSBBc3NlcnRpb25TdGF0ZTo6Rm9yZWdyb3VuZDoKKyAgICAgICAgcmV0dXJuIEFzc2VydGlvblJl
YXNvbjo6RXh0ZW5zaW9uOworICAgIH0KK30KKworc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25S
ZWFzb24gdG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKEFzc2VydGlvblJlYXNvbiByZWFzb24p
Cit7CisgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNlIEFzc2VydGlvblJlYXNvbjo6RXh0
ZW5zaW9uOgogICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkV4dGVuc2lv
bjsKKyAgICBjYXNlIEFzc2VydGlvblJlYXNvbjo6RmluaXNoVGFzazoKKyAgICAgICAgcmV0dXJu
IEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb25GaW5pc2hUYXNrOworICAgIGNhc2UgQXNzZXJ0aW9u
UmVhc29uOjpGaW5pc2hUYXNrVW5ib3VuZGVkOgorICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fz
c2VydGlvblJlYXNvbkZpbmlzaFRhc2tVbmJvdW5kZWQ7CiAgICAgfQogfQogCiBQcm9jZXNzQXNz
ZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBB
c3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKKyAgICA6IFByb2Nlc3NBc3NlcnRpb24ocGlk
LCBuYW1lLCBhc3NlcnRpb25TdGF0ZSwgcmVhc29uRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUpKQor
eworfQorCitQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSwgQXNzZXJ0aW9u
UmVhc29uIGFzc2VydGlvblJlYXNvbikKICAgICA6IG1fYXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9u
U3RhdGUpCiB7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKQEAgLTE3
Myw3ICsxOTAsNyBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBp
ZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZQogICAgIH07CiAgICAgUkVMRUFT
RV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBQSUQgJWQg
YWNxdWlyaW5nIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRCAlZCwgbmFtZSAnJXMnIiwg
dGhpcywgZ2V0cGlkKCksIHBpZCwgbmFtZS51dGY4KCkuZGF0YSgpKTsKICAgICAKLSAgICBtX2Fz
c2VydGlvbiA9IGFkb3B0TlMoW1tCS1NQcm9jZXNzQXNzZXJ0aW9uIGFsbG9jXSBpbml0V2l0aFBJ
RDpwaWQgZmxhZ3M6ZmxhZ3NGb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSkgcmVhc29uOnJlYXNvbkZv
clN0YXRlKGFzc2VydGlvblN0YXRlKSBuYW1lOihOU1N0cmluZyAqKW5hbWUgd2l0aEhhbmRsZXI6
aGFuZGxlcl0pOworICAgIG1fYXNzZXJ0aW9uID0gYWRvcHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRp
b24gYWxsb2NdIGluaXRXaXRoUElEOnBpZCBmbGFnczpmbGFnc0ZvclN0YXRlKGFzc2VydGlvblN0
YXRlKSByZWFzb246dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKGFzc2VydGlvblJlYXNvbikg
bmFtZTooTlNTdHJpbmcgKiluYW1lIHdpdGhIYW5kbGVyOmhhbmRsZXJdKTsKICAgICBtX2Fzc2Vy
dGlvbi5nZXQoKS5pbnZhbGlkYXRpb25IYW5kbGVyID0gXigpIHsKICAgICAgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKICAgICAgICAgICAgIFJFTEVBU0Vf
TE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzQXNzZXJ0aW9uKCkgUHJvY2VzcyBh
c3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQgJWQgd2FzIGludmFsaWRhdGVkIiwgdGhpcywg
cGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IGZmZjFhNWU3ZWY3Y2I1MDMxZmRmMzQ1MGEzMWIzNWNhMzljNjNhZGEuLjQ1NGJmYjJm
N2RjMmUzODg5ZDMxM2VlZTliYzc3ZThkNDJkYTY2OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTU1OSw2ICsxNTU5LDggQEAKIAkJ
Q0QwQzY4MzEyMDFGRDEwMTAwQTU5NDA5IC8qIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBDNjgyRjIw
MUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJ
Q0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2QTFB
MTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgfTsKIAkJ
Q0QxOUQyRUEyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUQyRTgy
MDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oICovOyB9Owor
CQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI4NjVFQzIy
NTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi87IH07CisJCUNE
Mjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI4NjVFRDIyNTU1
NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovOyB9OwogCQlDRDQ5
MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjA2MUU3MEQwNUYw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovOyB9OwogCQlDRDQ5MUIwRDFF
NzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFC
MEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcCAqLzsgfTsKIAkJQ0Q0OTFCMEUxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENDkxQjBDMUU3MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlck1lc3NhZ2VzLmggKi87IH07CkBAIC00NDA3LDYgKzQ0MDksOCBAQAogCQlDRDE5QTI2
QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUQyRTgyMDQ2NDA2RjAwMTcwNzRBIC8q
IEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBGdWxsc2NyZWVu
VG91Y2hTZWNoZXVyaXN0aWMuaDsgcGF0aCA9IGlvcy9mdWxsc2NyZWVuL0Z1bGxzY3JlZW5Ub3Vj
aFNlY2hldXJpc3RpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5RDJFOTIw
NDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3Mv
ZnVsbHNjcmVlbi9GdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlDRDI4NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcg
LyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJv
Y2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ5MUIwNjFFNzBEMDVGMDAw
MDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI4OSw2ICs2MjkzLDggQEAKIAkJ
CQlDNTVGOTE2QzFDNTk1RTQ0MDAyOUU5MkQgLyogRGF0YURldGVjdGlvblJlc3VsdC5oICovLAog
CQkJCUM1NUY5MTZEMUM1OTVFNDQwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tICov
LAogCQkJCTJEMTA4NzYyMUQyQzY0MUIwMEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVyc0NvY29hLm1t
ICovLAorCQkJCUNEMjg2NUVDMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIuaCAqLywKKwkJCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyLm1tICovLAogCQkJCUNENEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFy
ZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi8sCiAJCQkJQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDky
IC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi8sCiAJCQkJMUFCMUY3OEUxRDFCMzRBNjAw
N0M5QkQxIC8qIFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29hLm1tICovLApAQCAtOTM3MCw2ICs5
Mzc2LDcgQEAKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2Vy
dGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0QyODY1RUUyMjU1NTYyMDAwNjA2
QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYz
RkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgzMiAvKiBQcm9j
ZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTEwOTIzLDYgKzEwOTMwLDcg
QEAKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVudHJ5UG9p
bnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0RDIxMkNGOUYwMDAxMjhBRkQgLyogUGx1
Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDU0QzMxQjIxMkY0REE2MDA0OUMxNzQg
LyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNEMjg2NUVGMjI1NTU2
MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLywK
IAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmll
d3MubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNw
cAppbmRleCBjNDljZmMwMWRiNjM0YTQ5MjZiZTgzNjIzYWJmOTEzYTZiOTYwNDg4Li44MGMwN2Y5
MWFkZjRjYzg4NmI2NTg2NzA0MWE0ODgwMjg5Y2RjMjUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDQ2LDYgKzE0NDYsNyBAQCB2b2lkIFdlYlByb2Nlc3M6
OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucygpCiB2b2lkIFdlYlByb2Nlc3M6OmFjdHVh
bFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgc2hv
dWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9v
bD4gc3VzcGVuc2lvblNjb3BlKG1faXNTdXNwZW5kaW5nLCB0cnVlKTsKKyAgICBtX3Byb2Nlc3NJ
c1N1c3BlbmRlZCA9IHRydWU7CiAKICNpZiBFTkFCTEUoVklERU8pCiAgICAgc3VzcGVuZEFsbE1l
ZGlhQnVmZmVyaW5nKCk7CkBAIC0xNTA0LDYgKzE1MDUsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnBy
ZXBhcmVUb1N1c3BlbmQoKQogdm9pZCBXZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5k
KCkKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vz
czo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7CisKKyAgICBtX3Byb2Nlc3NJc1N1
c3BlbmRlZCA9IGZhbHNlOworCiAgICAgdW5mcmVlemVBbGxMYXllclRyZWVzKCk7CiAKICNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTU3NSw2ICsxNTc5LDggQEAgdm9pZCBXZWJQcm9jZXNz
Ojpwcm9jZXNzRGlkUmVzdW1lKCkKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lv
biwgIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CiAKKyAgICBt
X3Byb2Nlc3NJc1N1c3BlbmRlZCA9IGZhbHNlOworCiAgICAgY2FuY2VsTWFya0FsbExheWVyc1Zv
bGF0aWxlKCk7CiAgICAgdW5mcmVlemVBbGxMYXllclRyZWVzKCk7CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCAxZTQyY2Q1YmFjODE2ZjM1OTNmMzU3ZDFlODI5
OWRlYjA1ZGU4NmE0Li4yNTQ5MTRjMjUzMzYzMDA4NjZjY2Y5Njc1NGQ3Yzk5YjgyMGRlNThiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNp
bmNsdWRlICJNZWRpYURldmljZVNhbmRib3hFeHRlbnNpb25zLmgiCiAjZW5kaWYKICNpbmNsdWRl
ICJQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIuaCIKKyNpbmNsdWRlICJQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZUNhY2hlc1RvQ2xlYXIuaCIKICNp
bmNsdWRlICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW5jbHVkZSAiVGV4dENoZWNrZXJTdGF0ZS5o
IgpAQCAtMTE1LDcgKzExNiwxMiBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXNTdG9yZTsKIHN0cnVj
dCBXZWJzaXRlRGF0YTsKIHN0cnVjdCBXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVyczsKIAotY2xh
c3MgV2ViUHJvY2VzcyA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzIHsKK2NsYXNzIFdlYlByb2Nl
c3MKKyAgICA6IHB1YmxpYyBBdXhpbGlhcnlQcm9jZXNzCisjaWYgUExBVEZPUk0oQ09DT0EpCisg
ICAgLCBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OkNsaWVudAorI2VuZGlmCit7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFdlYlByb2Nlc3MmIHNpbmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25zdGV4
cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6V2ViQ29udGVudDsKQEAg
LTQyMSw2ICs0MjcsNyBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgdm9p
ZCB1cGRhdGVQcm9jZXNzTmFtZSgpOworICAgIHZvaWQgcHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5n
ZShQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSkgZmluYWw7CiAjZW5kaWYKIAog
I2lmIFBMQVRGT1JNKElPUykKQEAgLTQ5Myw2ICs1MDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXNSaWNoQ29udGVudFNlcnZpY2VzIHsgZmFsc2UgfTsKICNlbmRpZgogCisgICAgYm9vbCBt
X3Byb2Nlc3NJc1N1c3BlbmRlZCB7IGZhbHNlIH07CisKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBt
X3BhZ2VzSW5XaW5kb3dzOwogICAgIFdlYkNvcmU6OlRpbWVyIG1fbm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXI7CiAKQEAgLTUxOSw2ICs1MjgsOCBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JN
KENPQ09BKQogICAgIGVudW0gY2xhc3MgUHJvY2Vzc1R5cGUgeyBJbnNwZWN0b3IsIFNlcnZpY2VX
b3JrZXIsIFByZXdhcm1lZFdlYkNvbnRlbnQsIENhY2hlZFdlYkNvbnRlbnQsIFdlYkNvbnRlbnQg
fTsKICAgICBQcm9jZXNzVHlwZSBtX3Byb2Nlc3NUeXBlIHsgUHJvY2Vzc1R5cGU6OldlYkNvbnRl
bnQgfTsKKworICAgIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlciBtX3Rhc2tTdGF0ZU9ic2VydmVy
IHsgKnRoaXMgfTsKICNlbmRpZgogCiAgICAgSGFzaE1hcDxXZWJDb3JlOjpVc2VyR2VzdHVyZVRv
a2VuICosIHVpbnQ2NF90PiBtX3VzZXJHZXN0dXJlVG9rZW5zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMjRhYzVlMGFiMjlh
YjM5NWVkYmM2MTA4NDJjNWExZTgyNTFmMjVhYi4uMTQxYjVjOTQyYmM5NTg0YmUzMGNiNzA2Mzg4
NWViMTIwOGJhYjY2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
V2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJMb2dJbml0aWFs
aXphdGlvbi5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBo
LmgiCisjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94RXh0ZW5z
aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1w
b3J0ICJXS0FQSUNhc3QuaCIKQEAgLTI4MSw2ICsyODIsMzEgQEAgdm9pZCBXZWJQcm9jZXNzOjp1
cGRhdGVQcm9jZXNzTmFtZSgpCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogfQogCit2b2lkIFdl
YlByb2Nlc3M6OnByb2Nlc3NUYXNrU3RhdGVEaWRDaGFuZ2UoUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpUYXNrU3RhdGUgdGFza1N0YXRlKQoreworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNw
ZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpwcm9jZXNzVGFza1N0YXRlRGlkQ2hhbmdlKCkgLSB0
YXNrU3RhdGUoJWQpIiwgdGhpcywgdGFza1N0YXRlKTsKKyAgICBpZiAodGFza1N0YXRlID09IFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6Tm9uZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KHRhc2tTdGF0ZSA9PSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlN1c3BlbmRlZCkgeworICAg
ICAgICBpZiAobV9wcm9jZXNzSXNTdXNwZW5kZWQpCisgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnBy
b2Nlc3NUYXNrU3RhdGVDaGFuZ2VkKCkgLSB1bmV4cGVjdGVkbHkgZW50ZXJlZCBTdXNwZW5kZWQg
c3RhdGUiLCB0aGlzKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9wcm9j
ZXNzSXNTdXNwZW5kZWQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHdlcmUgYXdha2Vu
ZWQgZnJvbSBzdXNwZW5zaW9uIHVuZXhwZWN0ZWRseS4gTm90aWZ5IHRoZSBXZWJQcm9jZXNzUHJv
eHksIGJ1dCB0YWtlIGEgcHJvY2VzcyBhc3NlcnRpb24gb24gb3VyIHBhcmVudCBQSUQKKyAgICAv
LyB0byBlbnN1cmUgdGhhdCBpdCB0b28gaXMgYXdha2VuZWQuCisgICAgYXV0byB1aVByb2Nlc3NB
c3NlcnRpb24gPSBzdGQ6Om1ha2VfdW5pcXVlPFByb2Nlc3NBc3NlcnRpb24+KHBhcmVudFByb2Nl
c3NDb25uZWN0aW9uKCktPnJlbW90ZVByb2Nlc3NJRCgpLCAiVW5leHBlY3RlZGx5IHJlc3VtZWQi
LCBBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZCwgQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNr
KTsKKyAgICBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlByb2Nlc3NQcm94eTo6UHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVk
KCksIFt1aVByb2Nlc3NBc3NlcnRpb24gPSBXVEZNb3ZlKHVpUHJvY2Vzc0Fzc2VydGlvbildIHsK
KyAgICAgICAgdWlQcm9jZXNzQXNzZXJ0aW9uLT5zZXRTdGF0ZShBc3NlcnRpb25TdGF0ZTo6U3Vz
cGVuZGVkKTsKKyAgICB9KTsKK30KKwogc3RhdGljIHZvaWQgcmVnaXN0ZXJXaXRoQWNjZXNzaWJp
bGl0eSgpCiB7CiAjaWYgVVNFKEFQUEtJVCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366959</attachid>
            <date>2019-04-08 11:59:15 -0700</date>
            <delta_ts>2019-04-08 12:02:50 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196659-20190408115914.patch</filename>
            <type>text/plain</type>
            <size>31427</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQzNzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU4MWEyZTgwN2FiZjVmOTQ5
MzA3NTk3OGRmOGRjMjljOTZjMmRkN2EuLmVjNDEwNDhlNWIwMTQ1Nzk3YjUyODdjMzkxZDgzNjJi
OGE5MzFhOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMDUgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBd2FrZW4gVUlQcm9j
ZXNzIGlmIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb25zIHVu
ZXhwZWN0ZWRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Fzc2VydGlv
blNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
dGFza1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJEZWxlZ2F0ZSBwcm9jZXNzOnRhc2tTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktp
dDo6dG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3Rh
dGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
c2V0VGFza1N0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1Vu
ZXhwZWN0ZWRseVVuc3VzcGVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpzaG91bGRCZVJ1bm5hYmxlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OnJlYXNvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fz
c2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0
ZURpZENoYW5nZSk6CisKIDIwMTktMDQtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBEZWFjdGl2YXRlIHRoZSBhdWRpbyBzZXNzaW9uIGJlZm9y
ZSB0aGUgV2ViUHJvY2VzcyBzdXNwZW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaAppbmRleCBmMzczOWI0YWVhYjk5YjRmMzkyNWUxMjc1YmI4NTkxYjE1NzJlNzE2Li4z
NmJkOTEyZTBiY2U0YWE4Y2IxOGFkOTAxYmJiM2ZlOTBhNzNjODAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0xNzcsNyArMTc3LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBwb3N0Q29ubmVjdGlvbkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKCk7CiAK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIHNlbmRXaXRo
QXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4uKT4m
JiBhcmdzLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgQz4gdm9pZCBzZW5kV2l0aEFzeW5jUmVwbHkoVCYmIG1lc3NhZ2UsIEMm
JiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgc2VuZChUJiYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCwgT3B0aW9uU2V0PFNlbmRPcHRpb24+IHNlbmRPcHRpb25zID0geyB9KTsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRXaXRoUmVwbHkoVCYmIG1lc3NhZ2UsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIEZ1bmN0aW9uRGlzcGF0Y2hlciYgcmVwbHlEaXNwYXRjaGVyLCBG
dW5jdGlvbjx2b2lkKE9wdGlvbmFsPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6UmVw
bHk+OjpUeXBlPik+JiYgcmVwbHlIYW5kbGVyKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBi
b29sIHNlbmRTeW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBTZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgp
LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSk7CkBAIC00
MTYsOCArNDE2LDggQEAgdWludDY0X3QgbmV4dEFzeW5jUmVwbHlIYW5kbGVySUQoKTsKIHZvaWQg
YWRkQXN5bmNSZXBseUhhbmRsZXIoQ29ubmVjdGlvbiYsIHVpbnQ2NF90LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKERlY29kZXIqKT4mJik7CiBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERlY29kZXIq
KT4gdGFrZUFzeW5jUmVwbHlIYW5kbGVyKENvbm5lY3Rpb24mLCB1aW50NjRfdCk7CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+Ci12b2lkIENvbm5lY3Rpb246OnNlbmRX
aXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4u
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIEM+Cit2b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoQXN5bmNS
ZXBseShUJiYgbWVzc2FnZSwgQyYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5h
dGlvbklEKQogewogICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFzeW5jTWVzc2FnZUV4
cGVjdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Fz
c2VydGlvblNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNz
ZXJ0aW9uU2VydmljZXNTUEkuaAppbmRleCBmYWUyYTExMjkyODhiMzM0OThmZTY1ZjdjMDUyZTNm
MTIzYTJlYzQxLi5lYmNlMDk5OWVhZmRkNmIyZTIyOWI3YWJiZjBmMzI3YjY1YmJjYjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2VydmljZXNT
UEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2Vydmlj
ZXNTUEkuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU0FwcGxpY2F0aW9uU3RhdGVNb25pdG9yLmg+
CisjaW1wb3J0IDxBc3NlcnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzLmg+CiAjaW1wb3J0IDxBc3Nl
cnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzQXNzZXJ0aW9uLmg+CiAKICNlbHNlCkBAIC04Nyw0ICs4
OCwyNyBAQCB0eXBlZGVmIHZvaWQgKF5CS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5k
bGVyKShCT09MIGFjcXVpcmVkKTsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAorZW51bSB7
CisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZU5vbmUsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZVJ1
bm5pbmcsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZVN1c3BlbmRlZCwKK307Cit0eXBlZGVmIHVp
bnQzMl90IEJLU1Byb2Nlc3NUYXNrU3RhdGU7CisKK0BjbGFzcyBCS1NQcm9jZXNzOworCitAcHJv
dG9jb2wgQktTUHJvY2Vzc0RlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZClw
cm9jZXNzOihCS1NQcm9jZXNzICopcHJvY2VzcyB0YXNrU3RhdGVEaWRDaGFuZ2U6KEJLU1Byb2Nl
c3NUYXNrU3RhdGUpbmV3U3RhdGU7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyA6IE5T
T2JqZWN0CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyAoKQorKyAoQktTUHJvY2VzcyAq
KWN1cnJlbnRQcm9jZXNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgd2Vhaykg
aWQgPEJLU1Byb2Nlc3NEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGFzc2lnbikgQktTUHJvY2Vzc1Rhc2tTdGF0ZSB0YXNrU3RhdGU7CitAZW5kCisK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjk2MDk0NzUxN2MyNTg1OTlhNmU4ZDEwY2My
MzE4MDQ5ZTFhYjZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXS1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZl
ckRlbGVnYXRlOworT0JKQ19DTEFTUyBCS1NQcm9jZXNzOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBD
bGllbnQ7CisKKyAgICBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIoKTsKKyAgICBleHBsaWNpdCBQ
cm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIoQ2xpZW50Jik7CisgICAgflByb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlcigpOworICAgIAorICAgIGVudW0gVGFza1N0YXRlIHsKKyAgICAgICAgTm9uZSwKKyAg
ICAgICAgUnVubmluZywKKyAgICAgICAgU3VzcGVuZGVkLAorICAgIH07CisKKyAgICBjbGFzcyBD
bGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBkZWZhdWx0
OworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShUYXNrU3Rh
dGUpID0gMDsKKyAgICB9OworCisgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50JiBjbGllbnQpIHsg
bV9jbGllbnQgPSAmY2xpZW50OyB9CisgICAgQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2Ns
aWVudDsgfQorCisgICAgVGFza1N0YXRlIHRhc2tTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFz
a1N0YXRlOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRUYXNrU3RhdGUoVGFza1N0YXRlKTsK
KworICAgIENsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgVGFza1N0YXRlIG1fdGFz
a1N0YXRlIHsgTm9uZSB9OworICAgIFJldGFpblB0cjxCS1NQcm9jZXNzPiBtX3Byb2Nlc3M7Cisg
ICAgUmV0YWluUHRyPFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGU+IG1fZGVsZWdh
dGU7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhiZGI0MGNmY2Y5MjdlOGFiYTI4ZmQ5ODEwNTc1YmFjYTU1OTU0ZDMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXIubW0KQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCIKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNsdWRlICJBc3NlcnRpb25TZXJ2aWNlc1NQSS5oIgor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKwordHlwZWRl
ZiB2b2lkKF5UYXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2tUeXBlKShCS1NQcm9jZXNzVGFza1N0YXRl
KTsKKworQGludGVyZmFjZSBXS1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlckRlbGVnYXRlIDogTlNP
YmplY3Q8QktTUHJvY2Vzc0RlbGVnYXRlPgorQHByb3BlcnR5IChjb3B5KSBUYXNrU3RhdGVDaGFu
Z2VkQ2FsbGJhY2tUeXBlIHRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjazsKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGUKKy0gKHZvaWQpcHJv
Y2VzczooQktTUHJvY2VzcyAqKXByb2Nlc3MgdGFza1N0YXRlRGlkQ2hhbmdlOihCS1NQcm9jZXNz
VGFza1N0YXRlKW5ld1N0YXRlCit7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtW1dLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGUgcHJvY2Vzczp0YXNrU3Rh
dGVEaWRDaGFuZ2U6XSwgcHJvY2VzcyglcCksIG5ld1N0YXRlKCVkKSIsIHNlbGYsIHByb2Nlc3Ms
IChpbnQpbmV3U3RhdGUpOworCisgICAgaWYgKHNlbGYudGFza1N0YXRlQ2hhbmdlZENhbGxiYWNr
KQorICAgICAgICBzZWxmLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjayhuZXdTdGF0ZSk7Cit9CitA
ZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpUYXNrU3RhdGUgdG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUoQktTUHJv
Y2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQzMl90PihCS1NQcm9jZXNzVGFza1N0YXRlTm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6Tm9uZSksICJCS1NQcm9jZXNzVGFza1N0YXRlICE9
IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDx1aW50MzJfdD4oQktTUHJvY2Vzc1Rhc2tTdGF0ZVJ1bm5pbmcpID09IHN0
YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlJ1bm5pbmcpLCAi
QktTUHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0
ZSIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEJLU1Byb2Nlc3NU
YXNrU3RhdGVTdXNwZW5kZWQpID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXI6OlN1c3BlbmRlZCksICJCS1NQcm9jZXNzVGFza1N0YXRlICE9IFByb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlPihzdGF0ZSk7Cit9CisKK1Byb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKKyAgICA6IG1fcHJv
Y2VzcyhCS1NQcm9jZXNzLmN1cnJlbnRQcm9jZXNzKQorICAgICwgbV9kZWxlZ2F0ZShhZG9wdE5T
KFtbV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pKQorewor
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzVGFza1N0YXRl
T2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpLCBtX3Byb2Nlc3MoJXApIiwgdGhp
cywgbV9wcm9jZXNzLmdldCgpKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLnRhc2tTdGF0ZUNoYW5n
ZWRDYWxsYmFjayA9IFt0aGlzXSAoQktTUHJvY2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkgeworICAgICAg
ICBzZXRUYXNrU3RhdGUodG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUoc3RhdGUp
KTsKKyAgICB9OworICAgIG1fcHJvY2Vzcy5nZXQoKS5kZWxlZ2F0ZSA9IG1fZGVsZWdhdGUuZ2V0
KCk7Cit9CisKK1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyKENsaWVudCYgY2xpZW50KQorICAgIDogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKK3sK
KyAgICBzZXRDbGllbnQoY2xpZW50KTsKK30KKworUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjp+
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKK3sKKyAgICBtX2RlbGVnYXRlLmdldCgpLnRhc2tT
dGF0ZUNoYW5nZWRDYWxsYmFjayA9IG5pbDsKK30KKwordm9pZCBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXI6OnNldFRhc2tTdGF0ZShUYXNrU3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1fdGFza1N0
YXRlID09IHN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Rhc2tTdGF0ZSA9IHN0YXRl
OworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnByb2Nlc3NUYXNrU3RhdGVE
aWRDaGFuZ2Uoc3RhdGUpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZ
KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
cm94eUNvY29hLm1tCmluZGV4IGNhNjk1NWIzNTAwYzdkZTJiZTcyYTRkYzc0ZjI1YzNjZjY1Mzlm
OWYuLjdiYWJkZWI2MDMwM2ZhNzMyMzE5NDZkZjYxNDdlYWEzNWQzYTg2ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CkBAIC00MSw2ICs0MSw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyB1bmV4cGVjdGVkQWN0aXZpdHlEdXJhdGlvbiA9IDEwX3M7CisKIGNvbnN0IEhhc2hT
ZXQ8U3RyaW5nPiYgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFk
QWNjZXNzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBw
bGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxT
dHJpbmc+IHsKQEAgLTE4Nyw0ICsxODksMjUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbGVh
c2VIaWdoUGVyZm9ybWFuY2VHUFUoKQogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXYXNVbmV4cGVjdGVkbHlVbnN1c3Bl
bmRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAo
bV90aHJvdHRsZXIuc2hvdWxkQmVSdW5uYWJsZSgpKSB7CisgICAgICAgIC8vIFRoZSBwcm9jZXNz
IGJlY29taW5nIHVuc3VzcGVuZGVkIHdhcyBub3QgdW5leHBlY3RlZDsgaXQgbGlrZWx5IHdhcyBu
b3RpZmllZCBvZiBpdHMgcnVubmluZyBzdGF0ZQorICAgICAgICAvLyBiZWZvcmUgcmVjZWl2aW5n
IGEgcHJvY3Nlc3NEaWRSZXN1bWUoKSBtZXNzYWdlIGZyb20gdGhlIFVJUHJvY2Vzcy4KKyAgICAg
ICAgY29tcGxldGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gVGhlIFdl
YlByb2Nlc3Mgd2FzIGF3YWtlbmVkIGJ5IHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBVSVByb2Nl
c3MuIFRha2Ugb3V0IGFuIGFzc2VydGlvbiBmb3IgYQorICAgIC8vIGxpbWl0ZWQgZHVyYXRpb24g
dG8gYWxsb3cgd2hhdGV2ZXIgdGFzayBuZWVkcyB0byBiZSBhY2NvbXBsaXNoZWQgdGltZSB0byBj
b21wbGV0ZS4KKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJv
Y2Vzc1Byb3h5Ojpwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoKSIsIHRoaXMpOwor
ICAgIGF1dG8gYmFja2dyb3VuZEFjdGl2aXR5VGltZW91dEhhbmRsZXIgPSBbYWN0aXZpdHlUb2tl
biA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCksIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVk
KCkgLSBsYW1iZGEsIGJhY2tncm91bmQgYWN0aXZpdHkgdGltZWQgb3V0Iiwgd2Vha1RoaXMuZ2V0
KCkpOworICAgIH07CisgICAgbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lciA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4oV1RGTW92ZShiYWNrZ3JvdW5k
QWN0aXZpdHlUaW1lb3V0SGFuZGxlciksIHVuZXhwZWN0ZWRBY3Rpdml0eUR1cmF0aW9uKTsKKyAg
ICBjb21wbGV0aW9uKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBlMzI1ZDEwY2Q5ZjQ1Y2VhOGIzMmRkYzEyYTNi
MThkZGQyNThiZjk3Li5lZGIwNmQzYjIwOWJiMjZkZGJjOWY5MzRmNDA2NWNlNWMwNmU5NWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtMzUs
NiArMzUsMTEgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQs
IGNvbnN0IFN0cmluZyYsIEFzc2VydGlvblN0YXRlIGFzc2UKIHsKIH0KIAorUHJvY2Vzc0Fzc2Vy
dGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXNz
ZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUsIEFzc2VydGlvblJlYXNvbikKKyAgICA6IG1fYXNz
ZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCit7Cit9CisKIFByb2Nlc3NBc3NlcnRpb246On5Q
cm9jZXNzQXNzZXJ0aW9uKCkgPSBkZWZhdWx0OwogCiB2b2lkIFByb2Nlc3NBc3NlcnRpb246OnNl
dFN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IDQ3Y2M4MGY4ZWRmN2RhZGY5OWQ5MGY3OWNl
MjgxNWRiM2NjOWJkZjYuLmEwMWM3NmRiNzMzYjllZWU2ZDJiZTk3ZTc2MmM4MGU5NGI1ODMwMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTQ1LDcg
KzQ1LDEzIEBAIGVudW0gY2xhc3MgQXNzZXJ0aW9uU3RhdGUgewogICAgIFN1c3BlbmRlZCwKICAg
ICBCYWNrZ3JvdW5kLAogICAgIFVuYm91bmRlZE5ldHdvcmtpbmcsCi0gICAgRm9yZWdyb3VuZAor
ICAgIEZvcmVncm91bmQsCit9OworCitlbnVtIGNsYXNzIEFzc2VydGlvblJlYXNvbiB7CisgICAg
RXh0ZW5zaW9uLAorICAgIEZpbmlzaFRhc2ssCisgICAgRmluaXNoVGFza1VuYm91bmRlZCwKIH07
CiAKIGNsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vz
c0Fzc2VydGlvbj4gewpAQCAtNTgsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFBy
b2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgQXNzZXJ0aW9u
U3RhdGUpOworICAgIFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJl
YXNvbiwgQXNzZXJ0aW9uU3RhdGUsIEFzc2VydGlvblJlYXNvbik7CiAgICAgdmlydHVhbCB+UHJv
Y2Vzc0Fzc2VydGlvbigpOwogCiAgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50JiBjbGllbnQpIHsg
bV9jbGllbnQgPSAmY2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCmluZGV4IGI2MTJkYTBlODhhZDk3ZTc2ZTZmNmU4NzkwMGFjNWZiYWZmMDNl
ZmIuLjAwYTk5MTg4NjE0ODczOTM4YTZjYjRhYmQ5OTE0YmM4NjI5NDVjZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC02OCw3ICs2OCw3IEBA
IHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkKICAgICAKIHZvaWQg
UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkKIHsKLSAgICBib29sIHNob3VsZEJl
UnVubmFibGUgPSBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCkgfHwgbV9iYWNrZ3JvdW5kQ291
bnRlci52YWx1ZSgpOworICAgIGJvb2wgc2hvdWxkQmVSdW5uYWJsZSA9IHRoaXMtPnNob3VsZEJl
UnVubmFibGUoKTsKIAogICAgIC8vIElmIHRoZSBwcm9jZXNzIGlzIGN1cnJlbnRseSBydW5uYWJs
ZSBidXQgd2lsbCBiZSBzdXNwZW5kZWQgdGhlbiBmaXJzdCBnaXZlIGl0IGEgY2hhbmNlIHRvIGNv
bXBsZXRlIHdoYXQgaXQgd2FzIGRvaW5nCiAgICAgLy8gYW5kIGNsZWFuIHVwIC0gbW92ZSBpdCB0
byB0aGUgYmFja2dyb3VuZCBhbmQgc2VuZCBpdCBhIG1lc3NhZ2UgdG8gbm90aWZ5LiBTY2hlZHVs
ZSBhIHRpbWVvdXQgc28gaXQgY2FuJ3Qgc3RheSBydW5uaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKaW5kZXggMDU3NmUzODZkODY2NTVmNGE3ODRlNzc3MjFj
MGZjM2IzNDRjM2RkNS4uZmQxNTI5Y2Q0Nzc1ZTg2MmMwZjYyNTE4OGU5MTA2NTFmYTIxMjdiNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAtNjAsNiAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb25uZWN0VG9Qcm9jZXNzKFByb2Nlc3NJRCk7
CiAgICAgdm9pZCBwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKICAgICB2b2lkIGRpZENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uKCk7CisgICAgYm9vbCBzaG91bGRCZVJ1bm5hYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb3JlZ3JvdW5kQ291bnRlci52YWx1ZSgpIHx8IG1fYmFja2dyb3VuZENvdW50ZXIu
dmFsdWUoKTsgfQogCiBwcml2YXRlOgogICAgIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGEyNTNh
ZTViNmE5MWVlNDIzYzI3YWVlNGYxZGMzOWViY2MzMThmMGQuLjE4N2RiZmZiYmRmODMyMDg0NDI1
M2UxZWJlMWVjMTAzMzRhYTU4N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogfQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEZWZlcnJhYmxlT25lU2hvdFRpbWVyOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0IFBsdWdpbkluZm87CiBzdHJ1Y3QgU2VjdXJpdHlP
cmlnaW5EYXRhOwpAQCAtMjk3LDYgKzI5OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgdm9pZCBwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlBy
b2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTQzOCw2ICs0
NDMsNyBAQCBwcml2YXRlOgogICAgIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9mb3JlZ3Jv
dW5kVG9rZW47CiAgICAgQmFja2dyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2JhY2tncm91bmRUb2tl
bjsKICAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVy
IHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNo
b3RUaW1lcj4gbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogCiAgICAgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ2NF90PiBtX3BhZ2VVUkxSZXRhaW5Db3VudE1hcDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBj
NDI0YzE4ZTY4MzQ0NDM3NWU0OTE2NGM5ZGU4OTkyZjg3YmNkN2ZmLi5mM2Q1ZTkzMWU2ZGVlOTAy
YTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC03OSw0ICs3OSw4IEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnREaXNwbGF5
TGluayh1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiAgICAgU3RvcERp
c3BsYXlMaW5rKHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKICNlbmRp
ZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBQcm9jZXNzV2FzVW5leHBlY3RlZGx5
VW5zdXNwZW5kZWQoKSAtPiAoKSBBc3luYworI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IDhjNGRlM2EzMGVm
MmI1NzNjMzdjNWJjYTY3OTc3MWI5ZTZlMzBlN2YuLmI4ZTZjZmQ2N2JiNjFiNWY5MTQ1MDk2ZDc0
YzM1YTY5MTcyZDUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC0xNDYsMTkgKzE0NiwzNiBAQCBzdGF0aWMgQktTUHJv
Y2Vzc0Fzc2VydGlvbkZsYWdzIGZsYWdzRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9u
U3RhdGUpCiAgICAgfQogfQogCi1zdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbiByZWFz
b25Gb3JTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKK3N0YXRpYyBBc3NlcnRp
b25SZWFzb24gcmVhc29uRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCiB7
CiAgICAgc3dpdGNoIChhc3NlcnRpb25TdGF0ZSkgewogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6
OlVuYm91bmRlZE5ldHdvcmtpbmc6Ci0gICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9u
UmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKKyAgICAgICAgcmV0dXJuIEFzc2VydGlvblJlYXNv
bjo6RmluaXNoVGFza1VuYm91bmRlZDsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpTdXNwZW5k
ZWQ6CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZDoKICAgICBjYXNlIEFzc2Vy
dGlvblN0YXRlOjpGb3JlZ3JvdW5kOgorICAgICAgICByZXR1cm4gQXNzZXJ0aW9uUmVhc29uOjpF
eHRlbnNpb247CisgICAgfQorfQorCitzdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbiB0
b0JLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24oQXNzZXJ0aW9uUmVhc29uIHJlYXNvbikKK3sKKyAg
ICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpFeHRlbnNpb246
CiAgICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRXh0ZW5zaW9uOworICAg
IGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrOgorICAgICAgICByZXR1cm4gQktTUHJv
Y2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2s7CisgICAgY2FzZSBBc3NlcnRpb25SZWFzb246
OkZpbmlzaFRhc2tVbmJvdW5kZWQ6CisgICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9u
UmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKICAgICB9CiB9CiAKIFByb2Nlc3NBc3NlcnRpb246
OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFzc2VydGlv
blN0YXRlIGFzc2VydGlvblN0YXRlKQorICAgIDogUHJvY2Vzc0Fzc2VydGlvbihwaWQsIG5hbWUs
IGFzc2VydGlvblN0YXRlLCByZWFzb25Gb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSkpCit7Cit9CisK
K1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlLCBBc3NlcnRpb25SZWFzb24g
YXNzZXJ0aW9uUmVhc29uKQogICAgIDogbV9hc3NlcnRpb25TdGF0ZShhc3NlcnRpb25TdGF0ZSkK
IHsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwpAQCAtMTczLDcgKzE5
MCw3IEBAIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25z
dCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0YXRlCiAgICAgfTsKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFBJRCAlZCBhY3F1aXJp
bmcgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEICVkLCBuYW1lICclcyciLCB0aGlzLCBn
ZXRwaWQoKSwgcGlkLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogICAgIAotICAgIG1fYXNzZXJ0aW9u
ID0gYWRvcHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElEOnBpZCBm
bGFnczpmbGFnc0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246cmVhc29uRm9yU3RhdGUo
YXNzZXJ0aW9uU3RhdGUpIG5hbWU6KE5TU3RyaW5nICopbmFtZSB3aXRoSGFuZGxlcjpoYW5kbGVy
XSk7CisgICAgbV9hc3NlcnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2VydGlvbiBhbGxv
Y10gaW5pdFdpdGhQSUQ6cGlkIGZsYWdzOmZsYWdzRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUpIHJl
YXNvbjp0b0JLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24oYXNzZXJ0aW9uUmVhc29uKSBuYW1lOihO
U1N0cmluZyAqKW5hbWUgd2l0aEhhbmRsZXI6aGFuZGxlcl0pOwogICAgIG1fYXNzZXJ0aW9uLmdl
dCgpLmludmFsaWRhdGlvbkhhbmRsZXIgPSBeKCkgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBQcm9jZXNzIGFzc2VydGlv
biBmb3IgcHJvY2VzcyB3aXRoIFBJRCAlZCB3YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBwaWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
ZmZmMWE1ZTdlZjdjYjUwMzFmZGYzNDUwYTMxYjM1Y2EzOWM2M2FkYS4uNDU0YmZiMmY3ZGMyZTM4
ODlkMzEzZWVlOWJjNzdlOGQ0MmRhNjY5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTU5LDYgKzE1NTksOCBAQAogCQlDRDBDNjgz
MTIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMEM2ODJGMjAxRkQxMDEw
MEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oICovOyB9OwogCQlDRDE5QTI2
RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEw
MDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQlDRDE5RDJF
QTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJFODIwNDY0MDZG
MDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IH07CisJCUNEMjg2
NUVFMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVDMjI1NTU2MjAw
MDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJQ0QyODY1RUYy
MjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVEMjI1NTU2MjAwMDYw
NkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi87IH07CiAJCUNENDkxQjA4MUU3
MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi87IH07CiAJCUNENDkxQjBEMUU3MzJFNEQw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQjFFNzMy
RTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
TWVzc2FnZXMuaCAqLzsgfTsKQEAgLTQ0MDcsNiArNDQwOSw4IEBACiAJCUNEMTlBMjZBMUExM0U4
MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5RDJFODIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNj
cmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZ1bGxzY3JlZW5Ub3VjaFNl
Y2hldXJpc3RpYy5oOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vRnVsbHNjcmVlblRvdWNoU2VjaGV1
cmlzdGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTlEMkU5MjA0NjQwNkYw
MDE3MDc0QSAvKiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcDsgcGF0aCA9IGlvcy9mdWxsc2Ny
ZWVuL0Z1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMjg2NUVDMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMjg2NUVEMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9j
ZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDkxQjA1
MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02Mjg5LDYgKzYyOTMsOCBAQAogCQkJCUM1NUY5
MTZDMUM1OTVFNDQwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggKi8sCiAJCQkJQzU1
RjkxNkQxQzU5NUU0NDAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQubW0gKi8sCiAJCQkJ
MkQxMDg3NjIxRDJDNjQxQjAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzQ29jb2EubW0gKi8sCisJ
CQkJQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5o
ICovLAorCQkJCUNEMjg2NUVEMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIubW0gKi8sCiAJCQkJQ0Q0QjREOUExRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlLmNwcCAqLywKIAkJCQlDRDRCNEQ5QjFFNzY1RTAwMDBEMjcwOTIgLyogU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCAqLywKIAkJCQkxQUIxRjc4RTFEMUIzNEE2MDA3QzlCRDEg
LyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gKi8sCkBAIC05MzcwLDYgKzkzNzYsNyBA
QAogCQkJCUUxQ0MxQjkwMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xh
dW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZBQzcgLyog
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFF
Qjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJv
dHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5MjMsNiArMTA5MzAsNyBAQAogCQkJ
CUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTJEOTEzNDREMjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVnaW5WaWV3
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9j
ZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2
QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
NzJBMUZBMjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IGM0OWNmYzAxZGI2MzRhNDkyNmJlODM2MjNhYmY5MTNhNmI5NjA0ODguLjgwYzA3ZjkxYWRmNGNj
ODg2YjY1ODY3MDQxYTQ4ODAyODljZGMyNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTE0NDYsNiArMTQ0Niw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVzZXRB
bGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKCkKIHZvaWQgV2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFy
ZVRvU3VzcGVuZChTaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCBzaG91bGRBY2tu
b3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBzdXNw
ZW5zaW9uU2NvcGUobV9pc1N1c3BlbmRpbmcsIHRydWUpOworICAgIG1fcHJvY2Vzc0lzU3VzcGVu
ZGVkID0gdHJ1ZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdXNwZW5kQWxsTWVkaWFCdWZm
ZXJpbmcoKTsKQEAgLTE1MDQsNiArMTUwNSw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFyZVRv
U3VzcGVuZCgpCiB2b2lkIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKQogewog
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpjYW5j
ZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKKworICAgIG1fcHJvY2Vzc0lzU3VzcGVuZGVk
ID0gZmFsc2U7CisKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkBAIC0xNTc1LDYgKzE1NzksOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKQogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKIAorICAgIG1fcHJvY2Vz
c0lzU3VzcGVuZGVkID0gZmFsc2U7CisKICAgICBjYW5jZWxNYXJrQWxsTGF5ZXJzVm9sYXRpbGUo
KTsKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IDFlNDJjZDViYWM4MTZmMzU5M2YzNTdkMWU4Mjk5ZGViMDVk
ZTg2YTQuLjBhNWJmYjZjNjdjMWFiYjhhN2YwMjkxZmY3YTFjNjIwOTAyMDVkM2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTgsNiArNTgsNyBAQAogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NUYXNrU3RhdGVPYnNl
cnZlci5oIgogI2luY2x1ZGUgIldlYlNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIgogI2VuZGlmCiAK
QEAgLTExNSw3ICsxMTYsMTIgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzU3RvcmU7CiBzdHJ1Y3Qg
V2Vic2l0ZURhdGE7CiBzdHJ1Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKLWNsYXNz
IFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcyB7CitjbGFzcyBXZWJQcm9jZXNz
CisgICAgOiBwdWJsaWMgQXV4aWxpYXJ5UHJvY2VzcworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgLCBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OkNsaWVudAorI2VuZGlmCit7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFdlYlByb2Nlc3MmIHNpbmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6V2ViQ29udGVudDsK
QEAgLTQyOCw2ICs0MzQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorICAgIHZvaWQgcHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShQcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSkgZmluYWw7CiAgICAgYm9vbCBzaG91bGRGcmVlemVPblN1
c3BlbnNpb24oKSBjb25zdDsKICAgICB2b2lkIHVwZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKICNlbmRp
ZgpAQCAtNDkzLDYgKzUwMCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1JpY2hDb250ZW50
U2VydmljZXMgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyAgICBib29sIG1fcHJvY2Vzc0lzU3VzcGVu
ZGVkIHsgZmFsc2UgfTsKKwogICAgIEhhc2hTZXQ8dWludDY0X3Q+IG1fcGFnZXNJbldpbmRvd3M7
CiAgICAgV2ViQ29yZTo6VGltZXIgbV9ub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lcjsKIApA
QCAtNTAwLDYgKzUwOSw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQog
ICAgIFdlYlNRTGl0ZURhdGFiYXNlVHJhY2tlciBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcjsK
KyAgICBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIgbV90YXNrU3RhdGVPYnNlcnZlciB7ICp0aGlz
IH07CiAjZW5kaWYKIAogICAgIGVudW0gUGFnZU1hcmtpbmdMYXllcnNBc1ZvbGF0aWxlQ291bnRl
clR5cGUgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9j
ZXNzQ29jb2EubW0KaW5kZXggMjRhYzVlMGFiMjlhYjM5NWVkYmM2MTA4NDJjNWExZTgyNTFmMjVh
Yi4uNGE1ZjY4YTI0NDY5MmQ2ZGVlZTFiMTI0NmM2N2M0YjYzZDE4YTJmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0zMSw2
ICszMSw3IEBACiAjaW1wb3J0ICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2ltcG9ydCAiTG9nZ2lu
Zy5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCisjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0
aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94RXh0ZW5zaW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5p
dGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKQEAgLTI4MSw2
ICsyODIsMzEgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQcm9jZXNzTmFtZSgpCiAjZW5kaWYg
Ly8gUExBVEZPUk0oTUFDKQogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgV2Vi
UHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI6OlRhc2tTdGF0ZSB0YXNrU3RhdGUpCit7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NUYXNrU3RhdGVEaWRDaGFuZ2UoKSAtIHRh
c2tTdGF0ZSglZCkiLCB0aGlzLCB0YXNrU3RhdGUpOworICAgIGlmICh0YXNrU3RhdGUgPT0gUHJv
Y2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpOb25lKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
dGFza1N0YXRlID09IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6U3VzcGVuZGVkKSB7CisgICAg
ICAgIGlmIChtX3Byb2Nlc3NJc1N1c3BlbmRlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAg
ICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6cHJv
Y2Vzc1Rhc2tTdGF0ZUNoYW5nZWQoKSAtIHVuZXhwZWN0ZWRseSBlbnRlcmVkIFN1c3BlbmRlZCBz
dGF0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3Byb2Nl
c3NJc1N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugd2VyZSBhd2FrZW5l
ZCBmcm9tIHN1c3BlbnNpb24gdW5leHBlY3RlZGx5LiBOb3RpZnkgdGhlIFdlYlByb2Nlc3NQcm94
eSwgYnV0IHRha2UgYSBwcm9jZXNzIGFzc2VydGlvbiBvbiBvdXIgcGFyZW50IFBJRAorICAgIC8v
IHRvIGVuc3VyZSB0aGF0IGl0IHRvbyBpcyBhd2FrZW5lZC4KKyAgICBhdXRvIHVpUHJvY2Vzc0Fz
c2VydGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc0Fzc2VydGlvbj4ocGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+cmVtb3RlUHJvY2Vzc0lEKCksICJVbmV4cGVjdGVkbHkgcmVzdW1lZCIs
IEFzc2VydGlvblN0YXRlOjpCYWNrZ3JvdW5kLCBBc3NlcnRpb25SZWFzb246OkZpbmlzaFRhc2sp
OworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQo
KSwgW3VpUHJvY2Vzc0Fzc2VydGlvbiA9IFdURk1vdmUodWlQcm9jZXNzQXNzZXJ0aW9uKV0geyB9
KTsKK30KKyNlbmRpZgorCiBzdGF0aWMgdm9pZCByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCkK
IHsKICNpZiBVU0UoQVBQS0lUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366961</attachid>
            <date>2019-04-08 12:02:51 -0700</date>
            <delta_ts>2019-04-08 13:01:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196659-20190408120251.patch</filename>
            <type>text/plain</type>
            <size>31477</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhZGE1NjBiODc0YzExZGE0
NDcyNTBmMDJkYWI3ZDFlMGJiZjNkZmUuLjY1YmM4YmM2ODk1YmU5NWQwZWE0ZjZjY2FiYzhiY2Qy
NWZkMzJmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMDUgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBd2FrZW4gVUlQcm9j
ZXNzIGlmIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb25zIHVu
ZXhwZWN0ZWRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Fzc2VydGlv
blNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
dGFza1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJEZWxlZ2F0ZSBwcm9jZXNzOnRhc2tTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktp
dDo6dG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3Rh
dGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
c2V0VGFza1N0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1Vu
ZXhwZWN0ZWRseVVuc3VzcGVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpzaG91bGRCZVJ1bm5hYmxlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OnJlYXNvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fz
c2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0
ZURpZENoYW5nZSk6CisKIDIwMTktMDQtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBEZWFjdGl2YXRlIHRoZSBhdWRpbyBzZXNzaW9uIGJlZm9y
ZSB0aGUgV2ViUHJvY2VzcyBzdXNwZW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaAppbmRleCBmMzczOWI0YWVhYjk5YjRmMzkyNWUxMjc1YmI4NTkxYjE1NzJlNzE2Li4z
NmJkOTEyZTBiY2U0YWE4Y2IxOGFkOTAxYmJiM2ZlOTBhNzNjODAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0xNzcsNyArMTc3LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBwb3N0Q29ubmVjdGlvbkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKCk7CiAK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIHNlbmRXaXRo
QXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4uKT4m
JiBhcmdzLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgQz4gdm9pZCBzZW5kV2l0aEFzeW5jUmVwbHkoVCYmIG1lc3NhZ2UsIEMm
JiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgc2VuZChUJiYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCwgT3B0aW9uU2V0PFNlbmRPcHRpb24+IHNlbmRPcHRpb25zID0geyB9KTsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRXaXRoUmVwbHkoVCYmIG1lc3NhZ2UsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIEZ1bmN0aW9uRGlzcGF0Y2hlciYgcmVwbHlEaXNwYXRjaGVyLCBG
dW5jdGlvbjx2b2lkKE9wdGlvbmFsPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6UmVw
bHk+OjpUeXBlPik+JiYgcmVwbHlIYW5kbGVyKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBi
b29sIHNlbmRTeW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBTZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgp
LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSk7CkBAIC00
MTYsOCArNDE2LDggQEAgdWludDY0X3QgbmV4dEFzeW5jUmVwbHlIYW5kbGVySUQoKTsKIHZvaWQg
YWRkQXN5bmNSZXBseUhhbmRsZXIoQ29ubmVjdGlvbiYsIHVpbnQ2NF90LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKERlY29kZXIqKT4mJik7CiBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERlY29kZXIq
KT4gdGFrZUFzeW5jUmVwbHlIYW5kbGVyKENvbm5lY3Rpb24mLCB1aW50NjRfdCk7CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+Ci12b2lkIENvbm5lY3Rpb246OnNlbmRX
aXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4u
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIEM+Cit2b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoQXN5bmNS
ZXBseShUJiYgbWVzc2FnZSwgQyYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5h
dGlvbklEKQogewogICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFzeW5jTWVzc2FnZUV4
cGVjdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Fz
c2VydGlvblNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNz
ZXJ0aW9uU2VydmljZXNTUEkuaAppbmRleCBmYWUyYTExMjkyODhiMzM0OThmZTY1ZjdjMDUyZTNm
MTIzYTJlYzQxLi5lYmNlMDk5OWVhZmRkNmIyZTIyOWI3YWJiZjBmMzI3YjY1YmJjYjVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2VydmljZXNT
UEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2Vydmlj
ZXNTUEkuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU0FwcGxpY2F0aW9uU3RhdGVNb25pdG9yLmg+
CisjaW1wb3J0IDxBc3NlcnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzLmg+CiAjaW1wb3J0IDxBc3Nl
cnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzQXNzZXJ0aW9uLmg+CiAKICNlbHNlCkBAIC04Nyw0ICs4
OCwyNyBAQCB0eXBlZGVmIHZvaWQgKF5CS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRpb25IYW5k
bGVyKShCT09MIGFjcXVpcmVkKTsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAorZW51bSB7
CisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZU5vbmUsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZVJ1
bm5pbmcsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZVN1c3BlbmRlZCwKK307Cit0eXBlZGVmIHVp
bnQzMl90IEJLU1Byb2Nlc3NUYXNrU3RhdGU7CisKK0BjbGFzcyBCS1NQcm9jZXNzOworCitAcHJv
dG9jb2wgQktTUHJvY2Vzc0RlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAodm9pZClw
cm9jZXNzOihCS1NQcm9jZXNzICopcHJvY2VzcyB0YXNrU3RhdGVEaWRDaGFuZ2U6KEJLU1Byb2Nl
c3NUYXNrU3RhdGUpbmV3U3RhdGU7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyA6IE5T
T2JqZWN0CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyAoKQorKyAoQktTUHJvY2VzcyAq
KWN1cnJlbnRQcm9jZXNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwgd2Vhaykg
aWQgPEJLU1Byb2Nlc3NEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHksIGFzc2lnbikgQktTUHJvY2Vzc1Rhc2tTdGF0ZSB0YXNrU3RhdGU7CitAZW5kCisK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjk2MDk0NzUxN2MyNTg1OTlhNmU4ZDEwY2My
MzE4MDQ5ZTFhYjZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29j
b2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgKQEAgLTAsMCArMSw3MyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUg
PHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXS1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZl
ckRlbGVnYXRlOworT0JKQ19DTEFTUyBCS1NQcm9jZXNzOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBjbGFzcyBD
bGllbnQ7CisKKyAgICBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIoKTsKKyAgICBleHBsaWNpdCBQ
cm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIoQ2xpZW50Jik7CisgICAgflByb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlcigpOworICAgIAorICAgIGVudW0gVGFza1N0YXRlIHsKKyAgICAgICAgTm9uZSwKKyAg
ICAgICAgUnVubmluZywKKyAgICAgICAgU3VzcGVuZGVkLAorICAgIH07CisKKyAgICBjbGFzcyBD
bGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBkZWZhdWx0
OworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShUYXNrU3Rh
dGUpID0gMDsKKyAgICB9OworCisgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50JiBjbGllbnQpIHsg
bV9jbGllbnQgPSAmY2xpZW50OyB9CisgICAgQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2Ns
aWVudDsgfQorCisgICAgVGFza1N0YXRlIHRhc2tTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGFz
a1N0YXRlOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRUYXNrU3RhdGUoVGFza1N0YXRlKTsK
KworICAgIENsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgVGFza1N0YXRlIG1fdGFz
a1N0YXRlIHsgTm9uZSB9OworICAgIFJldGFpblB0cjxCS1NQcm9jZXNzPiBtX3Byb2Nlc3M7Cisg
ICAgUmV0YWluUHRyPFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGU+IG1fZGVsZWdh
dGU7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1t
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1t
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjhiZGI0MGNmY2Y5MjdlOGFiYTI4ZmQ5ODEwNTc1YmFjYTU1OTU0ZDMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXIubW0KQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCIKKworI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNsdWRlICJBc3NlcnRpb25TZXJ2aWNlc1NQSS5oIgor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKwordHlwZWRl
ZiB2b2lkKF5UYXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2tUeXBlKShCS1NQcm9jZXNzVGFza1N0YXRl
KTsKKworQGludGVyZmFjZSBXS1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlckRlbGVnYXRlIDogTlNP
YmplY3Q8QktTUHJvY2Vzc0RlbGVnYXRlPgorQHByb3BlcnR5IChjb3B5KSBUYXNrU3RhdGVDaGFu
Z2VkQ2FsbGJhY2tUeXBlIHRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjazsKK0BlbmQKKworQGltcGxl
bWVudGF0aW9uIFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGUKKy0gKHZvaWQpcHJv
Y2VzczooQktTUHJvY2VzcyAqKXByb2Nlc3MgdGFza1N0YXRlRGlkQ2hhbmdlOihCS1NQcm9jZXNz
VGFza1N0YXRlKW5ld1N0YXRlCit7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtW1dLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGUgcHJvY2Vzczp0YXNrU3Rh
dGVEaWRDaGFuZ2U6XSwgcHJvY2VzcyglcCksIG5ld1N0YXRlKCVkKSIsIHNlbGYsIHByb2Nlc3Ms
IChpbnQpbmV3U3RhdGUpOworCisgICAgaWYgKHNlbGYudGFza1N0YXRlQ2hhbmdlZENhbGxiYWNr
KQorICAgICAgICBzZWxmLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjayhuZXdTdGF0ZSk7Cit9CitA
ZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpUYXNrU3RhdGUgdG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUoQktTUHJv
Y2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19jYXN0PHVp
bnQzMl90PihCS1NQcm9jZXNzVGFza1N0YXRlTm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWludDMyX3Q+
KFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6Tm9uZSksICJCS1NQcm9jZXNzVGFza1N0YXRlICE9
IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgc3RhdGljX2Fzc2Vy
dChzdGF0aWNfY2FzdDx1aW50MzJfdD4oQktTUHJvY2Vzc1Rhc2tTdGF0ZVJ1bm5pbmcpID09IHN0
YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlJ1bm5pbmcpLCAi
QktTUHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0
ZSIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEJLU1Byb2Nlc3NU
YXNrU3RhdGVTdXNwZW5kZWQpID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXI6OlN1c3BlbmRlZCksICJCS1NQcm9jZXNzVGFza1N0YXRlICE9IFByb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlPihzdGF0ZSk7Cit9CisKK1Byb2Nlc3NU
YXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKKyAgICA6IG1fcHJv
Y2VzcyhCS1NQcm9jZXNzLmN1cnJlbnRQcm9jZXNzKQorICAgICwgbV9kZWxlZ2F0ZShhZG9wdE5T
KFtbV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pKQorewor
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzVGFza1N0YXRl
T2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpLCBtX3Byb2Nlc3MoJXApIiwgdGhp
cywgbV9wcm9jZXNzLmdldCgpKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLnRhc2tTdGF0ZUNoYW5n
ZWRDYWxsYmFjayA9IFt0aGlzXSAoQktTUHJvY2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkgeworICAgICAg
ICBzZXRUYXNrU3RhdGUodG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUoc3RhdGUp
KTsKKyAgICB9OworICAgIG1fcHJvY2Vzcy5nZXQoKS5kZWxlZ2F0ZSA9IG1fZGVsZWdhdGUuZ2V0
KCk7Cit9CisKK1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyKENsaWVudCYgY2xpZW50KQorICAgIDogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKK3sK
KyAgICBzZXRDbGllbnQoY2xpZW50KTsKK30KKworUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjp+
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKK3sKKyAgICBtX2RlbGVnYXRlLmdldCgpLnRhc2tT
dGF0ZUNoYW5nZWRDYWxsYmFjayA9IG5pbDsKK30KKwordm9pZCBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXI6OnNldFRhc2tTdGF0ZShUYXNrU3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1fdGFza1N0
YXRlID09IHN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Rhc2tTdGF0ZSA9IHN0YXRl
OworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnByb2Nlc3NUYXNrU3RhdGVE
aWRDaGFuZ2Uoc3RhdGUpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZ
KQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
cm94eUNvY29hLm1tCmluZGV4IGNhNjk1NWIzNTAwYzdkZTJiZTcyYTRkYzc0ZjI1YzNjZjY1Mzlm
OWYuLjdiYWJkZWI2MDMwM2ZhNzMyMzE5NDZkZjYxNDdlYWEzNWQzYTg2ZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CkBAIC00MSw2ICs0MSw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgY29uc3Qg
U2Vjb25kcyB1bmV4cGVjdGVkQWN0aXZpdHlEdXJhdGlvbiA9IDEwX3M7CisKIGNvbnN0IEhhc2hT
ZXQ8U3RyaW5nPiYgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFk
QWNjZXNzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJpbmc+PiBw
bGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKHN0ZDo6aW5pdGlhbGl6ZXJfbGlzdDxT
dHJpbmc+IHsKQEAgLTE4Nyw0ICsxODksMjUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbGVh
c2VIaWdoUGVyZm9ybWFuY2VHUFUoKQogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXYXNVbmV4cGVjdGVkbHlVbnN1c3Bl
bmRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbikKK3sKKyAgICBpZiAo
bV90aHJvdHRsZXIuc2hvdWxkQmVSdW5uYWJsZSgpKSB7CisgICAgICAgIC8vIFRoZSBwcm9jZXNz
IGJlY29taW5nIHVuc3VzcGVuZGVkIHdhcyBub3QgdW5leHBlY3RlZDsgaXQgbGlrZWx5IHdhcyBu
b3RpZmllZCBvZiBpdHMgcnVubmluZyBzdGF0ZQorICAgICAgICAvLyBiZWZvcmUgcmVjZWl2aW5n
IGEgcHJvY3Nlc3NEaWRSZXN1bWUoKSBtZXNzYWdlIGZyb20gdGhlIFVJUHJvY2Vzcy4KKyAgICAg
ICAgY29tcGxldGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gVGhlIFdl
YlByb2Nlc3Mgd2FzIGF3YWtlbmVkIGJ5IHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBVSVByb2Nl
c3MuIFRha2Ugb3V0IGFuIGFzc2VydGlvbiBmb3IgYQorICAgIC8vIGxpbWl0ZWQgZHVyYXRpb24g
dG8gYWxsb3cgd2hhdGV2ZXIgdGFzayBuZWVkcyB0byBiZSBhY2NvbXBsaXNoZWQgdGltZSB0byBj
b21wbGV0ZS4KKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJv
Y2Vzc1Byb3h5Ojpwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoKSIsIHRoaXMpOwor
ICAgIGF1dG8gYmFja2dyb3VuZEFjdGl2aXR5VGltZW91dEhhbmRsZXIgPSBbYWN0aXZpdHlUb2tl
biA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCksIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVk
KCkgLSBsYW1iZGEsIGJhY2tncm91bmQgYWN0aXZpdHkgdGltZWQgb3V0Iiwgd2Vha1RoaXMuZ2V0
KCkpOworICAgIH07CisgICAgbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lciA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4oV1RGTW92ZShiYWNrZ3JvdW5k
QWN0aXZpdHlUaW1lb3V0SGFuZGxlciksIHVuZXhwZWN0ZWRBY3Rpdml0eUR1cmF0aW9uKTsKKyAg
ICBjb21wbGV0aW9uKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBlMzI1ZDEwY2Q5ZjQ1Y2VhOGIzMmRkYzEyYTNi
MThkZGQyNThiZjk3Li5lZGIwNmQzYjIwOWJiMjZkZGJjOWY5MzRmNDA2NWNlNWMwNmU5NWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApAQCAtMzUs
NiArMzUsMTEgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihQcm9jZXNzSUQs
IGNvbnN0IFN0cmluZyYsIEFzc2VydGlvblN0YXRlIGFzc2UKIHsKIH0KIAorUHJvY2Vzc0Fzc2Vy
dGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgbmFtZSwgQXNz
ZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUsIEFzc2VydGlvblJlYXNvbikKKyAgICA6IG1fYXNz
ZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCit7Cit9CisKIFByb2Nlc3NBc3NlcnRpb246On5Q
cm9jZXNzQXNzZXJ0aW9uKCkgPSBkZWZhdWx0OwogCiB2b2lkIFByb2Nlc3NBc3NlcnRpb246OnNl
dFN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IDQ3Y2M4MGY4ZWRmN2RhZGY5OWQ5MGY3OWNl
MjgxNWRiM2NjOWJkZjYuLmEwMWM3NmRiNzMzYjllZWU2ZDJiZTk3ZTc2MmM4MGU5NGI1ODMwMTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAgLTQ1LDcg
KzQ1LDEzIEBAIGVudW0gY2xhc3MgQXNzZXJ0aW9uU3RhdGUgewogICAgIFN1c3BlbmRlZCwKICAg
ICBCYWNrZ3JvdW5kLAogICAgIFVuYm91bmRlZE5ldHdvcmtpbmcsCi0gICAgRm9yZWdyb3VuZAor
ICAgIEZvcmVncm91bmQsCit9OworCitlbnVtIGNsYXNzIEFzc2VydGlvblJlYXNvbiB7CisgICAg
RXh0ZW5zaW9uLAorICAgIEZpbmlzaFRhc2ssCisgICAgRmluaXNoVGFza1VuYm91bmRlZCwKIH07
CiAKIGNsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UHJvY2Vz
c0Fzc2VydGlvbj4gewpAQCAtNTgsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAogICAgIFBy
b2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgQXNzZXJ0aW9u
U3RhdGUpOworICAgIFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJl
YXNvbiwgQXNzZXJ0aW9uU3RhdGUsIEFzc2VydGlvblJlYXNvbik7CiAgICAgdmlydHVhbCB+UHJv
Y2Vzc0Fzc2VydGlvbigpOwogCiAgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50JiBjbGllbnQpIHsg
bV9jbGllbnQgPSAmY2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NU
aHJvdHRsZXIuY3BwCmluZGV4IGI2MTJkYTBlODhhZDk3ZTc2ZTZmNmU4NzkwMGFjNWZiYWZmMDNl
ZmIuLjAwYTk5MTg4NjE0ODczOTM4YTZjYjRhYmQ5OTE0YmM4NjI5NDVjZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC02OCw3ICs2OCw3IEBA
IHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkKICAgICAKIHZvaWQg
UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkKIHsKLSAgICBib29sIHNob3VsZEJl
UnVubmFibGUgPSBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCkgfHwgbV9iYWNrZ3JvdW5kQ291
bnRlci52YWx1ZSgpOworICAgIGJvb2wgc2hvdWxkQmVSdW5uYWJsZSA9IHRoaXMtPnNob3VsZEJl
UnVubmFibGUoKTsKIAogICAgIC8vIElmIHRoZSBwcm9jZXNzIGlzIGN1cnJlbnRseSBydW5uYWJs
ZSBidXQgd2lsbCBiZSBzdXNwZW5kZWQgdGhlbiBmaXJzdCBnaXZlIGl0IGEgY2hhbmNlIHRvIGNv
bXBsZXRlIHdoYXQgaXQgd2FzIGRvaW5nCiAgICAgLy8gYW5kIGNsZWFuIHVwIC0gbW92ZSBpdCB0
byB0aGUgYmFja2dyb3VuZCBhbmQgc2VuZCBpdCBhIG1lc3NhZ2UgdG8gbm90aWZ5LiBTY2hlZHVs
ZSBhIHRpbWVvdXQgc28gaXQgY2FuJ3Qgc3RheSBydW5uaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKaW5kZXggMDU3NmUzODZkODY2NTVmNGE3ODRlNzc3MjFj
MGZjM2IzNDRjM2RkNS4uZmQxNTI5Y2Q0Nzc1ZTg2MmMwZjYyNTE4OGU5MTA2NTFmYTIxMjdiNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAtNjAsNiAr
NjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb25uZWN0VG9Qcm9jZXNzKFByb2Nlc3NJRCk7
CiAgICAgdm9pZCBwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKICAgICB2b2lkIGRpZENhbmNlbFBy
b2Nlc3NTdXNwZW5zaW9uKCk7CisgICAgYm9vbCBzaG91bGRCZVJ1bm5hYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV9mb3JlZ3JvdW5kQ291bnRlci52YWx1ZSgpIHx8IG1fYmFja2dyb3VuZENvdW50ZXIu
dmFsdWUoKTsgfQogCiBwcml2YXRlOgogICAgIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IDY3YmM3
ZjU1NGU4ODlkYzU0NDk1NTBhYjY0MzE3NTM1NGZlZDgxZWMuLjQwOWQ0MWYxOTJiYzM0ZTM4Mjdl
YTAwYzA2ZTRjMGU5YjBmYTdlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQcm94eS5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogfQog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEZWZlcnJhYmxlT25lU2hvdFRpbWVyOwogY2xh
c3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0IFBsdWdpbkluZm87CiBzdHJ1Y3QgU2VjdXJpdHlP
cmlnaW5EYXRhOwpAQCAtMjk3LDYgKzI5OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1bmJsb2Nr
QWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCisgICAgdm9pZCBwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAgICAgc3Rh
dGljIHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJvY2Vzc1Byb3h5KFdlYlBy
b2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTQ0MCw2ICs0
NDUsNyBAQCBwcml2YXRlOgogICAgIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9mb3JlZ3Jv
dW5kVG9rZW47CiAgICAgQmFja2dyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2JhY2tncm91bmRUb2tl
bjsKICAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5U2VydmVy
IHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNo
b3RUaW1lcj4gbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogCiAgICAgSGFzaE1h
cDxTdHJpbmcsIHVpbnQ2NF90PiBtX3BhZ2VVUkxSZXRhaW5Db3VudE1hcDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgppbmRleCBj
NDI0YzE4ZTY4MzQ0NDM3NWU0OTE2NGM5ZGU4OTkyZjg3YmNkN2ZmLi5mM2Q1ZTkzMWU2ZGVlOTAy
YTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC03OSw0ICs3OSw4IEBAIG1lc3Nh
Z2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnREaXNwbGF5
TGluayh1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiAgICAgU3RvcERp
c3BsYXlMaW5rKHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkKICNlbmRp
ZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBQcm9jZXNzV2FzVW5leHBlY3RlZGx5
VW5zdXNwZW5kZWQoKSAtPiAoKSBBc3luYworI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IDhjNGRlM2EzMGVm
MmI1NzNjMzdjNWJjYTY3OTc3MWI5ZTZlMzBlN2YuLmI4ZTZjZmQ2N2JiNjFiNWY5MTQ1MDk2ZDc0
YzM1YTY5MTcyZDUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Q
cm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC0xNDYsMTkgKzE0NiwzNiBAQCBzdGF0aWMgQktTUHJv
Y2Vzc0Fzc2VydGlvbkZsYWdzIGZsYWdzRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9u
U3RhdGUpCiAgICAgfQogfQogCi1zdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbiByZWFz
b25Gb3JTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKK3N0YXRpYyBBc3NlcnRp
b25SZWFzb24gcmVhc29uRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCiB7
CiAgICAgc3dpdGNoIChhc3NlcnRpb25TdGF0ZSkgewogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6
OlVuYm91bmRlZE5ldHdvcmtpbmc6Ci0gICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9u
UmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKKyAgICAgICAgcmV0dXJuIEFzc2VydGlvblJlYXNv
bjo6RmluaXNoVGFza1VuYm91bmRlZDsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpTdXNwZW5k
ZWQ6CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZDoKICAgICBjYXNlIEFzc2Vy
dGlvblN0YXRlOjpGb3JlZ3JvdW5kOgorICAgICAgICByZXR1cm4gQXNzZXJ0aW9uUmVhc29uOjpF
eHRlbnNpb247CisgICAgfQorfQorCitzdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbiB0
b0JLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24oQXNzZXJ0aW9uUmVhc29uIHJlYXNvbikKK3sKKyAg
ICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpFeHRlbnNpb246
CiAgICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRXh0ZW5zaW9uOworICAg
IGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrOgorICAgICAgICByZXR1cm4gQktTUHJv
Y2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2s7CisgICAgY2FzZSBBc3NlcnRpb25SZWFzb246
OkZpbmlzaFRhc2tVbmJvdW5kZWQ6CisgICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9u
UmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKICAgICB9CiB9CiAKIFByb2Nlc3NBc3NlcnRpb246
OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFzc2VydGlv
blN0YXRlIGFzc2VydGlvblN0YXRlKQorICAgIDogUHJvY2Vzc0Fzc2VydGlvbihwaWQsIG5hbWUs
IGFzc2VydGlvblN0YXRlLCByZWFzb25Gb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSkpCit7Cit9CisK
K1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlLCBBc3NlcnRpb25SZWFzb24g
YXNzZXJ0aW9uUmVhc29uKQogICAgIDogbV9hc3NlcnRpb25TdGF0ZShhc3NlcnRpb25TdGF0ZSkK
IHsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwpAQCAtMTczLDcgKzE5
MCw3IEBAIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25z
dCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0YXRlCiAgICAgfTsKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFBJRCAlZCBhY3F1aXJp
bmcgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEICVkLCBuYW1lICclcyciLCB0aGlzLCBn
ZXRwaWQoKSwgcGlkLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogICAgIAotICAgIG1fYXNzZXJ0aW9u
ID0gYWRvcHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElEOnBpZCBm
bGFnczpmbGFnc0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246cmVhc29uRm9yU3RhdGUo
YXNzZXJ0aW9uU3RhdGUpIG5hbWU6KE5TU3RyaW5nICopbmFtZSB3aXRoSGFuZGxlcjpoYW5kbGVy
XSk7CisgICAgbV9hc3NlcnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2VydGlvbiBhbGxv
Y10gaW5pdFdpdGhQSUQ6cGlkIGZsYWdzOmZsYWdzRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUpIHJl
YXNvbjp0b0JLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24oYXNzZXJ0aW9uUmVhc29uKSBuYW1lOihO
U1N0cmluZyAqKW5hbWUgd2l0aEhhbmRsZXI6aGFuZGxlcl0pOwogICAgIG1fYXNzZXJ0aW9uLmdl
dCgpLmludmFsaWRhdGlvbkhhbmRsZXIgPSBeKCkgewogICAgICAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBQcm9jZXNzIGFzc2VydGlv
biBmb3IgcHJvY2VzcyB3aXRoIFBJRCAlZCB3YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBwaWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
aiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
MjQ4YzZmYjZmYTc2YzU4NDM5YjE4Y2QzZTRlZmFhODQ1NzNlNTU3NS4uZTUzMGIzOGNhZjdiMmQx
ZWQ5MjFjOTQ3N2UzYjc3ZDE4OTYzMWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTYxLDYgKzE1NjEsOCBAQAogCQlDRDBDNjgz
MTIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMEM2ODJGMjAxRkQxMDEw
MEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oICovOyB9OwogCQlDRDE5QTI2
RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjZBMUExM0U4MjEw
MDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQlDRDE5RDJF
QTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJFODIwNDY0MDZG
MDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IH07CisJCUNEMjg2
NUVFMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVDMjI1NTU2MjAw
MDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJQ0QyODY1RUYy
MjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVEMjI1NTU2MjAwMDYw
NkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi87IH07CiAJCUNENDkxQjA4MUU3
MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDYxRTcwRDA1RjAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi87IH07CiAJCUNENDkxQjBEMUU3MzJFNEQw
MDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIwQjFFNzMy
RTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
ICovOyB9OwogCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
TWVzc2FnZXMuaCAqLzsgfTsKQEAgLTQ0MTcsNiArNDQxOSw4IEBACiAJCUNEMTlBMjZBMUExM0U4
MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5RDJFODIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNj
cmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZ1bGxzY3JlZW5Ub3VjaFNl
Y2hldXJpc3RpYy5oOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vRnVsbHNjcmVlblRvdWNoU2VjaGV1
cmlzdGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTlEMkU5MjA0NjQwNkYw
MDE3MDc0QSAvKiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBu
YW1lID0gRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcDsgcGF0aCA9IGlvcy9mdWxsc2Ny
ZWVuL0Z1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUNEMjg2NUVDMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMjg2NUVEMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9j
ZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDkxQjA1
MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAv
KiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
bWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMuaW47IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MzEzLDYgKzYzMTcsOCBAQAogCQkJCUM1NUY5
MTZDMUM1OTVFNDQwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggKi8sCiAJCQkJQzU1
RjkxNkQxQzU5NUU0NDAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQubW0gKi8sCiAJCQkJ
MkQxMDg3NjIxRDJDNjQxQjAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzQ29jb2EubW0gKi8sCisJ
CQkJQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5o
ICovLAorCQkJCUNEMjg2NUVEMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIubW0gKi8sCiAJCQkJQ0Q0QjREOUExRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdC
dWZmZXJTdG9yYWdlLmNwcCAqLywKIAkJCQlDRDRCNEQ5QjFFNzY1RTAwMDBEMjcwOTIgLyogU2hh
cmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCAqLywKIAkJCQkxQUIxRjc4RTFEMUIzNEE2MDA3QzlCRDEg
LyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gKi8sCkBAIC05Mzk3LDYgKzk0MDMsNyBA
QAogCQkJCUUxQ0MxQjkwMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xh
dW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZBQzcgLyog
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNGRDQ4MjFF
Qjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVhZGVycyAq
LywKIAkJCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nlc3NUaHJv
dHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5NzIsNiArMTA5NzksNyBAQAogCQkJ
CUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbSBp
biBTb3VyY2VzICovLAogCQkJCTJEOTEzNDREMjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVnaW5WaWV3
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAvKiBQcm9j
ZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QyODY1RUYyMjU1NTYyMDAwNjA2
QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJE
NzJBMUZBMjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5tbSBp
biBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3cy5tbSBp
biBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCmluZGV4
IDU0MGJlYjY1Mzg2MzBiNTA4MGM0YjE5MjZjZGNjMzdiY2E0M2Q1ZWIuLjcxNTk3NjZlNmRjODNm
NWRhMzk5ZjE0YjExZmE0MWM2NGIwMDJmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTE0NTAsNiArMTQ1MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6cmVzZXRB
bGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKCkKIHZvaWQgV2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFy
ZVRvU3VzcGVuZChTaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCBzaG91bGRBY2tu
b3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCkKIHsKICAgICBTZXRGb3JTY29wZTxib29sPiBzdXNw
ZW5zaW9uU2NvcGUobV9pc1N1c3BlbmRpbmcsIHRydWUpOworICAgIG1fcHJvY2Vzc0lzU3VzcGVu
ZGVkID0gdHJ1ZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdXNwZW5kQWxsTWVkaWFCdWZm
ZXJpbmcoKTsKQEAgLTE1MTEsNiArMTUxMiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJlcGFyZVRv
U3VzcGVuZCgpCiB2b2lkIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQoKQogewog
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpjYW5j
ZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKKworICAgIG1fcHJvY2Vzc0lzU3VzcGVuZGVk
ID0gZmFsc2U7CisKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCkBAIC0xNTg0LDYgKzE1ODgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6OnByb2Nl
c3NEaWRSZXN1bWUoKQogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAg
LSBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKIAorICAgIG1fcHJvY2Vz
c0lzU3VzcGVuZGVkID0gZmFsc2U7CisKICAgICBjYW5jZWxNYXJrQWxsTGF5ZXJzVm9sYXRpbGUo
KTsKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oCmluZGV4IGVlNzgxYTBiYmI1Zjg2NDMyOTE1ZGU5MGE3YWQzOWUxMDBk
Y2YxMDYuLmM1ZDczMWM5Njg3N2E2YzVmMjNkMDA5MzJjYmUzN2MwMTgyYjNkYTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTcsNiArNTcsMTAgQEAKICNpbmNsdWRl
IDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorI2luY2x1ZGUgIlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIgorI2VuZGlmCisKIG5hbWVz
cGFjZSBBUEkgewogY2xhc3MgT2JqZWN0OwogfQpAQCAtMTEyLDcgKzExNiwxMiBAQCBjbGFzcyBX
ZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiBzdHJ1Y3QgV2Vi
c2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKLWNsYXNzIFdlYlByb2Nlc3MgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2VzcyB7CitjbGFzcyBXZWJQcm9jZXNzCisgICAgOiBwdWJsaWMgQXV4aWxpYXJ5
UHJvY2VzcworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBQcm9jZXNzVGFza1N0YXRl
T2JzZXJ2ZXI6OkNsaWVudAorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdlYlByb2Nl
c3MmIHNpbmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUgcHJvY2Vz
c1R5cGUgPSBQcm9jZXNzVHlwZTo6V2ViQ29udGVudDsKQEAgLTQyNSw2ICs0MzQsNyBAQCBwcml2
YXRlOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgcHJvY2Vz
c1Rhc2tTdGF0ZURpZENoYW5nZShQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSkg
ZmluYWw7CiAgICAgYm9vbCBzaG91bGRGcmVlemVPblN1c3BlbnNpb24oKSBjb25zdDsKICAgICB2
b2lkIHVwZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKICNlbmRpZgpAQCAtNDkwLDYgKzUwMCw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2hhc1JpY2hDb250ZW50U2VydmljZXMgeyBmYWxzZSB9OwogI2Vu
ZGlmCiAKKyAgICBib29sIG1fcHJvY2Vzc0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKwogICAgIEhh
c2hTZXQ8dWludDY0X3Q+IG1fcGFnZXNJbldpbmRvd3M7CiAgICAgV2ViQ29yZTo6VGltZXIgbV9u
b25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lcjsKIApAQCAtNDk3LDYgKzUwOSw3IEBAIHByaXZh
dGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJT
UUxpdGVEYXRhYmFzZVRyYWNrZXI+IG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOworICAgIFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlciBtX3Rhc2tTdGF0ZU9ic2VydmVyIHsgKnRoaXMgfTsKICNl
bmRpZgogCiAgICAgZW51bSBQYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVDb3VudGVyVHlwZSB7
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vz
c0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQppbmRleCAyNGFjNWUwYWIyOWFiMzk1ZWRiYzYxMDg0MmM1YTFlODI1MWYyNWFiLi40YTVm
NjhhMjQ0NjkyZDZkZWVlMWIxMjQ2YzY3YzRiNjNkMThhMmZkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAj
aW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKKyNpbXBvcnQgIlByb2Nlc3NBc3NlcnRpb24uaCIK
ICNpbXBvcnQgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbXBvcnQgIlNhbmRib3hJbml0aWFsaXph
dGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgpAQCAtMjgxLDYgKzI4Miwz
MSBAQCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZVByb2Nlc3NOYW1lKCkKICNlbmRpZiAvLyBQTEFU
Rk9STShNQUMpCiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQcm9jZXNz
Ojpwcm9jZXNzVGFza1N0YXRlRGlkQ2hhbmdlKFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFz
a1N0YXRlIHRhc2tTdGF0ZSkKK3sKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZSgpIC0gdGFza1N0YXRl
KCVkKSIsIHRoaXMsIHRhc2tTdGF0ZSk7CisgICAgaWYgKHRhc2tTdGF0ZSA9PSBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXI6Ok5vbmUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0YXNrU3Rh
dGUgPT0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpTdXNwZW5kZWQpIHsKKyAgICAgICAgaWYg
KG1fcHJvY2Vzc0lzU3VzcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpwcm9jZXNzVGFz
a1N0YXRlQ2hhbmdlZCgpIC0gdW5leHBlY3RlZGx5IGVudGVyZWQgU3VzcGVuZGVkIHN0YXRlIiwg
dGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vzc0lzU3Vz
cGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSB3ZXJlIGF3YWtlbmVkIGZyb20g
c3VzcGVuc2lvbiB1bmV4cGVjdGVkbHkuIE5vdGlmeSB0aGUgV2ViUHJvY2Vzc1Byb3h5LCBidXQg
dGFrZSBhIHByb2Nlc3MgYXNzZXJ0aW9uIG9uIG91ciBwYXJlbnQgUElECisgICAgLy8gdG8gZW5z
dXJlIHRoYXQgaXQgdG9vIGlzIGF3YWtlbmVkLgorICAgIGF1dG8gdWlQcm9jZXNzQXNzZXJ0aW9u
ID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwYXJlbnRQcm9jZXNzQ29ubmVj
dGlvbigpLT5yZW1vdGVQcm9jZXNzSUQoKSwgIlVuZXhwZWN0ZWRseSByZXN1bWVkIiwgQXNzZXJ0
aW9uU3RhdGU6OkJhY2tncm91bmQsIEFzc2VydGlvblJlYXNvbjo6RmluaXNoVGFzayk7CisgICAg
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJQcm9jZXNzUHJveHk6OlByb2Nlc3NXYXNVbmV4cGVjdGVkbHlVbnN1c3BlbmRlZCgpLCBbdWlQ
cm9jZXNzQXNzZXJ0aW9uID0gV1RGTW92ZSh1aVByb2Nlc3NBc3NlcnRpb24pXSB7IH0pOworfQor
I2VuZGlmCisKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKQogewogI2lm
IFVTRShBUFBLSVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366969</attachid>
            <date>2019-04-08 13:01:34 -0700</date>
            <delta_ts>2019-04-09 09:03:00 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196659-20190408130133.patch</filename>
            <type>text/plain</type>
            <size>31711</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhZGE1NjBiODc0YzExZGE0
NDcyNTBmMDJkYWI3ZDFlMGJiZjNkZmUuLjY1YmM4YmM2ODk1YmU5NWQwZWE0ZjZjY2FiYzhiY2Qy
NWZkMzJmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMDUgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBd2FrZW4gVUlQcm9j
ZXNzIGlmIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb25zIHVu
ZXhwZWN0ZWRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Fzc2VydGlv
blNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
dGFza1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJEZWxlZ2F0ZSBwcm9jZXNzOnRhc2tTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktp
dDo6dG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3Rh
dGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
c2V0VGFza1N0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1Vu
ZXhwZWN0ZWRseVVuc3VzcGVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpzaG91bGRCZVJ1bm5hYmxlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OnJlYXNvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fz
c2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0
ZURpZENoYW5nZSk6CisKIDIwMTktMDQtMDUgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgW0NvY29hXSBEZWFjdGl2YXRlIHRoZSBhdWRpbyBzZXNzaW9uIGJlZm9y
ZSB0aGUgV2ViUHJvY2VzcyBzdXNwZW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0Nvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaAppbmRleCBmMzczOWI0YWVhYjk5YjRmMzkyNWUxMjc1YmI4NTkxYjE1NzJlNzE2Li4z
NmJkOTEyZTBiY2U0YWE4Y2IxOGFkOTAxYmJiM2ZlOTBhNzNjODAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9Q
bGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oCkBAIC0xNzcsNyArMTc3LDcgQEAgcHVibGljOgogCiAg
ICAgdm9pZCBwb3N0Q29ubmVjdGlvbkRpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlKCk7CiAK
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBBcmdzPiB2b2lkIHNlbmRXaXRo
QXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4uKT4m
JiBhcmdzLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0gMCk7CisgICAgdGVtcGxhdGU8dHlwZW5h
bWUgVCwgdHlwZW5hbWUgQz4gdm9pZCBzZW5kV2l0aEFzeW5jUmVwbHkoVCYmIG1lc3NhZ2UsIEMm
JiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCA9IDApOwogICAgIHRl
bXBsYXRlPHR5cGVuYW1lIFQ+IGJvb2wgc2VuZChUJiYgbWVzc2FnZSwgdWludDY0X3QgZGVzdGlu
YXRpb25JRCwgT3B0aW9uU2V0PFNlbmRPcHRpb24+IHNlbmRPcHRpb25zID0geyB9KTsKICAgICB0
ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNlbmRXaXRoUmVwbHkoVCYmIG1lc3NhZ2UsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQsIEZ1bmN0aW9uRGlzcGF0Y2hlciYgcmVwbHlEaXNwYXRjaGVyLCBG
dW5jdGlvbjx2b2lkKE9wdGlvbmFsPHR5cGVuYW1lIENvZGluZ1R5cGU8dHlwZW5hbWUgVDo6UmVw
bHk+OjpUeXBlPik+JiYgcmVwbHlIYW5kbGVyKTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBi
b29sIHNlbmRTeW5jKFQmJiBtZXNzYWdlLCB0eXBlbmFtZSBUOjpSZXBseSYmIHJlcGx5LCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBTZWNvbmRzIHRpbWVvdXQgPSBTZWNvbmRzOjppbmZpbml0eSgp
LCBPcHRpb25TZXQ8U2VuZFN5bmNPcHRpb24+IHNlbmRTeW5jT3B0aW9ucyA9IHsgfSk7CkBAIC00
MTYsOCArNDE2LDggQEAgdWludDY0X3QgbmV4dEFzeW5jUmVwbHlIYW5kbGVySUQoKTsKIHZvaWQg
YWRkQXN5bmNSZXBseUhhbmRsZXIoQ29ubmVjdGlvbiYsIHVpbnQ2NF90LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKERlY29kZXIqKT4mJik7CiBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERlY29kZXIq
KT4gdGFrZUFzeW5jUmVwbHlIYW5kbGVyKENvbm5lY3Rpb24mLCB1aW50NjRfdCk7CiAKLXRlbXBs
YXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+Ci12b2lkIENvbm5lY3Rpb246OnNlbmRX
aXRoQXN5bmNSZXBseShUJiYgbWVzc2FnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBcmdzLi4u
KT4mJiBjb21wbGV0aW9uSGFuZGxlciwgdWludDY0X3QgZGVzdGluYXRpb25JRCkKK3RlbXBsYXRl
PHR5cGVuYW1lIFQsIHR5cGVuYW1lIEM+Cit2b2lkIENvbm5lY3Rpb246OnNlbmRXaXRoQXN5bmNS
ZXBseShUJiYgbWVzc2FnZSwgQyYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5h
dGlvbklEKQogewogICAgIENPTVBJTEVfQVNTRVJUKCFUOjppc1N5bmMsIEFzeW5jTWVzc2FnZUV4
cGVjdGVkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvaW9zL0Fz
c2VydGlvblNlcnZpY2VzU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNz
ZXJ0aW9uU2VydmljZXNTUEkuaAppbmRleCBmYWUyYTExMjkyODhiMzM0OThmZTY1ZjdjMDUyZTNm
MTIzYTJlYzQxLi42Y2U2ZjJkOTVjZTM2Yzc5OTUwMGU5NzQwODM1MDMzNjU5ZDc0ZDE3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2VydmljZXNT
UEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvQXNzZXJ0aW9uU2Vydmlj
ZXNTUEkuaApAQCAtMjgsNiArMjgsNyBAQAogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAK
ICNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU0FwcGxpY2F0aW9uU3RhdGVNb25pdG9yLmg+
CisjaW1wb3J0IDxBc3NlcnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzLmg+CiAjaW1wb3J0IDxBc3Nl
cnRpb25TZXJ2aWNlcy9CS1NQcm9jZXNzQXNzZXJ0aW9uLmg+CiAKICNlbHNlCkBAIC02OCw2ICs2
OSw3IEBAIGVudW0gewogdHlwZWRlZiB1aW50MzJfdCBCS1NQcm9jZXNzQXNzZXJ0aW9uRmxhZ3M7
CiAKIGVudW0geworICAgIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb25GaW5pc2hUYXNrID0gNCwK
ICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRXh0ZW5zaW9uID0gMTMsCiAgICAgQktTUHJv
Y2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2tVbmJvdW5kZWQgPSAxMDAwNCwKIH07CkBAIC04
Nyw0ICs4OSwyNyBAQCB0eXBlZGVmIHZvaWQgKF5CS1NQcm9jZXNzQXNzZXJ0aW9uQWNxdWlzaXRp
b25IYW5kbGVyKShCT09MIGFjcXVpcmVkKTsKIC0gKHZvaWQpaW52YWxpZGF0ZTsKIEBlbmQKIAor
ZW51bSB7CisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZU5vbmUsCisgICAgQktTUHJvY2Vzc1Rhc2tT
dGF0ZVJ1bm5pbmcsCisgICAgQktTUHJvY2Vzc1Rhc2tTdGF0ZVN1c3BlbmRlZCwKK307Cit0eXBl
ZGVmIHVpbnQzMl90IEJLU1Byb2Nlc3NUYXNrU3RhdGU7CisKK0BjbGFzcyBCS1NQcm9jZXNzOwor
CitAcHJvdG9jb2wgQktTUHJvY2Vzc0RlbGVnYXRlIDxOU09iamVjdD4KK0BvcHRpb25hbAorLSAo
dm9pZClwcm9jZXNzOihCS1NQcm9jZXNzICopcHJvY2VzcyB0YXNrU3RhdGVEaWRDaGFuZ2U6KEJL
U1Byb2Nlc3NUYXNrU3RhdGUpbmV3U3RhdGU7CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2Vz
cyA6IE5TT2JqZWN0CitAZW5kCisKK0BpbnRlcmZhY2UgQktTUHJvY2VzcyAoKQorKyAoQktTUHJv
Y2VzcyAqKWN1cnJlbnRQcm9jZXNzOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWR3cml0ZSwg
d2VhaykgaWQgPEJLU1Byb2Nlc3NEZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGFzc2lnbikgQktTUHJvY2Vzc1Rhc2tTdGF0ZSB0YXNrU3RhdGU7CitA
ZW5kCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJv
Y2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9j
ZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjk2MDk0NzUxN2MyNTg1OTlhNmU4
ZDEwY2MyMzE4MDQ5ZTFhYjZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFy
ZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmgKQEAgLTAsMCArMSw3MyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKworT0JKQ19DTEFTUyBXS1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlckRlbGVnYXRlOworT0JKQ19DTEFTUyBCS1NQcm9jZXNzOworCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyIHsKK3B1YmxpYzoKKyAgICBj
bGFzcyBDbGllbnQ7CisKKyAgICBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIoKTsKKyAgICBleHBs
aWNpdCBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIoQ2xpZW50Jik7CisgICAgflByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlcigpOworICAgIAorICAgIGVudW0gVGFza1N0YXRlIHsKKyAgICAgICAgTm9u
ZSwKKyAgICAgICAgUnVubmluZywKKyAgICAgICAgU3VzcGVuZGVkLAorICAgIH07CisKKyAgICBj
bGFzcyBDbGllbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+Q2xpZW50KCkgPSBk
ZWZhdWx0OworICAgICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShU
YXNrU3RhdGUpID0gMDsKKyAgICB9OworCisgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50JiBjbGll
bnQpIHsgbV9jbGllbnQgPSAmY2xpZW50OyB9CisgICAgQ2xpZW50KiBjbGllbnQoKSB7IHJldHVy
biBtX2NsaWVudDsgfQorCisgICAgVGFza1N0YXRlIHRhc2tTdGF0ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fdGFza1N0YXRlOyB9CisKK3ByaXZhdGU6CisgICAgdm9pZCBzZXRUYXNrU3RhdGUoVGFza1N0
YXRlKTsKKworICAgIENsaWVudCogbV9jbGllbnQgeyBudWxscHRyIH07CisgICAgVGFza1N0YXRl
IG1fdGFza1N0YXRlIHsgTm9uZSB9OworICAgIFJldGFpblB0cjxCS1NQcm9jZXNzPiBtX3Byb2Nl
c3M7CisgICAgUmV0YWluUHRyPFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGU+IG1f
ZGVsZWdhdGU7Cit9OworCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLm1tIGIvU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjhiZGI0MGNmY2Y5MjdlOGFiYTI4ZmQ5ODEwNTc1YmFjYTU1OTU0
ZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNz
VGFza1N0YXRlT2JzZXJ2ZXIubW0KQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCIKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNsdWRlICJBc3NlcnRpb25TZXJ2aWNlc1NQ
SS5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KKwor
dHlwZWRlZiB2b2lkKF5UYXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2tUeXBlKShCS1NQcm9jZXNzVGFz
a1N0YXRlKTsKKworQGludGVyZmFjZSBXS1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlckRlbGVnYXRl
IDogTlNPYmplY3Q8QktTUHJvY2Vzc0RlbGVnYXRlPgorQHByb3BlcnR5IChjb3B5KSBUYXNrU3Rh
dGVDaGFuZ2VkQ2FsbGJhY2tUeXBlIHRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjazsKK0BlbmQKKwor
QGltcGxlbWVudGF0aW9uIFdLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGUKKy0gKHZv
aWQpcHJvY2VzczooQktTUHJvY2VzcyAqKXByb2Nlc3MgdGFza1N0YXRlRGlkQ2hhbmdlOihCS1NQ
cm9jZXNzVGFza1N0YXRlKW5ld1N0YXRlCit7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtW1dLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGUgcHJvY2Vzczp0
YXNrU3RhdGVEaWRDaGFuZ2U6XSwgcHJvY2VzcyglcCksIG5ld1N0YXRlKCVkKSIsIHNlbGYsIHBy
b2Nlc3MsIChpbnQpbmV3U3RhdGUpOworCisgICAgaWYgKHNlbGYudGFza1N0YXRlQ2hhbmdlZENh
bGxiYWNrKQorICAgICAgICBzZWxmLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjayhuZXdTdGF0ZSk7
Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyOjpUYXNrU3RhdGUgdG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUo
QktTUHJvY2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkKK3sKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRpY19j
YXN0PHVpbnQzMl90PihCS1NQcm9jZXNzVGFza1N0YXRlTm9uZSkgPT0gc3RhdGljX2Nhc3Q8dWlu
dDMyX3Q+KFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6Tm9uZSksICJCS1NQcm9jZXNzVGFza1N0
YXRlICE9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgc3RhdGlj
X2Fzc2VydChzdGF0aWNfY2FzdDx1aW50MzJfdD4oQktTUHJvY2Vzc1Rhc2tTdGF0ZVJ1bm5pbmcp
ID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlJ1bm5p
bmcpLCAiQktTUHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRh
c2tTdGF0ZSIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEJLU1By
b2Nlc3NUYXNrU3RhdGVTdXNwZW5kZWQpID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNz
VGFza1N0YXRlT2JzZXJ2ZXI6OlN1c3BlbmRlZCksICJCS1NQcm9jZXNzVGFza1N0YXRlICE9IFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIik7CisgICAgcmV0dXJuIHN0YXRpY19j
YXN0PFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlPihzdGF0ZSk7Cit9CisKK1By
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKKyAgICA6
IG1fcHJvY2VzcyhCS1NQcm9jZXNzLmN1cnJlbnRQcm9jZXNzKQorICAgICwgbV9kZWxlZ2F0ZShh
ZG9wdE5TKFtbV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJEZWxlZ2F0ZSBhbGxvY10gaW5pdF0p
KQoreworICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpLCBtX3Byb2Nlc3MoJXAp
IiwgdGhpcywgbV9wcm9jZXNzLmdldCgpKTsKKyAgICBtX2RlbGVnYXRlLmdldCgpLnRhc2tTdGF0
ZUNoYW5nZWRDYWxsYmFjayA9IFt0aGlzXSAoQktTUHJvY2Vzc1Rhc2tTdGF0ZSBzdGF0ZSkgewor
ICAgICAgICBzZXRUYXNrU3RhdGUodG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUo
c3RhdGUpKTsKKyAgICB9OworICAgIG1fcHJvY2Vzcy5nZXQoKS5kZWxlZ2F0ZSA9IG1fZGVsZWdh
dGUuZ2V0KCk7Cit9CisKK1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6UHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyKENsaWVudCYgY2xpZW50KQorICAgIDogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVy
KCkKK3sKKyAgICBzZXRDbGllbnQoY2xpZW50KTsKK30KKworUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjp+UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCkKK3sKKyAgICBtX2RlbGVnYXRlLmdldCgp
LnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjayA9IG5pbDsKK30KKwordm9pZCBQcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXI6OnNldFRhc2tTdGF0ZShUYXNrU3RhdGUgc3RhdGUpCit7CisgICAgaWYgKG1f
dGFza1N0YXRlID09IHN0YXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Rhc2tTdGF0ZSA9
IHN0YXRlOworICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgbV9jbGllbnQtPnByb2Nlc3NUYXNr
U3RhdGVEaWRDaGFuZ2Uoc3RhdGUpOworfQorCit9CisKKyNlbmRpZiAvLyBQTEFURk9STShJT1Nf
RkFNSUxZKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGNhNjk1NWIzNTAwYzdkZTJiZTcyYTRkYzc0ZjI1YzNj
ZjY1MzlmOWYuLjdiYWJkZWI2MDMwM2ZhNzMyMzE5NDZkZjYxNDdlYWEzNWQzYTg2ZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNv
Y29hLm1tCkBAIC00MSw2ICs0MSw4IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMg
Y29uc3QgU2Vjb25kcyB1bmV4cGVjdGVkQWN0aXZpdHlEdXJhdGlvbiA9IDEwX3M7CisKIGNvbnN0
IEhhc2hTZXQ8U3RyaW5nPiYgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybVBhdGhzV2l0aEFzc3Vt
ZWRSZWFkQWNjZXNzKCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaFNldDxTdHJp
bmc+PiBwbGF0Zm9ybVBhdGhzV2l0aEFzc3VtZWRSZWFkQWNjZXNzKHN0ZDo6aW5pdGlhbGl6ZXJf
bGlzdDxTdHJpbmc+IHsKQEAgLTE4Nyw0ICsxODksMjUgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OnJlbGVhc2VIaWdoUGVyZm9ybWFuY2VHUFUoKQogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQordm9pZCBXZWJQcm9jZXNzUHJveHk6OnByb2Nlc3NXYXNVbmV4cGVjdGVkbHlV
bnN1c3BlbmRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbikKK3sKKyAg
ICBpZiAobV90aHJvdHRsZXIuc2hvdWxkQmVSdW5uYWJsZSgpKSB7CisgICAgICAgIC8vIFRoZSBw
cm9jZXNzIGJlY29taW5nIHVuc3VzcGVuZGVkIHdhcyBub3QgdW5leHBlY3RlZDsgaXQgbGlrZWx5
IHdhcyBub3RpZmllZCBvZiBpdHMgcnVubmluZyBzdGF0ZQorICAgICAgICAvLyBiZWZvcmUgcmVj
ZWl2aW5nIGEgcHJvY3Nlc3NEaWRSZXN1bWUoKSBtZXNzYWdlIGZyb20gdGhlIFVJUHJvY2Vzcy4K
KyAgICAgICAgY29tcGxldGlvbigpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
VGhlIFdlYlByb2Nlc3Mgd2FzIGF3YWtlbmVkIGJ5IHNvbWV0aGluZyBvdGhlciB0aGFuIHRoZSBV
SVByb2Nlc3MuIFRha2Ugb3V0IGFuIGFzc2VydGlvbiBmb3IgYQorICAgIC8vIGxpbWl0ZWQgZHVy
YXRpb24gdG8gYWxsb3cgd2hhdGV2ZXIgdGFzayBuZWVkcyB0byBiZSBhY2NvbXBsaXNoZWQgdGlt
ZSB0byBjb21wbGV0ZS4KKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0g
V2ViUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoKSIsIHRo
aXMpOworICAgIGF1dG8gYmFja2dyb3VuZEFjdGl2aXR5VGltZW91dEhhbmRsZXIgPSBbYWN0aXZp
dHlUb2tlbiA9IG1fdGhyb3R0bGVyLmJhY2tncm91bmRBY3Rpdml0eVRva2VuKCksIHdlYWtUaGlz
ID0gbWFrZVdlYWtQdHIodGhpcyldIHsKKyAgICAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3Bl
bnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3Vz
cGVuZGVkKCkgLSBsYW1iZGEsIGJhY2tncm91bmQgYWN0aXZpdHkgdGltZWQgb3V0Iiwgd2Vha1Ro
aXMuZ2V0KCkpOworICAgIH07CisgICAgbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lciA9IHN0ZDo6
bWFrZV91bmlxdWU8V2ViQ29yZTo6RGVmZXJyYWJsZU9uZVNob3RUaW1lcj4oV1RGTW92ZShiYWNr
Z3JvdW5kQWN0aXZpdHlUaW1lb3V0SGFuZGxlciksIHVuZXhwZWN0ZWRBY3Rpdml0eUR1cmF0aW9u
KTsKKyAgICBjb21wbGV0aW9uKCk7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcAppbmRleCBlMzI1ZDEwY2Q5ZjQ1Y2VhOGIzMmRk
YzEyYTNiMThkZGQyNThiZjk3Li5lZGIwNmQzYjIwOWJiMjZkZGJjOWY5MzRmNDA2NWNlNWMwNmU5
NWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmNwcApA
QCAtMzUsNiArMzUsMTEgQEAgUHJvY2Vzc0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihQcm9j
ZXNzSUQsIGNvbnN0IFN0cmluZyYsIEFzc2VydGlvblN0YXRlIGFzc2UKIHsKIH0KIAorUHJvY2Vz
c0Fzc2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbihwaWRfdCBwaWQsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUsIEFzc2VydGlvblJlYXNvbikKKyAgICA6
IG1fYXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCit7Cit9CisKIFByb2Nlc3NBc3NlcnRp
b246On5Qcm9jZXNzQXNzZXJ0aW9uKCkgPSBkZWZhdWx0OwogCiB2b2lkIFByb2Nlc3NBc3NlcnRp
b246OnNldFN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCmluZGV4IDQ3Y2M4MGY4ZWRmN2RhZGY5OWQ5
MGY3OWNlMjgxNWRiM2NjOWJkZjYuLmEwMWM3NmRiNzMzYjllZWU2ZDJiZTk3ZTc2MmM4MGU5NGI1
ODMwMTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKQEAg
LTQ1LDcgKzQ1LDEzIEBAIGVudW0gY2xhc3MgQXNzZXJ0aW9uU3RhdGUgewogICAgIFN1c3BlbmRl
ZCwKICAgICBCYWNrZ3JvdW5kLAogICAgIFVuYm91bmRlZE5ldHdvcmtpbmcsCi0gICAgRm9yZWdy
b3VuZAorICAgIEZvcmVncm91bmQsCit9OworCitlbnVtIGNsYXNzIEFzc2VydGlvblJlYXNvbiB7
CisgICAgRXh0ZW5zaW9uLAorICAgIEZpbmlzaFRhc2ssCisgICAgRmluaXNoVGFza1VuYm91bmRl
ZCwKIH07CiAKIGNsYXNzIFByb2Nlc3NBc3NlcnRpb24gOiBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8
UHJvY2Vzc0Fzc2VydGlvbj4gewpAQCAtNTgsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgfTsKIAog
ICAgIFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmIHJlYXNvbiwgQXNz
ZXJ0aW9uU3RhdGUpOworICAgIFByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJp
bmcmIHJlYXNvbiwgQXNzZXJ0aW9uU3RhdGUsIEFzc2VydGlvblJlYXNvbik7CiAgICAgdmlydHVh
bCB+UHJvY2Vzc0Fzc2VydGlvbigpOwogCiAgICAgdm9pZCBzZXRDbGllbnQoQ2xpZW50JiBjbGll
bnQpIHsgbV9jbGllbnQgPSAmY2xpZW50OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1By
b2Nlc3NUaHJvdHRsZXIuY3BwCmluZGV4IGI2MTJkYTBlODhhZDk3ZTc2ZTZmNmU4NzkwMGFjNWZi
YWZmMDNlZmIuLjAwYTk5MTg4NjE0ODczOTM4YTZjYjRhYmQ5OTE0YmM4NjI5NDVjZjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuY3BwCkBAIC02OCw3ICs2
OCw3IEBAIHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uTm93KCkKICAgICAK
IHZvaWQgUHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKCkKIHsKLSAgICBib29sIHNo
b3VsZEJlUnVubmFibGUgPSBtX2ZvcmVncm91bmRDb3VudGVyLnZhbHVlKCkgfHwgbV9iYWNrZ3Jv
dW5kQ291bnRlci52YWx1ZSgpOworICAgIGJvb2wgc2hvdWxkQmVSdW5uYWJsZSA9IHRoaXMtPnNo
b3VsZEJlUnVubmFibGUoKTsKIAogICAgIC8vIElmIHRoZSBwcm9jZXNzIGlzIGN1cnJlbnRseSBy
dW5uYWJsZSBidXQgd2lsbCBiZSBzdXNwZW5kZWQgdGhlbiBmaXJzdCBnaXZlIGl0IGEgY2hhbmNl
IHRvIGNvbXBsZXRlIHdoYXQgaXQgd2FzIGRvaW5nCiAgICAgLy8gYW5kIGNsZWFuIHVwIC0gbW92
ZSBpdCB0byB0aGUgYmFja2dyb3VuZCBhbmQgc2VuZCBpdCBhIG1lc3NhZ2UgdG8gbm90aWZ5LiBT
Y2hlZHVsZSBhIHRpbWVvdXQgc28gaXQgY2FuJ3Qgc3RheSBydW5uaW5nCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKaW5kZXggMDU3NmUzODZkODY2NTVmNGE3ODRl
Nzc3MjFjMGZjM2IzNDRjM2RkNS4uZmQxNTI5Y2Q0Nzc1ZTg2MmMwZjYyNTE4OGU5MTA2NTFmYTIx
MjdiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaApAQCAt
NjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRDb25uZWN0VG9Qcm9jZXNzKFByb2Nl
c3NJRCk7CiAgICAgdm9pZCBwcm9jZXNzUmVhZHlUb1N1c3BlbmQoKTsKICAgICB2b2lkIGRpZENh
bmNlbFByb2Nlc3NTdXNwZW5zaW9uKCk7CisgICAgYm9vbCBzaG91bGRCZVJ1bm5hYmxlKCkgY29u
c3QgeyByZXR1cm4gbV9mb3JlZ3JvdW5kQ291bnRlci52YWx1ZSgpIHx8IG1fYmFja2dyb3VuZENv
dW50ZXIudmFsdWUoKTsgfQogCiBwcml2YXRlOgogICAgIEFzc2VydGlvblN0YXRlIGFzc2VydGlv
blN0YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4
IDY3YmM3ZjU1NGU4ODlkYzU0NDk1NTBhYjY0MzE3NTM1NGZlZDgxZWMuLjQwOWQ0MWYxOTJiYzM0
ZTM4MjdlYTAwYzA2ZTRjMGU5YjBmYTdlYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQcm94eS5oCkBAIC01Nyw2ICs1Nyw3IEBAIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9u
OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBEZWZlcnJhYmxlT25lU2hvdFRpbWVy
OwogY2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0IFBsdWdpbkluZm87CiBzdHJ1Y3QgU2Vj
dXJpdHlPcmlnaW5EYXRhOwpAQCAtMjk3LDYgKzI5OCwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1
bmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlcklmTmVlZGVkKCk7CiAjZW5kaWYKIAorI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCisgICAgdm9pZCBwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5k
ZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyNlbmRpZgorCiBwcm90ZWN0ZWQ6CiAg
ICAgc3RhdGljIHVpbnQ2NF90IGdlbmVyYXRlUGFnZUlEKCk7CiAgICAgV2ViUHJvY2Vzc1Byb3h5
KFdlYlByb2Nlc3NQb29sJiwgV2Vic2l0ZURhdGFTdG9yZSosIElzUHJld2FybWVkKTsKQEAgLTQ0
MCw2ICs0NDUsNyBAQCBwcml2YXRlOgogICAgIEZvcmVncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9m
b3JlZ3JvdW5kVG9rZW47CiAgICAgQmFja2dyb3VuZFdlYlByb2Nlc3NUb2tlbiBtX2JhY2tncm91
bmRUb2tlbjsKICAgICBib29sIG1faGFzU2VudE1lc3NhZ2VUb1VuYmxvY2tBY2Nlc3NpYmlsaXR5
U2VydmVyIHsgZmFsc2UgfTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6RGVmZXJyYWJs
ZU9uZVNob3RUaW1lcj4gbV91bmV4cGVjdGVkQWN0aXZpdHlUaW1lcjsKICNlbmRpZgogCiAgICAg
SGFzaE1hcDxTdHJpbmcsIHVpbnQ2NF90PiBtX3BhZ2VVUkxSZXRhaW5Db3VudE1hcDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpp
bmRleCBjNDI0YzE4ZTY4MzQ0NDM3NWU0OTE2NGM5ZGU4OTkyZjg3YmNkN2ZmLi5mM2Q1ZTkzMWU2
ZGVlOTAyYTRhYzVlNWZjNWIxMGRkNDYxNWIxNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2VzLmluCkBAIC03OSw0ICs3OSw4IEBA
IG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3NQcm94eSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU3RhcnRE
aXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiAgICAg
U3RvcERpc3BsYXlMaW5rKHVuc2lnbmVkIG9ic2VydmVySUQsIHVpbnQzMl90IGRpc3BsYXlJRCkK
ICNlbmRpZgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBQcm9jZXNzV2FzVW5leHBl
Y3RlZGx5VW5zdXNwZW5kZWQoKSAtPiAoKSBBc3luYworI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCmluZGV4IDhjNGRl
M2EzMGVmMmI1NzNjMzdjNWJjYTY3OTc3MWI5ZTZlMzBlN2YuLmI4ZTZjZmQ2N2JiNjFiNWY5MTQ1
MDk2ZDc0YzM1YTY5MTcyZDUwNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9Qcm9jZXNzQXNzZXJ0aW9uSU9TLm1tCkBAIC0xNDYsMTkgKzE0NiwzNiBAQCBzdGF0aWMg
QktTUHJvY2Vzc0Fzc2VydGlvbkZsYWdzIGZsYWdzRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNz
ZXJ0aW9uU3RhdGUpCiAgICAgfQogfQogCi1zdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNv
biByZWFzb25Gb3JTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKK3N0YXRpYyBB
c3NlcnRpb25SZWFzb24gcmVhc29uRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNzZXJ0aW9uU3Rh
dGUpCiB7CiAgICAgc3dpdGNoIChhc3NlcnRpb25TdGF0ZSkgewogICAgIGNhc2UgQXNzZXJ0aW9u
U3RhdGU6OlVuYm91bmRlZE5ldHdvcmtpbmc6Ci0gICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNz
ZXJ0aW9uUmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKKyAgICAgICAgcmV0dXJuIEFzc2VydGlv
blJlYXNvbjo6RmluaXNoVGFza1VuYm91bmRlZDsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpT
dXNwZW5kZWQ6CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6QmFja2dyb3VuZDoKICAgICBjYXNl
IEFzc2VydGlvblN0YXRlOjpGb3JlZ3JvdW5kOgorICAgICAgICByZXR1cm4gQXNzZXJ0aW9uUmVh
c29uOjpFeHRlbnNpb247CisgICAgfQorfQorCitzdGF0aWMgQktTUHJvY2Vzc0Fzc2VydGlvblJl
YXNvbiB0b0JLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24oQXNzZXJ0aW9uUmVhc29uIHJlYXNvbikK
K3sKKyAgICBzd2l0Y2ggKHJlYXNvbikgeworICAgIGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpFeHRl
bnNpb246CiAgICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRXh0ZW5zaW9u
OworICAgIGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrOgorICAgICAgICByZXR1cm4g
QktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2s7CisgICAgY2FzZSBBc3NlcnRpb25S
ZWFzb246OkZpbmlzaFRhc2tVbmJvdW5kZWQ6CisgICAgICAgIHJldHVybiBCS1NQcm9jZXNzQXNz
ZXJ0aW9uUmVhc29uRmluaXNoVGFza1VuYm91bmRlZDsKICAgICB9CiB9CiAKIFByb2Nlc3NBc3Nl
cnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFz
c2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQorICAgIDogUHJvY2Vzc0Fzc2VydGlvbihwaWQs
IG5hbWUsIGFzc2VydGlvblN0YXRlLCByZWFzb25Gb3JTdGF0ZShhc3NlcnRpb25TdGF0ZSkpCit7
Cit9CisKK1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlkLCBjb25z
dCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlLCBBc3NlcnRpb25S
ZWFzb24gYXNzZXJ0aW9uUmVhc29uKQogICAgIDogbV9hc3NlcnRpb25TdGF0ZShhc3NlcnRpb25T
dGF0ZSkKIHsKICAgICBhdXRvIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpOwpAQCAtMTcz
LDcgKzE5MCw3IEBAIFByb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3QgcGlk
LCBjb25zdCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0YXRlCiAgICAgfTsKICAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc0Fzc2VydGlvbigpIFBJRCAlZCBh
Y3F1aXJpbmcgYXNzZXJ0aW9uIGZvciBwcm9jZXNzIHdpdGggUElEICVkLCBuYW1lICclcyciLCB0
aGlzLCBnZXRwaWQoKSwgcGlkLCBuYW1lLnV0ZjgoKS5kYXRhKCkpOwogICAgIAotICAgIG1fYXNz
ZXJ0aW9uID0gYWRvcHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElE
OnBpZCBmbGFnczpmbGFnc0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246cmVhc29uRm9y
U3RhdGUoYXNzZXJ0aW9uU3RhdGUpIG5hbWU6KE5TU3RyaW5nICopbmFtZSB3aXRoSGFuZGxlcjpo
YW5kbGVyXSk7CisgICAgbV9hc3NlcnRpb24gPSBhZG9wdE5TKFtbQktTUHJvY2Vzc0Fzc2VydGlv
biBhbGxvY10gaW5pdFdpdGhQSUQ6cGlkIGZsYWdzOmZsYWdzRm9yU3RhdGUoYXNzZXJ0aW9uU3Rh
dGUpIHJlYXNvbjp0b0JLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24oYXNzZXJ0aW9uUmVhc29uKSBu
YW1lOihOU1N0cmluZyAqKW5hbWUgd2l0aEhhbmRsZXI6aGFuZGxlcl0pOwogICAgIG1fYXNzZXJ0
aW9uLmdldCgpLmludmFsaWRhdGlvbkhhbmRsZXIgPSBeKCkgewogICAgICAgICBkaXNwYXRjaF9h
c3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewogICAgICAgICAgICAgUkVMRUFTRV9M
T0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBQcm9jZXNzIGFz
c2VydGlvbiBmb3IgcHJvY2VzcyB3aXRoIFBJRCAlZCB3YXMgaW52YWxpZGF0ZWQiLCB0aGlzLCBw
aWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggMjQ4YzZmYjZmYTc2YzU4NDM5YjE4Y2QzZTRlZmFhODQ1NzNlNTU3NS4uZTUzMGIzOGNh
ZjdiMmQxZWQ5MjFjOTQ3N2UzYjc3ZDE4OTYzMWQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTYxLDYgKzE1NjEsOCBAQAogCQlD
RDBDNjgzMTIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmlld0NvbnRyb2xsZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMEM2ODJGMjAx
RkQxMDEwMEE1OTQwOSAvKiBXS0Z1bGxTY3JlZW5WaWV3Q29udHJvbGxlci5oICovOyB9OwogCQlD
RDE5QTI2RTFBMTNFODM0MDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMTlBMjZBMUEx
M0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovOyB9OwogCQlD
RDE5RDJFQTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5RDJFODIw
NDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi87IH07CisJ
CUNEMjg2NUVFMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVDMjI1
NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCAqLzsgfTsKKwkJQ0Qy
ODY1RUYyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEMjg2NUVEMjI1NTU2
MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi87IH07CiAJCUNENDkx
QjA4MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMDYxRTcwRDA1RjAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggKi87IH07CiAJCUNENDkxQjBEMUU3
MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDQ5MUIw
QjFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwICovOyB9OwogCQlDRDQ5MUIwRTFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0Q0OTFCMEMxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyTWVzc2FnZXMuaCAqLzsgfTsKQEAgLTQ0MTcsNiArNDQxOSw4IEBACiAJCUNEMTlBMjZB
MUExM0U4MjEwMDhENjUwRSAvKiBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5RDJFODIwNDY0MDZGMDAxNzA3NEEgLyog
RnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpYy5oOyBwYXRoID0gaW9zL2Z1bGxzY3JlZW4vRnVsbHNjcmVlblRvdWNo
U2VjaGV1cmlzdGljLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEMTlEMkU5MjA0
NjQwNkYwMDE3MDc0QSAvKiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBuYW1lID0gRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcDsgcGF0aCA9IGlvcy9m
dWxsc2NyZWVuL0Z1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUNEMjg2NUVDMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNEMjg2NUVEMjI1NTU2MjAwMDYwNkFDNyAv
KiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQcm9j
ZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
NDkxQjA1MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENDkxQjA2MUU3MEQwNUYwMDAw
OTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDQ5MUIwQTFFNzMyRDEyMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIubWVzc2FnZXMu
aW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC02MzEzLDYgKzYzMTcsOCBAQAogCQkJ
CUM1NUY5MTZDMUM1OTVFNDQwMDI5RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0LmggKi8sCiAJ
CQkJQzU1RjkxNkQxQzU5NUU0NDAwMjlFOTJEIC8qIERhdGFEZXRlY3Rpb25SZXN1bHQubW0gKi8s
CiAJCQkJMkQxMDg3NjIxRDJDNjQxQjAwQjg1RjgyIC8qIExvYWRQYXJhbWV0ZXJzQ29jb2EubW0g
Ki8sCisJCQkJQ0QyODY1RUMyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNl
cnZlci5oICovLAorCQkJCUNEMjg2NUVEMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0
YXRlT2JzZXJ2ZXIubW0gKi8sCiAJCQkJQ0Q0QjREOUExRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJl
ZFJpbmdCdWZmZXJTdG9yYWdlLmNwcCAqLywKIAkJCQlDRDRCNEQ5QjFFNzY1RTAwMDBEMjcwOTIg
LyogU2hhcmVkUmluZ0J1ZmZlclN0b3JhZ2UuaCAqLywKIAkJCQkxQUIxRjc4RTFEMUIzNEE2MDA3
QzlCRDEgLyogV2ViQ29yZUFyZ3VtZW50Q29kZXJzQ29jb2EubW0gKi8sCkBAIC05Mzk3LDYgKzk0
MDMsNyBAQAogCQkJCUUxQ0MxQjkwMTJEN0VBREYwMDYyNTgzOCAvKiBQcmludEluZm8uaCBpbiBI
ZWFkZXJzICovLAogCQkJCTg2Rjk1MzY1MThGRjU4RjUwMDFEQjJFRiAvKiBQcm9jZXNzQXNzZXJ0
aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJv
Y2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZB
QzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjNG
RDQ4MjFFQjk0RUMwMDBBMjk4MkMgLyogUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk4NkU2N0EyNTE5MTBCOUQxMDAwMDRBQjcgLyogUHJvY2Vzc1Rocm90dGxl
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMwNDhBRTYxQUNBNDVEQzAwODJDODMyIC8qIFByb2Nl
c3NUaHJvdHRsZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMTA5NzIsNiArMTA5NzksNyBA
QAogCQkJCUJDODI4NDREMTZCNTA4MUMwMEEyNzhGRSAvKiBQbHVnaW5TZXJ2aWNlRW50cnlQb2lu
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTJEOTEzNDREMjEyQ0Y5RjAwMDEyOEFGRCAvKiBQbHVn
aW5WaWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJENTRDMzFCMjEyRjREQTYwMDQ5QzE3NCAv
KiBQcm9jZXNzTGF1bmNoZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQ0QyODY1RUYyMjU1NTYy
MDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTJENzJBMUZBMjEyQkY0NkUwMDUxN0EyMCAvKiBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGRjI0QTJEMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTJEQzE4RkI0MjE4QTZFOUUwMDI1QTg4RCAvKiBSZW1vdGVMYXllclRyZWVWaWV3
cy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
CmluZGV4IDU0MGJlYjY1Mzg2MzBiNTA4MGM0YjE5MjZjZGNjMzdiY2E0M2Q1ZWIuLjcxNTk3NjZl
NmRjODNmNWRhMzk5ZjE0YjExZmE0MWM2NGIwMDJmN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5jcHAKQEAgLTE0NTAsNiArMTQ1MCw3IEBAIHZvaWQgV2ViUHJvY2Vzczo6
cmVzZXRBbGxHZW9sb2NhdGlvblBlcm1pc3Npb25zKCkKIHZvaWQgV2ViUHJvY2Vzczo6YWN0dWFs
UHJlcGFyZVRvU3VzcGVuZChTaG91bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCBzaG91
bGRBY2tub3dsZWRnZVdoZW5SZWFkeVRvU3VzcGVuZCkKIHsKICAgICBTZXRGb3JTY29wZTxib29s
PiBzdXNwZW5zaW9uU2NvcGUobV9pc1N1c3BlbmRpbmcsIHRydWUpOworICAgIG1fcHJvY2Vzc0lz
U3VzcGVuZGVkID0gdHJ1ZTsKIAogI2lmIEVOQUJMRShWSURFTykKICAgICBzdXNwZW5kQWxsTWVk
aWFCdWZmZXJpbmcoKTsKQEAgLTE1MTEsNiArMTUxMiw5IEBAIHZvaWQgV2ViUHJvY2Vzczo6cHJl
cGFyZVRvU3VzcGVuZCgpCiB2b2lkIFdlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQo
KQogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNz
OjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkiLCB0aGlzKTsKKworICAgIG1fcHJvY2Vzc0lzU3Vz
cGVuZGVkID0gZmFsc2U7CisKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC0xNTg0LDYgKzE1ODgsOCBAQCB2b2lkIFdlYlByb2Nlc3M6
OnByb2Nlc3NEaWRSZXN1bWUoKQogewogICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9u
LCAiJXAgLSBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkiLCB0aGlzKTsKIAorICAgIG1f
cHJvY2Vzc0lzU3VzcGVuZGVkID0gZmFsc2U7CisKICAgICBjYW5jZWxNYXJrQWxsTGF5ZXJzVm9s
YXRpbGUoKTsKICAgICB1bmZyZWV6ZUFsbExheWVyVHJlZXMoKTsKICAgICAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCmluZGV4IGVlNzgxYTBiYmI1Zjg2NDMyOTE1ZGU5MGE3YWQz
OWUxMDBkY2YxMDYuLmM1ZDczMWM5Njg3N2E2YzVmMjNkMDA5MzJjYmUzN2MwMTgyYjNkYTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApAQCAtNTcsNiArNTcsMTAgQEAKICNp
bmNsdWRlIDx3dGYvTWFjaFNlbmRSaWdodC5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQorI2luY2x1ZGUgIlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBBUEkgewogY2xhc3MgT2JqZWN0OwogfQpAQCAtMTEyLDcgKzExNiwxMiBAQCBj
bGFzcyBXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI7CiBzdHJ1Y3QgV2Vic2l0ZURhdGE7CiBzdHJ1
Y3QgV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnM7CiAKLWNsYXNzIFdlYlByb2Nlc3MgOiBwdWJs
aWMgQXV4aWxpYXJ5UHJvY2VzcyB7CitjbGFzcyBXZWJQcm9jZXNzCisgICAgOiBwdWJsaWMgQXV4
aWxpYXJ5UHJvY2VzcworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgLCBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXI6OkNsaWVudAorI2VuZGlmCit7CiBwdWJsaWM6CiAgICAgc3RhdGljIFdl
YlByb2Nlc3MmIHNpbmdsZXRvbigpOwogICAgIHN0YXRpYyBjb25zdGV4cHIgUHJvY2Vzc1R5cGUg
cHJvY2Vzc1R5cGUgPSBQcm9jZXNzVHlwZTo6V2ViQ29udGVudDsKQEAgLTQyNSw2ICs0MzQsNyBA
QCBwcml2YXRlOgogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQg
cHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tT
dGF0ZSkgZmluYWw7CiAgICAgYm9vbCBzaG91bGRGcmVlemVPblN1c3BlbnNpb24oKSBjb25zdDsK
ICAgICB2b2lkIHVwZGF0ZUZyZWV6ZXJTdGF0dXMoKTsKICNlbmRpZgpAQCAtNDkwLDYgKzUwMCw4
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2hhc1JpY2hDb250ZW50U2VydmljZXMgeyBmYWxzZSB9
OwogI2VuZGlmCiAKKyAgICBib29sIG1fcHJvY2Vzc0lzU3VzcGVuZGVkIHsgZmFsc2UgfTsKKwog
ICAgIEhhc2hTZXQ8dWludDY0X3Q+IG1fcGFnZXNJbldpbmRvd3M7CiAgICAgV2ViQ29yZTo6VGlt
ZXIgbV9ub25WaXNpYmxlUHJvY2Vzc0NsZWFudXBUaW1lcjsKIApAQCAtNDk3LDYgKzUwOSw3IEBA
IHByaXZhdGU6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJTUUxpdGVEYXRhYmFzZVRyYWNrZXI+IG1fd2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwor
ICAgIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlciBtX3Rhc2tTdGF0ZU9ic2VydmVyIHsgKnRoaXMg
fTsKICNlbmRpZgogCiAgICAgZW51bSBQYWdlTWFya2luZ0xheWVyc0FzVm9sYXRpbGVDb3VudGVy
VHlwZSB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbQppbmRleCAyNGFjNWUwYWIyOWFiMzk1ZWRiYzYxMDg0MmM1YTFlODI1MWYyNWFi
Li40YTVmNjhhMjQ0NjkyZDZkZWVlMWIxMjQ2YzY3YzRiNjNkMThhMmZkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KQEAgLTMxLDYg
KzMxLDcgQEAKICNpbXBvcnQgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5n
LmgiCiAjaW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKKyNpbXBvcnQgIlByb2Nlc3NBc3NlcnRp
b24uaCIKICNpbXBvcnQgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbXBvcnQgIlNhbmRib3hJbml0
aWFsaXphdGlvblBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgpAQCAtMjgxLDYg
KzI4MiwzMSBAQCB2b2lkIFdlYlByb2Nlc3M6OnVwZGF0ZVByb2Nlc3NOYW1lKCkKICNlbmRpZiAv
LyBQTEFURk9STShNQUMpCiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQordm9pZCBXZWJQ
cm9jZXNzOjpwcm9jZXNzVGFza1N0YXRlRGlkQ2hhbmdlKFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZl
cjo6VGFza1N0YXRlIHRhc2tTdGF0ZSkKK3sKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZSgpIC0gdGFz
a1N0YXRlKCVkKSIsIHRoaXMsIHRhc2tTdGF0ZSk7CisgICAgaWYgKHRhc2tTdGF0ZSA9PSBQcm9j
ZXNzVGFza1N0YXRlT2JzZXJ2ZXI6Ok5vbmUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0
YXNrU3RhdGUgPT0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpTdXNwZW5kZWQpIHsKKyAgICAg
ICAgaWYgKG1fcHJvY2Vzc0lzU3VzcGVuZGVkKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzOjpwcm9j
ZXNzVGFza1N0YXRlQ2hhbmdlZCgpIC0gdW5leHBlY3RlZGx5IGVudGVyZWQgU3VzcGVuZGVkIHN0
YXRlIiwgdGhpcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vz
c0lzU3VzcGVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSB3ZXJlIGF3YWtlbmVk
IGZyb20gc3VzcGVuc2lvbiB1bmV4cGVjdGVkbHkuIE5vdGlmeSB0aGUgV2ViUHJvY2Vzc1Byb3h5
LCBidXQgdGFrZSBhIHByb2Nlc3MgYXNzZXJ0aW9uIG9uIG91ciBwYXJlbnQgUElECisgICAgLy8g
dG8gZW5zdXJlIHRoYXQgaXQgdG9vIGlzIGF3YWtlbmVkLgorICAgIGF1dG8gdWlQcm9jZXNzQXNz
ZXJ0aW9uID0gc3RkOjptYWtlX3VuaXF1ZTxQcm9jZXNzQXNzZXJ0aW9uPihwYXJlbnRQcm9jZXNz
Q29ubmVjdGlvbigpLT5yZW1vdGVQcm9jZXNzSUQoKSwgIlVuZXhwZWN0ZWRseSByZXN1bWVkIiwg
QXNzZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQsIEFzc2VydGlvblJlYXNvbjo6RmluaXNoVGFzayk7
CisgICAgcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJQcm9jZXNzUHJveHk6OlByb2Nlc3NXYXNVbmV4cGVjdGVkbHlVbnN1c3BlbmRlZCgp
LCBbdWlQcm9jZXNzQXNzZXJ0aW9uID0gV1RGTW92ZSh1aVByb2Nlc3NBc3NlcnRpb24pXSB7IH0p
OworfQorI2VuZGlmCisKIHN0YXRpYyB2b2lkIHJlZ2lzdGVyV2l0aEFjY2Vzc2liaWxpdHkoKQog
ewogI2lmIFVTRShBUFBLSVQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367040</attachid>
            <date>2019-04-09 09:03:02 -0700</date>
            <delta_ts>2019-04-09 09:31:05 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196659-20190409090301.patch</filename>
            <type>text/plain</type>
            <size>31847</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlMTdiZWI3YTlhOTcwYzI5
NmY5ZWZlYzcwNGY4OGUxNjQxYzVjNmYuLmViYjM1MTA1MDIxOWQ5MTlkZGY0MDAyZTc3NzQ5NWQ2
ZWUzNjY2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMDUgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBd2FrZW4gVUlQcm9j
ZXNzIGlmIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb25zIHVu
ZXhwZWN0ZWRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Fzc2VydGlv
blNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
dGFza1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJEZWxlZ2F0ZSBwcm9jZXNzOnRhc2tTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktp
dDo6dG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3Rh
dGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
c2V0VGFza1N0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1Vu
ZXhwZWN0ZWRseVVuc3VzcGVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpzaG91bGRCZVJ1bm5hYmxlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OnJlYXNvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fz
c2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0
ZURpZENoYW5nZSk6CisKIDIwMTktMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDIzNjQ2MykgRG93bmxvYWRNYW5h
Z2VyIGNhbiBjYWxsIGEgbnVsbCBDb21wbGV0aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGYzNzM5YjRhZWFiOTliNGYzOTI1ZTEyNzViYjg1OTFi
MTU3MmU3MTYuLjM2YmQ5MTJlMGJjZTRhYThjYjE4YWQ5MDFiYmIzZmU5MGE3M2M4MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHBvc3RDb25uZWN0aW9uRGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3Jr
UXVldWUoKTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+IHZv
aWQgc2VuZFdpdGhBc3luY1JlcGx5KFQmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEFyZ3MuLi4pPiYmIGFyZ3MsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQgPSAwKTsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDPiB2b2lkIHNlbmRXaXRoQXN5bmNSZXBseShUJiYg
bWVzc2FnZSwgQyYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0g
MCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5kKFQmJiBtZXNzYWdlLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMgPSB7
IH0pOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFdpdGhSZXBseShUJiYgbWVz
c2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgRnVuY3Rpb25EaXNwYXRjaGVyJiByZXBseURp
c3BhdGNoZXIsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8dHlwZW5hbWUgQ29kaW5nVHlwZTx0eXBl
bmFtZSBUOjpSZXBseT46OlR5cGU+KT4mJiByZXBseUhhbmRsZXIpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGJvb2wgc2VuZFN5bmMoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYg
cmVwbHksIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIFNlY29uZHMgdGltZW91dCA9IFNlY29uZHM6
OmluZmluaXR5KCksIE9wdGlvblNldDxTZW5kU3luY09wdGlvbj4gc2VuZFN5bmNPcHRpb25zID0g
eyB9KTsKQEAgLTQxNiw4ICs0MTYsOCBAQCB1aW50NjRfdCBuZXh0QXN5bmNSZXBseUhhbmRsZXJJ
RCgpOwogdm9pZCBhZGRBc3luY1JlcGx5SGFuZGxlcihDb25uZWN0aW9uJiwgdWludDY0X3QsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRGVjb2RlciopPiYmKTsKIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRGVjb2RlciopPiB0YWtlQXN5bmNSZXBseUhhbmRsZXIoQ29ubmVjdGlvbiYsIHVpbnQ2NF90
KTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KLXZvaWQgQ29ubmVj
dGlvbjo6c2VuZFdpdGhBc3luY1JlcGx5KFQmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
KQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQz4KK3ZvaWQgQ29ubmVjdGlvbjo6c2Vu
ZFdpdGhBc3luY1JlcGx5KFQmJiBtZXNzYWdlLCBDJiYgY29tcGxldGlvbkhhbmRsZXIsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoIVQ6OmlzU3luYywgQXN5
bmNNZXNzYWdlRXhwZWN0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvQXNzZXJ0aW9uU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL2lvcy9Bc3NlcnRpb25TZXJ2aWNlc1NQSS5oCmluZGV4IGZhZTJhMTEyOTI4OGIzMzQ5OGZl
NjVmN2MwNTJlM2YxMjNhMmVjNDEuLjZjZTZmMmQ5NWNlMzZjNzk5NTAwZTk3NDA4MzUwMzM2NTlk
NzRkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Bc3NlcnRp
b25TZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Bc3Nl
cnRpb25TZXJ2aWNlc1NQSS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKIAogI2ltcG9ydCA8QXNzZXJ0aW9uU2VydmljZXMvQktTQXBwbGljYXRpb25TdGF0
ZU1vbml0b3IuaD4KKyNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU1Byb2Nlc3MuaD4KICNp
bXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU1Byb2Nlc3NBc3NlcnRpb24uaD4KIAogI2Vsc2UK
QEAgLTY4LDYgKzY5LDcgQEAgZW51bSB7CiB0eXBlZGVmIHVpbnQzMl90IEJLU1Byb2Nlc3NBc3Nl
cnRpb25GbGFnczsKIAogZW51bSB7CisgICAgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlz
aFRhc2sgPSA0LAogICAgIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb25FeHRlbnNpb24gPSAxMywK
ICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRmluaXNoVGFza1VuYm91bmRlZCA9IDEwMDA0
LAogfTsKQEAgLTg3LDQgKzg5LDI3IEBAIHR5cGVkZWYgdm9pZCAoXkJLU1Byb2Nlc3NBc3NlcnRp
b25BY3F1aXNpdGlvbkhhbmRsZXIpKEJPT0wgYWNxdWlyZWQpOwogLSAodm9pZClpbnZhbGlkYXRl
OwogQGVuZAogCitlbnVtIHsKKyAgICBCS1NQcm9jZXNzVGFza1N0YXRlTm9uZSwKKyAgICBCS1NQ
cm9jZXNzVGFza1N0YXRlUnVubmluZywKKyAgICBCS1NQcm9jZXNzVGFza1N0YXRlU3VzcGVuZGVk
LAorfTsKK3R5cGVkZWYgdWludDMyX3QgQktTUHJvY2Vzc1Rhc2tTdGF0ZTsKKworQGNsYXNzIEJL
U1Byb2Nlc3M7CisKK0Bwcm90b2NvbCBCS1NQcm9jZXNzRGVsZWdhdGUgPE5TT2JqZWN0PgorQG9w
dGlvbmFsCistICh2b2lkKXByb2Nlc3M6KEJLU1Byb2Nlc3MgKilwcm9jZXNzIHRhc2tTdGF0ZURp
ZENoYW5nZTooQktTUHJvY2Vzc1Rhc2tTdGF0ZSluZXdTdGF0ZTsKK0BlbmQKKworQGludGVyZmFj
ZSBCS1NQcm9jZXNzIDogTlNPYmplY3QKK0BlbmQKKworQGludGVyZmFjZSBCS1NQcm9jZXNzICgp
CisrIChCS1NQcm9jZXNzICopY3VycmVudFByb2Nlc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZHdyaXRlLCB3ZWFrKSBpZCA8QktTUHJvY2Vzc0RlbGVnYXRlPiBkZWxlZ2F0ZTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgYXNzaWduKSBCS1NQcm9jZXNzVGFza1N0YXRlIHRh
c2tTdGF0ZTsKK0BlbmQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmOTYwOTQ3NTE3
YzI1ODU5OWE2ZThkMTBjYzIzMTgwNDllMWFiNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaApAQCAtMCwwICsx
LDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFdLUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGU7CitPQkpDX0NMQVNTIEJLU1Byb2Nlc3M7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIgeworcHVi
bGljOgorICAgIGNsYXNzIENsaWVudDsKKworICAgIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigp
OworICAgIGV4cGxpY2l0IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcihDbGllbnQmKTsKKyAgICB+
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCk7CisgICAgCisgICAgZW51bSBUYXNrU3RhdGUgewor
ICAgICAgICBOb25lLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdXNwZW5kZWQsCisgICAg
fTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5D
bGllbnQoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVGFza1N0YXRl
RGlkQ2hhbmdlKFRhc2tTdGF0ZSkgPSAwOworICAgIH07CisKKyAgICB2b2lkIHNldENsaWVudChD
bGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9ICZjbGllbnQ7IH0KKyAgICBDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CisKKyAgICBUYXNrU3RhdGUgdGFza1N0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV90YXNrU3RhdGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHNldFRhc2tT
dGF0ZShUYXNrU3RhdGUpOworCisgICAgQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAg
ICBUYXNrU3RhdGUgbV90YXNrU3RhdGUgeyBOb25lIH07CisgICAgUmV0YWluUHRyPEJLU1Byb2Nl
c3M+IG1fcHJvY2VzczsKKyAgICBSZXRhaW5QdHI8V0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJE
ZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzZGVlZWY1NDVhMWUyN2E3NDIyNjNiOWQ3
MDg1MDFjYTU4YjQzMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJBc3NlcnRpb25T
ZXJ2aWNlc1NQSS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCA8d3RmL0Z1bmN0aW9u
Lmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJB
TUVXT1JLKEFzc2VydGlvblNlcnZpY2VzKTsKK1NPRlRfTElOS19DTEFTUyhBc3NlcnRpb25TZXJ2
aWNlcywgQktTUHJvY2Vzcyk7CisKK3R5cGVkZWYgdm9pZCheVGFza1N0YXRlQ2hhbmdlZENhbGxi
YWNrVHlwZSkoQktTUHJvY2Vzc1Rhc2tTdGF0ZSk7CisKK0BpbnRlcmZhY2UgV0tQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PEJLU1Byb2Nlc3NEZWxlZ2F0ZT4KK0Bw
cm9wZXJ0eSAoY29weSkgVGFza1N0YXRlQ2hhbmdlZENhbGxiYWNrVHlwZSB0YXNrU3RhdGVDaGFu
Z2VkQ2FsbGJhY2s7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlckRlbGVnYXRlCistICh2b2lkKXByb2Nlc3M6KEJLU1Byb2Nlc3MgKilwcm9jZXNzIHRh
c2tTdGF0ZURpZENoYW5nZTooQktTUHJvY2Vzc1Rhc2tTdGF0ZSluZXdTdGF0ZQoreworICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLVtXS1Byb2Nlc3NUYXNrU3RhdGVPYnNl
cnZlckRlbGVnYXRlIHByb2Nlc3M6dGFza1N0YXRlRGlkQ2hhbmdlOl0sIHByb2Nlc3MoJXApLCBu
ZXdTdGF0ZSglZCkiLCBzZWxmLCBwcm9jZXNzLCAoaW50KW5ld1N0YXRlKTsKKworICAgIGlmIChz
ZWxmLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgc2VsZi50YXNrU3RhdGVDaGFu
Z2VkQ2FsbGJhY2sobmV3U3RhdGUpOworfQorQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RhdGljIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIHRvUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyVGFza1N0YXRlKEJLU1Byb2Nlc3NUYXNrU3RhdGUgc3RhdGUpCit7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50MzJfdD4oQktTUHJvY2Vzc1Rhc2tTdGF0ZU5v
bmUpID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6Ok5v
bmUpLCAiQktTUHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRh
c2tTdGF0ZSIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEJLU1By
b2Nlc3NUYXNrU3RhdGVSdW5uaW5nKSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyOjpSdW5uaW5nKSwgIkJLU1Byb2Nlc3NUYXNrU3RhdGUgIT0gUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyOjpUYXNrU3RhdGUiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnQzMl90PihCS1NQcm9jZXNzVGFza1N0YXRlU3VzcGVuZGVkKSA9PSBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpTdXNwZW5kZWQpLCAiQktT
UHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSIp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tT
dGF0ZT4oc3RhdGUpOworfQorCitQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlcigpCisgICAgOiBtX3Byb2Nlc3MoQktTUHJvY2Vzcy5jdXJyZW50UHJvY2Vz
cykKKyAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVy
RGVsZWdhdGUgYWxsb2NdIGluaXRdKSkKK3sKKyAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIoKSwgbV9wcm9jZXNzKCVwKSIsIHRoaXMsIG1fcHJvY2Vzcy5nZXQoKSk7CisgICAgbV9k
ZWxlZ2F0ZS5nZXQoKS50YXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2sgPSBbdGhpc10gKEJLU1Byb2Nl
c3NUYXNrU3RhdGUgc3RhdGUpIHsKKyAgICAgICAgc2V0VGFza1N0YXRlKHRvUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyVGFza1N0YXRlKHN0YXRlKSk7CisgICAgfTsKKyAgICBtX3Byb2Nlc3MuZ2V0
KCkuZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdldCgpOworfQorCitQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcihDbGllbnQmIGNsaWVudCkKKyAgICA6IFBy
b2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpCit7CisgICAgc2V0Q2xpZW50KGNsaWVudCk7Cit9CisK
K1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpCit7
CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS50YXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2sgPSBuaWw7Cit9
CisKK3ZvaWQgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpzZXRUYXNrU3RhdGUoVGFza1N0YXRl
IHN0YXRlKQoreworICAgIGlmIChtX3Rhc2tTdGF0ZSA9PSBzdGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV90YXNrU3RhdGUgPSBzdGF0ZTsKKyAgICBpZiAobV9jbGllbnQpCisgICAgICAg
IG1fY2xpZW50LT5wcm9jZXNzVGFza1N0YXRlRGlkQ2hhbmdlKHN0YXRlKTsKK30KKworfQorCisj
ZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRleCBjYTY5NTViMzUw
MGM3ZGUyYmU3MmE0ZGM3NGYyNWMzY2Y2NTM5ZjlmLi43YmFiZGViNjAzMDNmYTczMjMxOTQ2ZGY2
MTQ3ZWFhMzVkM2E4NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNDEsNiArNDEsOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorc3RhdGljIGNvbnN0IFNlY29uZHMgdW5leHBlY3RlZEFjdGl2aXR5RHVy
YXRpb24gPSAxMF9zOworCiBjb25zdCBIYXNoU2V0PFN0cmluZz4mIFdlYlByb2Nlc3NQcm94eTo6
cGxhdGZvcm1QYXRoc1dpdGhBc3N1bWVkUmVhZEFjY2VzcygpCiB7CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gcGxhdGZvcm1QYXRoc1dpdGhBc3N1bWVkUmVhZEFj
Y2VzcyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5nPiB7CkBAIC0xODcsNCArMTg5LDI1IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpyZWxlYXNlSGlnaFBlcmZvcm1hbmNlR1BVKCkKIH0KICNl
bmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5Ojpw
cm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb24pCit7CisgICAgaWYgKG1fdGhyb3R0bGVyLnNob3VsZEJlUnVubmFibGUo
KSkgeworICAgICAgICAvLyBUaGUgcHJvY2VzcyBiZWNvbWluZyB1bnN1c3BlbmRlZCB3YXMgbm90
IHVuZXhwZWN0ZWQ7IGl0IGxpa2VseSB3YXMgbm90aWZpZWQgb2YgaXRzIHJ1bm5pbmcgc3RhdGUK
KyAgICAgICAgLy8gYmVmb3JlIHJlY2VpdmluZyBhIHByb2NzZXNzRGlkUmVzdW1lKCkgbWVzc2Fn
ZSBmcm9tIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIGNvbXBsZXRpb24oKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdhcyBhd2FrZW5lZCBieSBzb21l
dGhpbmcgb3RoZXIgdGhhbiB0aGUgVUlQcm9jZXNzLiBUYWtlIG91dCBhbiBhc3NlcnRpb24gZm9y
IGEKKyAgICAvLyBsaW1pdGVkIGR1cmF0aW9uIHRvIGFsbG93IHdoYXRldmVyIHRhc2sgbmVlZHMg
dG8gYmUgYWNjb21wbGlzaGVkIHRpbWUgdG8gY29tcGxldGUuCisgICAgUkVMRUFTRV9MT0coUHJv
Y2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1VuZXhwZWN0
ZWRseVVuc3VzcGVuZGVkKCkiLCB0aGlzKTsKKyAgICBhdXRvIGJhY2tncm91bmRBY3Rpdml0eVRp
bWVvdXRIYW5kbGVyID0gW2FjdGl2aXR5VG9rZW4gPSBtX3Rocm90dGxlci5iYWNrZ3JvdW5kQWN0
aXZpdHlUb2tlbigpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7CisgICAgICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNzUHJveHk6OnByb2Nl
c3NXYXNVbmV4cGVjdGVkbHlVbnN1c3BlbmRlZCgpIC0gbGFtYmRhLCBiYWNrZ3JvdW5kIGFjdGl2
aXR5IHRpbWVkIG91dCIsIHdlYWtUaGlzLmdldCgpKTsKKyAgICB9OworICAgIG1fdW5leHBlY3Rl
ZEFjdGl2aXR5VGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OkRlZmVycmFibGVPbmVT
aG90VGltZXI+KFdURk1vdmUoYmFja2dyb3VuZEFjdGl2aXR5VGltZW91dEhhbmRsZXIpLCB1bmV4
cGVjdGVkQWN0aXZpdHlEdXJhdGlvbik7CisgICAgY29tcGxldGlvbigpOworfQorI2VuZGlmCisK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKaW5kZXgg
ZTMyNWQxMGNkOWY0NWNlYThiMzJkZGMxMmEzYjE4ZGRkMjU4YmY5Ny4uZWRiMDZkM2IyMDliYjI2
ZGRiYzlmOTM0ZjQwNjVjZTVjMDZlOTVkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc0Fzc2VydGlvbi5jcHAKQEAgLTM1LDYgKzM1LDExIEBAIFByb2Nlc3NBc3NlcnRpb246
OlByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmLCBBc3NlcnRpb25TdGF0
ZSBhc3NlCiB7CiB9CiAKK1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24ocGlkX3Qg
cGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlLCBB
c3NlcnRpb25SZWFzb24pCisgICAgOiBtX2Fzc2VydGlvblN0YXRlKGFzc2VydGlvblN0YXRlKQor
eworfQorCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbigpID0gZGVmYXVsdDsK
IAogdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZShBc3NlcnRpb25TdGF0ZSBhc3NlcnRp
b25TdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3NlcnRpb24uaAppbmRl
eCA0N2NjODBmOGVkZjdkYWRmOTlkOTBmNzljZTI4MTVkYjNjYzliZGY2Li5hMDFjNzZkYjczM2I5
ZWVlNmQyYmU5N2U3NjJjODBlOTRiNTgzMDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC00NSw3ICs0NSwxMyBAQCBlbnVtIGNsYXNzIEFzc2VydGlv
blN0YXRlIHsKICAgICBTdXNwZW5kZWQsCiAgICAgQmFja2dyb3VuZCwKICAgICBVbmJvdW5kZWRO
ZXR3b3JraW5nLAotICAgIEZvcmVncm91bmQKKyAgICBGb3JlZ3JvdW5kLAorfTsKKworZW51bSBj
bGFzcyBBc3NlcnRpb25SZWFzb24geworICAgIEV4dGVuc2lvbiwKKyAgICBGaW5pc2hUYXNrLAor
ICAgIEZpbmlzaFRhc2tVbmJvdW5kZWQsCiB9OwogCiBjbGFzcyBQcm9jZXNzQXNzZXJ0aW9uIDog
cHVibGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+IHsKQEAgLTU4LDYgKzY0LDcg
QEAgcHVibGljOgogICAgIH07CiAKICAgICBQcm9jZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29u
c3QgU3RyaW5nJiByZWFzb24sIEFzc2VydGlvblN0YXRlKTsKKyAgICBQcm9jZXNzQXNzZXJ0aW9u
KFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24sIEFzc2VydGlvblN0YXRlLCBBc3NlcnRp
b25SZWFzb24pOwogICAgIHZpcnR1YWwgflByb2Nlc3NBc3NlcnRpb24oKTsKIAogICAgIHZvaWQg
c2V0Q2xpZW50KENsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gJmNsaWVudDsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRleCBiNjEyZGEwZTg4
YWQ5N2U3NmU2ZjZlODc5MDBhYzVmYmFmZjAzZWZiLi4wMGE5OTE4ODYxNDg3MzkzOGE2Y2I0YWJk
OTkxNGJjODYyOTQ1Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9j
ZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhy
b3R0bGVyLmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0
ZUFzc2VydGlvbk5vdygpCiAgICAgCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6OnVwZGF0ZUFzc2Vy
dGlvbigpCiB7Ci0gICAgYm9vbCBzaG91bGRCZVJ1bm5hYmxlID0gbV9mb3JlZ3JvdW5kQ291bnRl
ci52YWx1ZSgpIHx8IG1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKTsKKyAgICBib29sIHNob3Vs
ZEJlUnVubmFibGUgPSB0aGlzLT5zaG91bGRCZVJ1bm5hYmxlKCk7CiAKICAgICAvLyBJZiB0aGUg
cHJvY2VzcyBpcyBjdXJyZW50bHkgcnVubmFibGUgYnV0IHdpbGwgYmUgc3VzcGVuZGVkIHRoZW4g
Zmlyc3QgZ2l2ZSBpdCBhIGNoYW5jZSB0byBjb21wbGV0ZSB3aGF0IGl0IHdhcyBkb2luZwogICAg
IC8vIGFuZCBjbGVhbiB1cCAtIG1vdmUgaXQgdG8gdGhlIGJhY2tncm91bmQgYW5kIHNlbmQgaXQg
YSBtZXNzYWdlIHRvIG5vdGlmeS4gU2NoZWR1bGUgYSB0aW1lb3V0IHNvIGl0IGNhbid0IHN0YXkg
cnVubmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oCmluZGV4
IDA1NzZlMzg2ZDg2NjU1ZjRhNzg0ZTc3NzIxYzBmYzNiMzQ0YzNkZDUuLmZkMTUyOWNkNDc3NWU4
NjJjMGY2MjUxODhlOTEwNjUxZmEyMTI3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm9jZXNzVGhyb3R0bGVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
Q29ubmVjdFRvUHJvY2VzcyhQcm9jZXNzSUQpOwogICAgIHZvaWQgcHJvY2Vzc1JlYWR5VG9TdXNw
ZW5kKCk7CiAgICAgdm9pZCBkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigpOworICAgIGJvb2wg
c2hvdWxkQmVSdW5uYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yZWdyb3VuZENvdW50ZXIudmFs
dWUoKSB8fCBtX2JhY2tncm91bmRDb3VudGVyLnZhbHVlKCk7IH0KIAogcHJpdmF0ZToKICAgICBB
c3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQcm9jZXNzUHJveHkuaAppbmRleCA2N2JjN2Y1NTRlODg5ZGM1NDQ5NTUwYWI2NDMxNzUzNTRm
ZWQ4MWVjLi40MDlkNDFmMTkyYmMzNGUzODI3ZWEwMGMwNmU0YzBlOWIwZmE3ZWMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTcsNiArNTcsNyBAQCBj
bGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
RGVmZXJyYWJsZU9uZVNob3RUaW1lcjsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVjdCBQ
bHVnaW5JbmZvOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTI5Nyw2ICsyOTgsMTAg
QEAgcHVibGljOgogICAgIHZvaWQgdW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2ZXJJZk5lZWRlZCgp
OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZvaWQgcHJvY2Vzc1dh
c1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Cisj
ZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZVBhZ2VJRCgp
OwogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNpdGVEYXRhU3RvcmUq
LCBJc1ByZXdhcm1lZCk7CkBAIC00NDAsNiArNDQ1LDcgQEAgcHJpdmF0ZToKICAgICBGb3JlZ3Jv
dW5kV2ViUHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAgIEJhY2tncm91bmRXZWJQ
cm9jZXNzVG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAgICAgYm9vbCBtX2hhc1NlbnRNZXNzYWdl
VG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7IGZhbHNlIH07CisgICAgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI+IG1fdW5leHBlY3RlZEFjdGl2aXR5
VGltZXI7CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRfdD4gbV9wYWdlVVJM
UmV0YWluQ291bnRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzQyNGMxOGU2ODM0NDQzNzVlNDkxNjRjOWRlODk5
MmY4N2JjZDdmZi4uZjNkNWU5MzFlNmRlZTkwMmE0YWM1ZTVmYzViMTBkZDQ2MTViMTVkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdl
cy5pbgpAQCAtNzksNCArNzksOCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFN0YXJ0RGlzcGxheUxpbmsodW5zaWduZWQgb2JzZXJ2ZXJJRCwgdWlu
dDMyX3QgZGlzcGxheUlEKQogICAgIFN0b3BEaXNwbGF5TGluayh1bnNpZ25lZCBvYnNlcnZlcklE
LCB1aW50MzJfdCBkaXNwbGF5SUQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisgICAgUHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVkKCkgLT4gKCkgQXN5bmMKKyNl
bmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Byb2Nlc3NB
c3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2Vy
dGlvbklPUy5tbQppbmRleCA4YzRkZTNhMzBlZjJiNTczYzM3YzViY2E2Nzk3NzFiOWU2ZTMwZTdm
Li5iOGU2Y2ZkNjdiYjYxYjVmOTE0NTA5NmQ3NGMzNWE2OTE3MmQ1MDU2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklPUy5tbQpAQCAtMTQ2
LDE5ICsxNDYsMzYgQEAgc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFncyBmbGFnc0ZvclN0
YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogICAgIH0KIH0KIAotc3RhdGljIEJL
U1Byb2Nlc3NBc3NlcnRpb25SZWFzb24gcmVhc29uRm9yU3RhdGUoQXNzZXJ0aW9uU3RhdGUgYXNz
ZXJ0aW9uU3RhdGUpCitzdGF0aWMgQXNzZXJ0aW9uUmVhc29uIHJlYXNvbkZvclN0YXRlKEFzc2Vy
dGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogewogICAgIHN3aXRjaCAoYXNzZXJ0aW9uU3RhdGUp
IHsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpVbmJvdW5kZWROZXR3b3JraW5nOgotICAgICAg
ICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2tVbmJvdW5kZWQ7Cisg
ICAgICAgIHJldHVybiBBc3NlcnRpb25SZWFzb246OkZpbmlzaFRhc2tVbmJvdW5kZWQ7CiAgICAg
Y2FzZSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOgogICAgIGNhc2UgQXNzZXJ0aW9uU3RhdGU6
OkJhY2tncm91bmQ6CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6Rm9yZWdyb3VuZDoKKyAgICAg
ICAgcmV0dXJuIEFzc2VydGlvblJlYXNvbjo6RXh0ZW5zaW9uOworICAgIH0KK30KKworc3RhdGlj
IEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24gdG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKEFz
c2VydGlvblJlYXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChyZWFzb24pIHsKKyAgICBjYXNl
IEFzc2VydGlvblJlYXNvbjo6RXh0ZW5zaW9uOgogICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fz
c2VydGlvblJlYXNvbkV4dGVuc2lvbjsKKyAgICBjYXNlIEFzc2VydGlvblJlYXNvbjo6RmluaXNo
VGFzazoKKyAgICAgICAgcmV0dXJuIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb25GaW5pc2hUYXNr
OworICAgIGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrVW5ib3VuZGVkOgorICAgICAg
ICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2tVbmJvdW5kZWQ7CiAg
ICAgfQogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSkKKyAgICA6
IFByb2Nlc3NBc3NlcnRpb24ocGlkLCBuYW1lLCBhc3NlcnRpb25TdGF0ZSwgcmVhc29uRm9yU3Rh
dGUoYXNzZXJ0aW9uU3RhdGUpKQoreworfQorCitQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNz
ZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZSBhc3Nl
cnRpb25TdGF0ZSwgQXNzZXJ0aW9uUmVhc29uIGFzc2VydGlvblJlYXNvbikKICAgICA6IG1fYXNz
ZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCiB7CiAgICAgYXV0byB3ZWFrVGhpcyA9IG1ha2VX
ZWFrUHRyKCp0aGlzKTsKQEAgLTE3Myw3ICsxOTAsNyBAQCBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9j
ZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0
ZQogICAgIH07CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFByb2Nl
c3NBc3NlcnRpb24oKSBQSUQgJWQgYWNxdWlyaW5nIGFzc2VydGlvbiBmb3IgcHJvY2VzcyB3aXRo
IFBJRCAlZCwgbmFtZSAnJXMnIiwgdGhpcywgZ2V0cGlkKCksIHBpZCwgbmFtZS51dGY4KCkuZGF0
YSgpKTsKICAgICAKLSAgICBtX2Fzc2VydGlvbiA9IGFkb3B0TlMoW1tCS1NQcm9jZXNzQXNzZXJ0
aW9uIGFsbG9jXSBpbml0V2l0aFBJRDpwaWQgZmxhZ3M6ZmxhZ3NGb3JTdGF0ZShhc3NlcnRpb25T
dGF0ZSkgcmVhc29uOnJlYXNvbkZvclN0YXRlKGFzc2VydGlvblN0YXRlKSBuYW1lOihOU1N0cmlu
ZyAqKW5hbWUgd2l0aEhhbmRsZXI6aGFuZGxlcl0pOworICAgIG1fYXNzZXJ0aW9uID0gYWRvcHRO
UyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElEOnBpZCBmbGFnczpmbGFn
c0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVh
c29uKGFzc2VydGlvblJlYXNvbikgbmFtZTooTlNTdHJpbmcgKiluYW1lIHdpdGhIYW5kbGVyOmhh
bmRsZXJdKTsKICAgICBtX2Fzc2VydGlvbi5nZXQoKS5pbnZhbGlkYXRpb25IYW5kbGVyID0gXigp
IHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsK
ICAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBQcm9jZXNz
QXNzZXJ0aW9uKCkgUHJvY2VzcyBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0aCBQSUQgJWQgd2Fz
IGludmFsaWRhdGVkIiwgdGhpcywgcGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
S2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0OGM2ZmI2ZmE3NmM1ODQzOWIxOGNkM2U0ZWZh
YTg0NTczZTU1NzUuLmU1MzBiMzhjYWY3YjJkMWVkOTIxYzk0NzdlM2I3N2QxODk2MzFkMjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTU2MSw2ICsxNTYxLDggQEAKIAkJQ0QwQzY4MzEyMDFGRDEwMTAwQTU5NDA5IC8qIFdLRnVsbFNj
cmVlblZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDBDNjgyRjIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxsU2NyZWVuVmlld0Nv
bnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBFIC8qIFdlYkRpYWdu
b3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xvZ2dp
bmdDbGllbnQuaCAqLzsgfTsKIAkJQ0QxOUQyRUEyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3Jl
ZW5Ub3VjaFNlY2hldXJpc3RpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQ0QxOUQyRTgyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNl
Y2hldXJpc3RpYy5oICovOyB9OworCQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDI4NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9i
c2VydmVyLmggKi87IH07CisJCUNEMjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLm1tICovOyB9OwogCQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
ICovOyB9OwogCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0Q0OTFCMEUxRTczMkU0RDAw
MDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBDMUU3MzJFNEQwMDAwOTA2
NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07CkBAIC00NDE3LDYg
KzQ0MTksOCBAQAogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlhZ25vc3RpY0xv
Z2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRGlhZ25v
c3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0QxOUQy
RTgyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IG5hbWUgPSBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuaDsgcGF0aCA9IGlvcy9mdWxs
c2NyZWVuL0Z1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDE5RDJFOTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2Vj
aGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJp
c3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9GdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0
aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDI4NjVFQzIyNTU1NjIwMDA2
MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nl
c3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDI4
NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0OTFCMEExRTczMkQxMjAwMDA5MDY2
IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NjMxMyw2ICs2MzE3LDggQEAKIAkJCQlDNTVGOTE2QzFDNTk1RTQ0MDAyOUU5MkQgLyogRGF0YURl
dGVjdGlvblJlc3VsdC5oICovLAogCQkJCUM1NUY5MTZEMUM1OTVFNDQwMDI5RTkyRCAvKiBEYXRh
RGV0ZWN0aW9uUmVzdWx0Lm1tICovLAogCQkJCTJEMTA4NzYyMUQyQzY0MUIwMEI4NUY4MiAvKiBM
b2FkUGFyYW1ldGVyc0NvY29hLm1tICovLAorCQkJCUNEMjg2NUVDMjI1NTU2MjAwMDYwNkFDNyAv
KiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCAqLywKKwkJCQlDRDI4NjVFRDIyNTU1NjIwMDA2
MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovLAogCQkJCUNENEI0RDlBMUU3
NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAgKi8sCiAJCQkJQ0Q0
QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9yYWdlLmggKi8sCiAJ
CQkJMUFCMUY3OEUxRDFCMzRBNjAwN0M5QkQxIC8qIFdlYkNvcmVBcmd1bWVudENvZGVyc0NvY29h
Lm1tICovLApAQCAtOTM5Nyw2ICs5NDAzLDcgQEAKIAkJCQlFMUNDMUI5MDEyRDdFQURGMDA2MjU4
MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2NTE4RkY1OEY1MDAx
REIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxQTdDNTgx
MTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0QyODY1RUUyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8qIFByb2Nlc3NUZXJt
aW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUxOTEwQjlEMTAwMDA0
QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTgzMDQ4QUU2MUFD
QTQ1REMwMDgyQzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywK
QEAgLTEwOTcyLDYgKzEwOTc5LDcgQEAKIAkJCQlCQzgyODQ0RDE2QjUwODFDMDBBMjc4RkUgLyog
UGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDkxMzQ0RDIx
MkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDU0
QzMxQjIxMkY0REE2MDA0OUMxNzQgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBpbiBTb3VyY2VzICov
LAorCQkJCUNEMjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1MTdBMjAgLyogUmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJCQkwRkYyNEEyRDE4
NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VS
ZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2RTlFMDAyNUE4OEQg
LyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA1NDBiZWI2NTM4NjMwYjUwODBjNGIxOTI2Y2Rj
YzM3YmNhNDNkNWViLi43MTU5NzY2ZTZkYzgzZjVkYTM5OWYxNGIxMWZhNDFjNjRiMDAyZjdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0xNDUwLDYgKzE0NTAs
NyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJtaXNzaW9ucygpCiB2
b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxkQWNrbm93bGVkZ2VX
aGVuUmVhZHlUb1N1c3BlbmQgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQpCiB7
CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gc3VzcGVuc2lvblNjb3BlKG1faXNTdXNwZW5kaW5nLCB0
cnVlKTsKKyAgICBtX3Byb2Nlc3NJc1N1c3BlbmRlZCA9IHRydWU7CiAKICNpZiBFTkFCTEUoVklE
RU8pCiAgICAgc3VzcGVuZEFsbE1lZGlhQnVmZmVyaW5nKCk7CkBAIC0xNTExLDYgKzE1MTIsOSBA
QCB2b2lkIFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKQogdm9pZCBXZWJQcm9jZXNzOjpj
YW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKIHsKICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVu
c2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVuZCgpIiwgdGhpcyk7
CisKKyAgICBtX3Byb2Nlc3NJc1N1c3BlbmRlZCA9IGZhbHNlOworCiAgICAgdW5mcmVlemVBbGxM
YXllclRyZWVzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMTU4NCw2ICsxNTg4
LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKIHsKICAgICBSRUxFQVNF
X0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc0RpZFJlc3Vt
ZSgpIiwgdGhpcyk7CiAKKyAgICBtX3Byb2Nlc3NJc1N1c3BlbmRlZCA9IGZhbHNlOworCiAgICAg
Y2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKCk7CiAgICAgdW5mcmVlemVBbGxMYXllclRyZWVz
KCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAppbmRleCBlZTc4MWEw
YmJiNWY4NjQzMjkxNWRlOTBhN2FkMzllMTAwZGNmMTA2Li5jNWQ3MzFjOTY4NzdhNmM1ZjIzZDAw
OTMyY2JlMzdjMDE4MmIzZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmgK
QEAgLTU3LDYgKzU3LDEwIEBACiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmlnaHQuaD4KICNlbmRp
ZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJQcm9jZXNzVGFza1N0YXRl
T2JzZXJ2ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE9iamVjdDsKIH0K
QEAgLTExMiw3ICsxMTYsMTIgQEAgY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyOwogc3Ry
dWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzOwogCi1j
bGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MgeworY2xhc3MgV2ViUHJv
Y2VzcworICAgIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgICwgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpDbGllbnQKKyNlbmRpZgorewog
cHVibGljOgogICAgIHN0YXRpYyBXZWJQcm9jZXNzJiBzaW5nbGV0b24oKTsKICAgICBzdGF0aWMg
Y29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5cGU6OldlYkNvbnRl
bnQ7CkBAIC00MjUsNiArNDM0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKKyAgICB2b2lkIHByb2Nlc3NUYXNrU3RhdGVEaWRDaGFuZ2UoUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyOjpUYXNrU3RhdGUpIGZpbmFsOwogICAgIGJvb2wgc2hvdWxkRnJlZXpl
T25TdXNwZW5zaW9uKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVGcmVlemVyU3RhdHVzKCk7CiAj
ZW5kaWYKQEAgLTQ5MCw2ICs1MDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9oYXNSaWNoQ29u
dGVudFNlcnZpY2VzIHsgZmFsc2UgfTsKICNlbmRpZgogCisgICAgYm9vbCBtX3Byb2Nlc3NJc1N1
c3BlbmRlZCB7IGZhbHNlIH07CisKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBtX3BhZ2VzSW5XaW5k
b3dzOwogICAgIFdlYkNvcmU6OlRpbWVyIG1fbm9uVmlzaWJsZVByb2Nlc3NDbGVhbnVwVGltZXI7
CiAKQEAgLTQ5Nyw2ICs1MDksNyBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlM
WSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1FMaXRlRGF0YWJhc2VUcmFja2VyPiBtX3dlYlNR
TGl0ZURhdGFiYXNlVHJhY2tlcjsKKyAgICBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIgbV90YXNr
U3RhdGVPYnNlcnZlciB7ICp0aGlzIH07CiAjZW5kaWYKIAogICAgIGVudW0gUGFnZU1hcmtpbmdM
YXllcnNBc1ZvbGF0aWxlQ291bnRlclR5cGUgeyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMjRhYzVlMGFiMjlhYjM5NWVk
YmM2MTA4NDJjNWExZTgyNTFmMjVhYi4uNGE1ZjY4YTI0NDY5MmQ2ZGVlZTFiMTI0NmM2N2M0YjYz
ZDE4YTJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJMb2dJbml0aWFsaXphdGlv
bi5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCisj
aW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94RXh0ZW5zaW9uLmgi
CiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgiCiAjaW1wb3J0ICJX
S0FQSUNhc3QuaCIKQEAgLTI4MSw2ICsyODIsMzEgQEAgdm9pZCBXZWJQcm9jZXNzOjp1cGRhdGVQ
cm9jZXNzTmFtZSgpCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogfQogCisjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKK3ZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0ZURpZENoYW5nZShQ
cm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSB0YXNrU3RhdGUpCit7CisgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6OnByb2Nlc3NUYXNr
U3RhdGVEaWRDaGFuZ2UoKSAtIHRhc2tTdGF0ZSglZCkiLCB0aGlzLCB0YXNrU3RhdGUpOworICAg
IGlmICh0YXNrU3RhdGUgPT0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpOb25lKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAodGFza1N0YXRlID09IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZl
cjo6U3VzcGVuZGVkKSB7CisgICAgICAgIGlmIChtX3Byb2Nlc3NJc1N1c3BlbmRlZCkKKyAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwg
IiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0ZUNoYW5nZWQoKSAtIHVuZXhwZWN0ZWRs
eSBlbnRlcmVkIFN1c3BlbmRlZCBzdGF0ZSIsIHRoaXMpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgaWYgKCFtX3Byb2Nlc3NJc1N1c3BlbmRlZCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gV2Ugd2VyZSBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb24gdW5leHBlY3RlZGx5LiBOb3Rp
ZnkgdGhlIFdlYlByb2Nlc3NQcm94eSwgYnV0IHRha2UgYSBwcm9jZXNzIGFzc2VydGlvbiBvbiBv
dXIgcGFyZW50IFBJRAorICAgIC8vIHRvIGVuc3VyZSB0aGF0IGl0IHRvbyBpcyBhd2FrZW5lZC4K
KyAgICBhdXRvIHVpUHJvY2Vzc0Fzc2VydGlvbiA9IHN0ZDo6bWFrZV91bmlxdWU8UHJvY2Vzc0Fz
c2VydGlvbj4ocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+cmVtb3RlUHJvY2Vzc0lEKCksICJV
bmV4cGVjdGVkbHkgcmVzdW1lZCIsIEFzc2VydGlvblN0YXRlOjpCYWNrZ3JvdW5kLCBBc3NlcnRp
b25SZWFzb246OkZpbmlzaFRhc2spOworICAgIHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQcm9jZXNzV2FzVW5l
eHBlY3RlZGx5VW5zdXNwZW5kZWQoKSwgW3VpUHJvY2Vzc0Fzc2VydGlvbiA9IFdURk1vdmUodWlQ
cm9jZXNzQXNzZXJ0aW9uKV0geyB9KTsKK30KKyNlbmRpZgorCiBzdGF0aWMgdm9pZCByZWdpc3Rl
cldpdGhBY2Nlc3NpYmlsaXR5KCkKIHsKICNpZiBVU0UoQVBQS0lUKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367042</attachid>
            <date>2019-04-09 09:31:06 -0700</date>
            <delta_ts>2019-04-09 12:37:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-196659-20190409093105.patch</filename>
            <type>text/plain</type>
            <size>31859</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0MDMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJlMTdiZWI3YTlhOTcwYzI5
NmY5ZWZlYzcwNGY4OGUxNjQxYzVjNmYuLmViYjM1MTA1MDIxOWQ5MTlkZGY0MDAyZTc3NzQ5NWQ2
ZWUzNjY2OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTktMDQtMDUgIEplciBOb2Js
ZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBBd2FrZW4gVUlQcm9j
ZXNzIGlmIFdlYkNvbnRlbnQgcHJvY2VzcyBpcyBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb25zIHVu
ZXhwZWN0ZWRseS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjY1OQorCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAg
ICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6
c2VuZFdpdGhBc3luY1JlcGx5KToKKyAgICAgICAgKiBQbGF0Zm9ybS9zcGkvaW9zL0Fzc2VydGlv
blNlcnZpY2VzU1BJLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXI6OmNsaWVudCk6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
dGFza1N0YXRlIGNvbnN0KToKKyAgICAgICAgKiBTaGFyZWQvQ29jb2EvUHJvY2Vzc1Rhc2tTdGF0
ZU9ic2VydmVyLm1tOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2
ZXJEZWxlZ2F0ZSBwcm9jZXNzOnRhc2tTdGF0ZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktp
dDo6dG9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJUYXNrU3RhdGUpOgorICAgICAgICAoV2ViS2l0
OjpQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3Rh
dGVPYnNlcnZlcik6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6
c2V0VGFza1N0YXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5
Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc1dhc1Vu
ZXhwZWN0ZWRseVVuc3VzcGVuZGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUHJvY2Vzc0Fzc2Vy
dGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6UHJvY2Vzc1Rocm90dGxlcjo6dXBkYXRlQXNzZXJ0aW9uKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxlci5oOgorICAgICAgICAoV2ViS2l0OjpQcm9jZXNz
VGhyb3R0bGVyOjpzaG91bGRCZVJ1bm5hYmxlIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1Byb2Nlc3NBc3NlcnRpb25JT1Mu
bW06CisgICAgICAgIChXZWJLaXQ6OnJlYXNvbkZvclN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
dG9CS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uKToKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0Fz
c2VydGlvbjo6UHJvY2Vzc0Fzc2VydGlvbik6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6YWN0dWFsUHJlcGFyZVRvU3VzcGVuZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmNhbmNlbFByZXBhcmVUb1N1c3BlbmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKToKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nl
c3NDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0
ZURpZENoYW5nZSk6CisKIDIwMTktMDQtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSRUdSRVNTSU9OKDIzNjQ2MykgRG93bmxvYWRNYW5h
Z2VyIGNhbiBjYWxsIGEgbnVsbCBDb21wbGV0aW9uSGFuZGxlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvQ29ubmVjdGlvbi5oCmluZGV4IGYzNzM5YjRhZWFiOTliNGYzOTI1ZTEyNzViYjg1OTFi
MTU3MmU3MTYuLjM2YmQ5MTJlMGJjZTRhYThjYjE4YWQ5MDFiYmIzZmU5MGE3M2M4MDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmgKQEAgLTE3Nyw3ICsxNzcsNyBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIHBvc3RDb25uZWN0aW9uRGlkQ2xvc2VPbkNvbm5lY3Rpb25Xb3Jr
UXVldWUoKTsKIAotICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIEFyZ3M+IHZv
aWQgc2VuZFdpdGhBc3luY1JlcGx5KFQmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEFyZ3MuLi4pPiYmIGFyZ3MsIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQgPSAwKTsKKyAgICB0ZW1w
bGF0ZTx0eXBlbmFtZSBULCB0eXBlbmFtZSBDPiB2b2lkIHNlbmRXaXRoQXN5bmNSZXBseShUJiYg
bWVzc2FnZSwgQyYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5hdGlvbklEID0g
MCk7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gYm9vbCBzZW5kKFQmJiBtZXNzYWdlLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklELCBPcHRpb25TZXQ8U2VuZE9wdGlvbj4gc2VuZE9wdGlvbnMgPSB7
IH0pOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZFdpdGhSZXBseShUJiYgbWVz
c2FnZSwgdWludDY0X3QgZGVzdGluYXRpb25JRCwgRnVuY3Rpb25EaXNwYXRjaGVyJiByZXBseURp
c3BhdGNoZXIsIEZ1bmN0aW9uPHZvaWQoT3B0aW9uYWw8dHlwZW5hbWUgQ29kaW5nVHlwZTx0eXBl
bmFtZSBUOjpSZXBseT46OlR5cGU+KT4mJiByZXBseUhhbmRsZXIpOwogICAgIHRlbXBsYXRlPHR5
cGVuYW1lIFQ+IGJvb2wgc2VuZFN5bmMoVCYmIG1lc3NhZ2UsIHR5cGVuYW1lIFQ6OlJlcGx5JiYg
cmVwbHksIHVpbnQ2NF90IGRlc3RpbmF0aW9uSUQsIFNlY29uZHMgdGltZW91dCA9IFNlY29uZHM6
OmluZmluaXR5KCksIE9wdGlvblNldDxTZW5kU3luY09wdGlvbj4gc2VuZFN5bmNPcHRpb25zID0g
eyB9KTsKQEAgLTQxNiw4ICs0MTYsOCBAQCB1aW50NjRfdCBuZXh0QXN5bmNSZXBseUhhbmRsZXJJ
RCgpOwogdm9pZCBhZGRBc3luY1JlcGx5SGFuZGxlcihDb25uZWN0aW9uJiwgdWludDY0X3QsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRGVjb2RlciopPiYmKTsKIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRGVjb2RlciopPiB0YWtlQXN5bmNSZXBseUhhbmRsZXIoQ29ubmVjdGlvbiYsIHVpbnQ2NF90
KTsKIAotdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUuLi4gQXJncz4KLXZvaWQgQ29ubmVj
dGlvbjo6c2VuZFdpdGhBc3luY1JlcGx5KFQmJiBtZXNzYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEFyZ3MuLi4pPiYmIGNvbXBsZXRpb25IYW5kbGVyLCB1aW50NjRfdCBkZXN0aW5hdGlvbklE
KQordGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgQz4KK3ZvaWQgQ29ubmVjdGlvbjo6c2Vu
ZFdpdGhBc3luY1JlcGx5KFQmJiBtZXNzYWdlLCBDJiYgY29tcGxldGlvbkhhbmRsZXIsIHVpbnQ2
NF90IGRlc3RpbmF0aW9uSUQpCiB7CiAgICAgQ09NUElMRV9BU1NFUlQoIVQ6OmlzU3luYywgQXN5
bmNNZXNzYWdlRXhwZWN0ZWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9pb3MvQXNzZXJ0aW9uU2VydmljZXNTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0v
c3BpL2lvcy9Bc3NlcnRpb25TZXJ2aWNlc1NQSS5oCmluZGV4IGZhZTJhMTEyOTI4OGIzMzQ5OGZl
NjVmN2MwNTJlM2YxMjNhMmVjNDEuLjZjZTZmMmQ5NWNlMzZjNzk5NTAwZTk3NDA4MzUwMzM2NTlk
NzRkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Bc3NlcnRp
b25TZXJ2aWNlc1NQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9Bc3Nl
cnRpb25TZXJ2aWNlc1NQSS5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgVVNFKEFQUExFX0lOVEVS
TkFMX1NESykKIAogI2ltcG9ydCA8QXNzZXJ0aW9uU2VydmljZXMvQktTQXBwbGljYXRpb25TdGF0
ZU1vbml0b3IuaD4KKyNpbXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU1Byb2Nlc3MuaD4KICNp
bXBvcnQgPEFzc2VydGlvblNlcnZpY2VzL0JLU1Byb2Nlc3NBc3NlcnRpb24uaD4KIAogI2Vsc2UK
QEAgLTY4LDYgKzY5LDcgQEAgZW51bSB7CiB0eXBlZGVmIHVpbnQzMl90IEJLU1Byb2Nlc3NBc3Nl
cnRpb25GbGFnczsKIAogZW51bSB7CisgICAgQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlz
aFRhc2sgPSA0LAogICAgIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb25FeHRlbnNpb24gPSAxMywK
ICAgICBCS1NQcm9jZXNzQXNzZXJ0aW9uUmVhc29uRmluaXNoVGFza1VuYm91bmRlZCA9IDEwMDA0
LAogfTsKQEAgLTg3LDQgKzg5LDI3IEBAIHR5cGVkZWYgdm9pZCAoXkJLU1Byb2Nlc3NBc3NlcnRp
b25BY3F1aXNpdGlvbkhhbmRsZXIpKEJPT0wgYWNxdWlyZWQpOwogLSAodm9pZClpbnZhbGlkYXRl
OwogQGVuZAogCitlbnVtIHsKKyAgICBCS1NQcm9jZXNzVGFza1N0YXRlTm9uZSwKKyAgICBCS1NQ
cm9jZXNzVGFza1N0YXRlUnVubmluZywKKyAgICBCS1NQcm9jZXNzVGFza1N0YXRlU3VzcGVuZGVk
LAorfTsKK3R5cGVkZWYgdWludDMyX3QgQktTUHJvY2Vzc1Rhc2tTdGF0ZTsKKworQGNsYXNzIEJL
U1Byb2Nlc3M7CisKK0Bwcm90b2NvbCBCS1NQcm9jZXNzRGVsZWdhdGUgPE5TT2JqZWN0PgorQG9w
dGlvbmFsCistICh2b2lkKXByb2Nlc3M6KEJLU1Byb2Nlc3MgKilwcm9jZXNzIHRhc2tTdGF0ZURp
ZENoYW5nZTooQktTUHJvY2Vzc1Rhc2tTdGF0ZSluZXdTdGF0ZTsKK0BlbmQKKworQGludGVyZmFj
ZSBCS1NQcm9jZXNzIDogTlNPYmplY3QKK0BlbmQKKworQGludGVyZmFjZSBCS1NQcm9jZXNzICgp
CisrIChCS1NQcm9jZXNzICopY3VycmVudFByb2Nlc3M7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZHdyaXRlLCB3ZWFrKSBpZCA8QktTUHJvY2Vzc0RlbGVnYXRlPiBkZWxlZ2F0ZTsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgYXNzaWduKSBCS1NQcm9jZXNzVGFza1N0YXRlIHRh
c2tTdGF0ZTsKK0BlbmQKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9Db2NvYS9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmOTYwOTQ3NTE3
YzI1ODU5OWE2ZThkMTBjYzIzMTgwNDllMWFiNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaApAQCAtMCwwICsx
LDczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorCisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIFdLUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyRGVsZWdhdGU7CitPQkpDX0NMQVNTIEJLU1Byb2Nlc3M7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIgeworcHVi
bGljOgorICAgIGNsYXNzIENsaWVudDsKKworICAgIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigp
OworICAgIGV4cGxpY2l0IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcihDbGllbnQmKTsKKyAgICB+
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyKCk7CisgICAgCisgICAgZW51bSBUYXNrU3RhdGUgewor
ICAgICAgICBOb25lLAorICAgICAgICBSdW5uaW5nLAorICAgICAgICBTdXNwZW5kZWQsCisgICAg
fTsKKworICAgIGNsYXNzIENsaWVudCB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5D
bGllbnQoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzVGFza1N0YXRl
RGlkQ2hhbmdlKFRhc2tTdGF0ZSkgPSAwOworICAgIH07CisKKyAgICB2b2lkIHNldENsaWVudChD
bGllbnQmIGNsaWVudCkgeyBtX2NsaWVudCA9ICZjbGllbnQ7IH0KKyAgICBDbGllbnQqIGNsaWVu
dCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CisKKyAgICBUYXNrU3RhdGUgdGFza1N0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV90YXNrU3RhdGU7IH0KKworcHJpdmF0ZToKKyAgICB2b2lkIHNldFRhc2tT
dGF0ZShUYXNrU3RhdGUpOworCisgICAgQ2xpZW50KiBtX2NsaWVudCB7IG51bGxwdHIgfTsKKyAg
ICBUYXNrU3RhdGUgbV90YXNrU3RhdGUgeyBOb25lIH07CisgICAgUmV0YWluUHRyPEJLU1Byb2Nl
c3M+IG1fcHJvY2VzczsKKyAgICBSZXRhaW5QdHI8V0tQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXJE
ZWxlZ2F0ZT4gbV9kZWxlZ2F0ZTsKK307CisKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19G
QU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9Qcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzdjNTJiYTA5ZmNhYjk5OWU2OGZhMDI4NGQ5
ZDdjOTM4YTExNGY3ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0Nv
Y29hL1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5tbQpAQCAtMCwwICsxLDEwMCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJBc3NlcnRpb25T
ZXJ2aWNlc1NQSS5oIgorI2ltcG9ydCAiTG9nZ2luZy5oIgorI2ltcG9ydCA8d3RmL0Z1bmN0aW9u
Lmg+CisjaW1wb3J0IDx3dGYvU29mdExpbmtpbmcuaD4KKworU09GVF9MSU5LX1BSSVZBVEVfRlJB
TUVXT1JLKEFzc2VydGlvblNlcnZpY2VzKTsKK1NPRlRfTElOS19DTEFTUyhBc3NlcnRpb25TZXJ2
aWNlcywgQktTUHJvY2Vzcyk7CisKK3R5cGVkZWYgdm9pZCheVGFza1N0YXRlQ2hhbmdlZENhbGxi
YWNrVHlwZSkoQktTUHJvY2Vzc1Rhc2tTdGF0ZSk7CisKK0BpbnRlcmZhY2UgV0tQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXJEZWxlZ2F0ZSA6IE5TT2JqZWN0PEJLU1Byb2Nlc3NEZWxlZ2F0ZT4KK0Bw
cm9wZXJ0eSAoY29weSkgVGFza1N0YXRlQ2hhbmdlZENhbGxiYWNrVHlwZSB0YXNrU3RhdGVDaGFu
Z2VkQ2FsbGJhY2s7CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBXS1Byb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlckRlbGVnYXRlCistICh2b2lkKXByb2Nlc3M6KEJLU1Byb2Nlc3MgKilwcm9jZXNzIHRh
c2tTdGF0ZURpZENoYW5nZTooQktTUHJvY2Vzc1Rhc2tTdGF0ZSluZXdTdGF0ZQoreworICAgIFJF
TEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLVtXS1Byb2Nlc3NUYXNrU3RhdGVPYnNl
cnZlckRlbGVnYXRlIHByb2Nlc3M6dGFza1N0YXRlRGlkQ2hhbmdlOl0sIHByb2Nlc3MoJXApLCBu
ZXdTdGF0ZSglZCkiLCBzZWxmLCBwcm9jZXNzLCAoaW50KW5ld1N0YXRlKTsKKworICAgIGlmIChz
ZWxmLnRhc2tTdGF0ZUNoYW5nZWRDYWxsYmFjaykKKyAgICAgICAgc2VsZi50YXNrU3RhdGVDaGFu
Z2VkQ2FsbGJhY2sobmV3U3RhdGUpOworfQorQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RhdGljIFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6VGFza1N0YXRlIHRvUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyVGFza1N0YXRlKEJLU1Byb2Nlc3NUYXNrU3RhdGUgc3RhdGUpCit7CisgICAg
c3RhdGljX2Fzc2VydChzdGF0aWNfY2FzdDx1aW50MzJfdD4oQktTUHJvY2Vzc1Rhc2tTdGF0ZU5v
bmUpID09IHN0YXRpY19jYXN0PHVpbnQzMl90PihQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6Ok5v
bmUpLCAiQktTUHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRh
c2tTdGF0ZSIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8dWludDMyX3Q+KEJLU1By
b2Nlc3NUYXNrU3RhdGVSdW5uaW5nKSA9PSBzdGF0aWNfY2FzdDx1aW50MzJfdD4oUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyOjpSdW5uaW5nKSwgIkJLU1Byb2Nlc3NUYXNrU3RhdGUgIT0gUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyOjpUYXNrU3RhdGUiKTsKKyAgICBzdGF0aWNfYXNzZXJ0KHN0YXRp
Y19jYXN0PHVpbnQzMl90PihCS1NQcm9jZXNzVGFza1N0YXRlU3VzcGVuZGVkKSA9PSBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4oUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpTdXNwZW5kZWQpLCAiQktT
UHJvY2Vzc1Rhc2tTdGF0ZSAhPSBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSIp
OworICAgIHJldHVybiBzdGF0aWNfY2FzdDxQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tT
dGF0ZT4oc3RhdGUpOworfQorCitQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlcigpCisgICAgOiBtX3Byb2Nlc3MoW2dldEJLU1Byb2Nlc3NDbGFzcygpIGN1
cnJlbnRQcm9jZXNzXSkKKyAgICAsIG1fZGVsZWdhdGUoYWRvcHROUyhbW1dLUHJvY2Vzc1Rhc2tT
dGF0ZU9ic2VydmVyRGVsZWdhdGUgYWxsb2NdIGluaXRdKSkKK3sKKyAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpQcm9jZXNz
VGFza1N0YXRlT2JzZXJ2ZXIoKSwgbV9wcm9jZXNzKCVwKSIsIHRoaXMsIG1fcHJvY2Vzcy5nZXQo
KSk7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS50YXNrU3RhdGVDaGFuZ2VkQ2FsbGJhY2sgPSBbdGhp
c10gKEJLU1Byb2Nlc3NUYXNrU3RhdGUgc3RhdGUpIHsKKyAgICAgICAgc2V0VGFza1N0YXRlKHRv
UHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyVGFza1N0YXRlKHN0YXRlKSk7CisgICAgfTsKKyAgICBt
X3Byb2Nlc3MuZ2V0KCkuZGVsZWdhdGUgPSBtX2RlbGVnYXRlLmdldCgpOworfQorCitQcm9jZXNz
VGFza1N0YXRlT2JzZXJ2ZXI6OlByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcihDbGllbnQmIGNsaWVu
dCkKKyAgICA6IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcigpCit7CisgICAgc2V0Q2xpZW50KGNs
aWVudCk7Cit9CisKK1Byb2Nlc3NUYXNrU3RhdGVPYnNlcnZlcjo6flByb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlcigpCit7CisgICAgbV9kZWxlZ2F0ZS5nZXQoKS50YXNrU3RhdGVDaGFuZ2VkQ2FsbGJh
Y2sgPSBuaWw7Cit9CisKK3ZvaWQgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpzZXRUYXNrU3Rh
dGUoVGFza1N0YXRlIHN0YXRlKQoreworICAgIGlmIChtX3Rhc2tTdGF0ZSA9PSBzdGF0ZSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV90YXNrU3RhdGUgPSBzdGF0ZTsKKyAgICBpZiAobV9jbGll
bnQpCisgICAgICAgIG1fY2xpZW50LT5wcm9jZXNzVGFza1N0YXRlRGlkQ2hhbmdlKHN0YXRlKTsK
K30KKworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKKwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQppbmRl
eCBjYTY5NTViMzUwMGM3ZGUyYmU3MmE0ZGM3NGYyNWMzY2Y2NTM5ZjlmLi43YmFiZGViNjAzMDNm
YTczMjMxOTQ2ZGY2MTQ3ZWFhMzVkM2E4NmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpAQCAtNDEsNiArNDEsOCBA
QAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorc3RhdGljIGNvbnN0IFNlY29uZHMgdW5leHBlY3Rl
ZEFjdGl2aXR5RHVyYXRpb24gPSAxMF9zOworCiBjb25zdCBIYXNoU2V0PFN0cmluZz4mIFdlYlBy
b2Nlc3NQcm94eTo6cGxhdGZvcm1QYXRoc1dpdGhBc3N1bWVkUmVhZEFjY2VzcygpCiB7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hTZXQ8U3RyaW5nPj4gcGxhdGZvcm1QYXRoc1dpdGhB
c3N1bWVkUmVhZEFjY2VzcyhzdGQ6OmluaXRpYWxpemVyX2xpc3Q8U3RyaW5nPiB7CkBAIC0xODcs
NCArMTg5LDI1IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpyZWxlYXNlSGlnaFBlcmZvcm1hbmNl
R1BVKCkKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgV2ViUHJv
Y2Vzc1Byb3h5Ojpwcm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb24pCit7CisgICAgaWYgKG1fdGhyb3R0bGVyLnNob3Vs
ZEJlUnVubmFibGUoKSkgeworICAgICAgICAvLyBUaGUgcHJvY2VzcyBiZWNvbWluZyB1bnN1c3Bl
bmRlZCB3YXMgbm90IHVuZXhwZWN0ZWQ7IGl0IGxpa2VseSB3YXMgbm90aWZpZWQgb2YgaXRzIHJ1
bm5pbmcgc3RhdGUKKyAgICAgICAgLy8gYmVmb3JlIHJlY2VpdmluZyBhIHByb2NzZXNzRGlkUmVz
dW1lKCkgbWVzc2FnZSBmcm9tIHRoZSBVSVByb2Nlc3MuCisgICAgICAgIGNvbXBsZXRpb24oKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFRoZSBXZWJQcm9jZXNzIHdhcyBhd2Fr
ZW5lZCBieSBzb21ldGhpbmcgb3RoZXIgdGhhbiB0aGUgVUlQcm9jZXNzLiBUYWtlIG91dCBhbiBh
c3NlcnRpb24gZm9yIGEKKyAgICAvLyBsaW1pdGVkIGR1cmF0aW9uIHRvIGFsbG93IHdoYXRldmVy
IHRhc2sgbmVlZHMgdG8gYmUgYWNjb21wbGlzaGVkIHRpbWUgdG8gY29tcGxldGUuCisgICAgUkVM
RUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vz
c1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVkKCkiLCB0aGlzKTsKKyAgICBhdXRvIGJhY2tncm91
bmRBY3Rpdml0eVRpbWVvdXRIYW5kbGVyID0gW2FjdGl2aXR5VG9rZW4gPSBtX3Rocm90dGxlci5i
YWNrZ3JvdW5kQWN0aXZpdHlUb2tlbigpLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKHRoaXMpXSB7
CisgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAiJXAgLSBXZWJQcm9jZXNz
UHJveHk6OnByb2Nlc3NXYXNVbmV4cGVjdGVkbHlVbnN1c3BlbmRlZCgpIC0gbGFtYmRhLCBiYWNr
Z3JvdW5kIGFjdGl2aXR5IHRpbWVkIG91dCIsIHdlYWtUaGlzLmdldCgpKTsKKyAgICB9OworICAg
IG1fdW5leHBlY3RlZEFjdGl2aXR5VGltZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OkRl
ZmVycmFibGVPbmVTaG90VGltZXI+KFdURk1vdmUoYmFja2dyb3VuZEFjdGl2aXR5VGltZW91dEhh
bmRsZXIpLCB1bmV4cGVjdGVkQWN0aXZpdHlEdXJhdGlvbik7CisgICAgY29tcGxldGlvbigpOwor
fQorI2VuZGlmCisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nl
c3NBc3NlcnRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlv
bi5jcHAKaW5kZXggZTMyNWQxMGNkOWY0NWNlYThiMzJkZGMxMmEzYjE4ZGRkMjU4YmY5Ny4uZWRi
MDZkM2IyMDliYjI2ZGRiYzlmOTM0ZjQwNjVjZTVjMDZlOTVkMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5jcHAKQEAgLTM1LDYgKzM1LDExIEBAIFByb2Nl
c3NBc3NlcnRpb246OlByb2Nlc3NBc3NlcnRpb24oUHJvY2Vzc0lELCBjb25zdCBTdHJpbmcmLCBB
c3NlcnRpb25TdGF0ZSBhc3NlCiB7CiB9CiAKK1Byb2Nlc3NBc3NlcnRpb246OlByb2Nlc3NBc3Nl
cnRpb24ocGlkX3QgcGlkLCBjb25zdCBTdHJpbmcmIG5hbWUsIEFzc2VydGlvblN0YXRlIGFzc2Vy
dGlvblN0YXRlLCBBc3NlcnRpb25SZWFzb24pCisgICAgOiBtX2Fzc2VydGlvblN0YXRlKGFzc2Vy
dGlvblN0YXRlKQoreworfQorCiBQcm9jZXNzQXNzZXJ0aW9uOjp+UHJvY2Vzc0Fzc2VydGlvbigp
ID0gZGVmYXVsdDsKIAogdm9pZCBQcm9jZXNzQXNzZXJ0aW9uOjpzZXRTdGF0ZShBc3NlcnRpb25T
dGF0ZSBhc3NlcnRpb25TdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1Byb2Nlc3NBc3NlcnRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NBc3Nl
cnRpb24uaAppbmRleCA0N2NjODBmOGVkZjdkYWRmOTlkOTBmNzljZTI4MTVkYjNjYzliZGY2Li5h
MDFjNzZkYjczM2I5ZWVlNmQyYmU5N2U3NjJjODBlOTRiNTgzMDExIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzQXNzZXJ0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUHJvY2Vzc0Fzc2VydGlvbi5oCkBAIC00NSw3ICs0NSwxMyBAQCBlbnVtIGNs
YXNzIEFzc2VydGlvblN0YXRlIHsKICAgICBTdXNwZW5kZWQsCiAgICAgQmFja2dyb3VuZCwKICAg
ICBVbmJvdW5kZWROZXR3b3JraW5nLAotICAgIEZvcmVncm91bmQKKyAgICBGb3JlZ3JvdW5kLAor
fTsKKworZW51bSBjbGFzcyBBc3NlcnRpb25SZWFzb24geworICAgIEV4dGVuc2lvbiwKKyAgICBG
aW5pc2hUYXNrLAorICAgIEZpbmlzaFRhc2tVbmJvdW5kZWQsCiB9OwogCiBjbGFzcyBQcm9jZXNz
QXNzZXJ0aW9uIDogcHVibGljIENhbk1ha2VXZWFrUHRyPFByb2Nlc3NBc3NlcnRpb24+IHsKQEAg
LTU4LDYgKzY0LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBQcm9jZXNzQXNzZXJ0aW9uKFBy
b2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24sIEFzc2VydGlvblN0YXRlKTsKKyAgICBQcm9j
ZXNzQXNzZXJ0aW9uKFByb2Nlc3NJRCwgY29uc3QgU3RyaW5nJiByZWFzb24sIEFzc2VydGlvblN0
YXRlLCBBc3NlcnRpb25SZWFzb24pOwogICAgIHZpcnR1YWwgflByb2Nlc3NBc3NlcnRpb24oKTsK
IAogICAgIHZvaWQgc2V0Q2xpZW50KENsaWVudCYgY2xpZW50KSB7IG1fY2xpZW50ID0gJmNsaWVu
dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90dGxl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAppbmRl
eCBiNjEyZGEwZTg4YWQ5N2U3NmU2ZjZlODc5MDBhYzVmYmFmZjAzZWZiLi4wMGE5OTE4ODYxNDg3
MzkzOGE2Y2I0YWJkOTkxNGJjODYyOTQ1Y2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Qcm9jZXNzVGhyb3R0bGVyLmNwcApAQCAtNjgsNyArNjgsNyBAQCB2b2lkIFByb2Nlc3NUaHJv
dHRsZXI6OnVwZGF0ZUFzc2VydGlvbk5vdygpCiAgICAgCiB2b2lkIFByb2Nlc3NUaHJvdHRsZXI6
OnVwZGF0ZUFzc2VydGlvbigpCiB7Ci0gICAgYm9vbCBzaG91bGRCZVJ1bm5hYmxlID0gbV9mb3Jl
Z3JvdW5kQ291bnRlci52YWx1ZSgpIHx8IG1fYmFja2dyb3VuZENvdW50ZXIudmFsdWUoKTsKKyAg
ICBib29sIHNob3VsZEJlUnVubmFibGUgPSB0aGlzLT5zaG91bGRCZVJ1bm5hYmxlKCk7CiAKICAg
ICAvLyBJZiB0aGUgcHJvY2VzcyBpcyBjdXJyZW50bHkgcnVubmFibGUgYnV0IHdpbGwgYmUgc3Vz
cGVuZGVkIHRoZW4gZmlyc3QgZ2l2ZSBpdCBhIGNoYW5jZSB0byBjb21wbGV0ZSB3aGF0IGl0IHdh
cyBkb2luZwogICAgIC8vIGFuZCBjbGVhbiB1cCAtIG1vdmUgaXQgdG8gdGhlIGJhY2tncm91bmQg
YW5kIHNlbmQgaXQgYSBtZXNzYWdlIHRvIG5vdGlmeS4gU2NoZWR1bGUgYSB0aW1lb3V0IHNvIGl0
IGNhbid0IHN0YXkgcnVubmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UHJvY2Vzc1Rocm90dGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvY2Vzc1Rocm90
dGxlci5oCmluZGV4IDA1NzZlMzg2ZDg2NjU1ZjRhNzg0ZTc3NzIxYzBmYzNiMzQ0YzNkZDUuLmZk
MTUyOWNkNDc3NWU4NjJjMGY2MjUxODhlOTEwNjUxZmEyMTI3YjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1Byb2Nlc3NUaHJvdHRsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Qcm9jZXNzVGhyb3R0bGVyLmgKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkQ29ubmVjdFRvUHJvY2VzcyhQcm9jZXNzSUQpOwogICAgIHZvaWQgcHJvY2Vz
c1JlYWR5VG9TdXNwZW5kKCk7CiAgICAgdm9pZCBkaWRDYW5jZWxQcm9jZXNzU3VzcGVuc2lvbigp
OworICAgIGJvb2wgc2hvdWxkQmVSdW5uYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9yZWdyb3Vu
ZENvdW50ZXIudmFsdWUoKSB8fCBtX2JhY2tncm91bmRDb3VudGVyLnZhbHVlKCk7IH0KIAogcHJp
dmF0ZToKICAgICBBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25TdGF0ZSgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCA2N2JjN2Y1NTRlODg5ZGM1NDQ5NTUw
YWI2NDMxNzUzNTRmZWQ4MWVjLi40MDlkNDFmMTkyYmMzNGUzODI3ZWEwMGMwNmU0YzBlOWIwZmE3
ZWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaApAQCAtNTcs
NiArNTcsNyBAQCBjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIH0KIAogbmFtZXNwYWNlIFdlYkNv
cmUgeworY2xhc3MgRGVmZXJyYWJsZU9uZVNob3RUaW1lcjsKIGNsYXNzIFJlc291cmNlUmVxdWVz
dDsKIHN0cnVjdCBQbHVnaW5JbmZvOwogc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKQEAgLTI5
Nyw2ICsyOTgsMTAgQEAgcHVibGljOgogICAgIHZvaWQgdW5ibG9ja0FjY2Vzc2liaWxpdHlTZXJ2
ZXJJZk5lZWRlZCgpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHZv
aWQgcHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVkKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHN0YXRpYyB1aW50NjRfdCBnZW5l
cmF0ZVBhZ2VJRCgpOwogICAgIFdlYlByb2Nlc3NQcm94eShXZWJQcm9jZXNzUG9vbCYsIFdlYnNp
dGVEYXRhU3RvcmUqLCBJc1ByZXdhcm1lZCk7CkBAIC00NDAsNiArNDQ1LDcgQEAgcHJpdmF0ZToK
ICAgICBGb3JlZ3JvdW5kV2ViUHJvY2Vzc1Rva2VuIG1fZm9yZWdyb3VuZFRva2VuOwogICAgIEJh
Y2tncm91bmRXZWJQcm9jZXNzVG9rZW4gbV9iYWNrZ3JvdW5kVG9rZW47CiAgICAgYm9vbCBtX2hh
c1NlbnRNZXNzYWdlVG9VbmJsb2NrQWNjZXNzaWJpbGl0eVNlcnZlciB7IGZhbHNlIH07CisgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90VGltZXI+IG1fdW5leHBl
Y3RlZEFjdGl2aXR5VGltZXI7CiAjZW5kaWYKIAogICAgIEhhc2hNYXA8U3RyaW5nLCB1aW50NjRf
dD4gbV9wYWdlVVJMUmV0YWluQ291bnRNYXA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KaW5kZXggYzQyNGMxOGU2ODM0NDQzNzVl
NDkxNjRjOWRlODk5MmY4N2JjZDdmZi4uZjNkNWU5MzFlNmRlZTkwMmE0YWM1ZTVmYzViMTBkZDQ2
MTViMTVkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtNzksNCArNzksOCBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNz
UHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAgIFN0YXJ0RGlzcGxheUxpbmsodW5zaWduZWQgb2Jz
ZXJ2ZXJJRCwgdWludDMyX3QgZGlzcGxheUlEKQogICAgIFN0b3BEaXNwbGF5TGluayh1bnNpZ25l
ZCBvYnNlcnZlcklELCB1aW50MzJfdCBkaXNwbGF5SUQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgUHJvY2Vzc1dhc1VuZXhwZWN0ZWRseVVuc3VzcGVuZGVkKCkgLT4g
KCkgQXN5bmMKKyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1Byb2Nlc3NBc3NlcnRpb25JT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
UHJvY2Vzc0Fzc2VydGlvbklPUy5tbQppbmRleCA4YzRkZTNhMzBlZjJiNTczYzM3YzViY2E2Nzk3
NzFiOWU2ZTMwZTdmLi5iOGU2Y2ZkNjdiYjYxYjVmOTE0NTA5NmQ3NGMzNWE2OTE3MmQ1MDU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUHJvY2Vzc0Fzc2VydGlvbklP
Uy5tbQpAQCAtMTQ2LDE5ICsxNDYsMzYgQEAgc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25GbGFn
cyBmbGFnc0ZvclN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogICAgIH0KIH0K
IAotc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24gcmVhc29uRm9yU3RhdGUoQXNzZXJ0
aW9uU3RhdGUgYXNzZXJ0aW9uU3RhdGUpCitzdGF0aWMgQXNzZXJ0aW9uUmVhc29uIHJlYXNvbkZv
clN0YXRlKEFzc2VydGlvblN0YXRlIGFzc2VydGlvblN0YXRlKQogewogICAgIHN3aXRjaCAoYXNz
ZXJ0aW9uU3RhdGUpIHsKICAgICBjYXNlIEFzc2VydGlvblN0YXRlOjpVbmJvdW5kZWROZXR3b3Jr
aW5nOgotICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2tV
bmJvdW5kZWQ7CisgICAgICAgIHJldHVybiBBc3NlcnRpb25SZWFzb246OkZpbmlzaFRhc2tVbmJv
dW5kZWQ7CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6U3VzcGVuZGVkOgogICAgIGNhc2UgQXNz
ZXJ0aW9uU3RhdGU6OkJhY2tncm91bmQ6CiAgICAgY2FzZSBBc3NlcnRpb25TdGF0ZTo6Rm9yZWdy
b3VuZDoKKyAgICAgICAgcmV0dXJuIEFzc2VydGlvblJlYXNvbjo6RXh0ZW5zaW9uOworICAgIH0K
K30KKworc3RhdGljIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFzb24gdG9CS1NQcm9jZXNzQXNzZXJ0
aW9uUmVhc29uKEFzc2VydGlvblJlYXNvbiByZWFzb24pCit7CisgICAgc3dpdGNoIChyZWFzb24p
IHsKKyAgICBjYXNlIEFzc2VydGlvblJlYXNvbjo6RXh0ZW5zaW9uOgogICAgICAgICByZXR1cm4g
QktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkV4dGVuc2lvbjsKKyAgICBjYXNlIEFzc2VydGlvblJl
YXNvbjo6RmluaXNoVGFzazoKKyAgICAgICAgcmV0dXJuIEJLU1Byb2Nlc3NBc3NlcnRpb25SZWFz
b25GaW5pc2hUYXNrOworICAgIGNhc2UgQXNzZXJ0aW9uUmVhc29uOjpGaW5pc2hUYXNrVW5ib3Vu
ZGVkOgorICAgICAgICByZXR1cm4gQktTUHJvY2Vzc0Fzc2VydGlvblJlYXNvbkZpbmlzaFRhc2tV
bmJvdW5kZWQ7CiAgICAgfQogfQogCiBQcm9jZXNzQXNzZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9u
KHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRpb25TdGF0ZSBhc3NlcnRpb25T
dGF0ZSkKKyAgICA6IFByb2Nlc3NBc3NlcnRpb24ocGlkLCBuYW1lLCBhc3NlcnRpb25TdGF0ZSwg
cmVhc29uRm9yU3RhdGUoYXNzZXJ0aW9uU3RhdGUpKQoreworfQorCitQcm9jZXNzQXNzZXJ0aW9u
OjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBBc3NlcnRp
b25TdGF0ZSBhc3NlcnRpb25TdGF0ZSwgQXNzZXJ0aW9uUmVhc29uIGFzc2VydGlvblJlYXNvbikK
ICAgICA6IG1fYXNzZXJ0aW9uU3RhdGUoYXNzZXJ0aW9uU3RhdGUpCiB7CiAgICAgYXV0byB3ZWFr
VGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKTsKQEAgLTE3Myw3ICsxOTAsNyBAQCBQcm9jZXNzQXNz
ZXJ0aW9uOjpQcm9jZXNzQXNzZXJ0aW9uKHBpZF90IHBpZCwgY29uc3QgU3RyaW5nJiBuYW1lLCBB
c3NlcnRpb25TdGF0ZQogICAgIH07CiAgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24s
ICIlcCAtIFByb2Nlc3NBc3NlcnRpb24oKSBQSUQgJWQgYWNxdWlyaW5nIGFzc2VydGlvbiBmb3Ig
cHJvY2VzcyB3aXRoIFBJRCAlZCwgbmFtZSAnJXMnIiwgdGhpcywgZ2V0cGlkKCksIHBpZCwgbmFt
ZS51dGY4KCkuZGF0YSgpKTsKICAgICAKLSAgICBtX2Fzc2VydGlvbiA9IGFkb3B0TlMoW1tCS1NQ
cm9jZXNzQXNzZXJ0aW9uIGFsbG9jXSBpbml0V2l0aFBJRDpwaWQgZmxhZ3M6ZmxhZ3NGb3JTdGF0
ZShhc3NlcnRpb25TdGF0ZSkgcmVhc29uOnJlYXNvbkZvclN0YXRlKGFzc2VydGlvblN0YXRlKSBu
YW1lOihOU1N0cmluZyAqKW5hbWUgd2l0aEhhbmRsZXI6aGFuZGxlcl0pOworICAgIG1fYXNzZXJ0
aW9uID0gYWRvcHROUyhbW0JLU1Byb2Nlc3NBc3NlcnRpb24gYWxsb2NdIGluaXRXaXRoUElEOnBp
ZCBmbGFnczpmbGFnc0ZvclN0YXRlKGFzc2VydGlvblN0YXRlKSByZWFzb246dG9CS1NQcm9jZXNz
QXNzZXJ0aW9uUmVhc29uKGFzc2VydGlvblJlYXNvbikgbmFtZTooTlNTdHJpbmcgKiluYW1lIHdp
dGhIYW5kbGVyOmhhbmRsZXJdKTsKICAgICBtX2Fzc2VydGlvbi5nZXQoKS5pbnZhbGlkYXRpb25I
YW5kbGVyID0gXigpIHsKICAgICAgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5f
cXVldWUoKSwgXnsKICAgICAgICAgICAgIFJFTEVBU0VfTE9HKFByb2Nlc3NTdXNwZW5zaW9uLCAi
JXAgLSBQcm9jZXNzQXNzZXJ0aW9uKCkgUHJvY2VzcyBhc3NlcnRpb24gZm9yIHByb2Nlc3Mgd2l0
aCBQSUQgJWQgd2FzIGludmFsaWRhdGVkIiwgdGhpcywgcGlkKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDI0OGM2ZmI2ZmE3NmM1ODQz
OWIxOGNkM2U0ZWZhYTg0NTczZTU1NzUuLmU1MzBiMzhjYWY3YjJkMWVkOTIxYzk0NzdlM2I3N2Qx
ODk2MzFkMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTU2MSw2ICsxNTYxLDggQEAKIAkJQ0QwQzY4MzEyMDFGRDEwMTAwQTU5NDA5
IC8qIFdLRnVsbFNjcmVlblZpZXdDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDBDNjgyRjIwMUZEMTAxMDBBNTk0MDkgLyogV0tGdWxs
U2NyZWVuVmlld0NvbnRyb2xsZXIuaCAqLzsgfTsKIAkJQ0QxOUEyNkUxQTEzRTgzNDAwOEQ2NTBF
IC8qIFdlYkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2ViRGlh
Z25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLzsgfTsKIAkJQ0QxOUQyRUEyMDQ2NDA2RjAwMTcwNzRB
IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0QxOUQyRTgyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxz
Y3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oICovOyB9OworCQlDRDI4NjVFRTIyNTU1NjIwMDA2MDZB
QzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI4NjVFQzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vz
c1Rhc2tTdGF0ZU9ic2VydmVyLmggKi87IH07CisJCUNEMjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAv
KiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rh
c2tTdGF0ZU9ic2VydmVyLm1tICovOyB9OwogCQlDRDQ5MUIwODFFNzBEMDVGMDAwMDkwNjYgLyog
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENENDkxQjA2MUU3MEQwNUYwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oICovOyB9OwogCQlDRDQ5MUIwRDFFNzMyRTREMDAwMDkwNjYgLyogVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q0OTFCMEIxRTczMkU0RDAwMDA5MDY2IC8qIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJQ0Q0OTFC
MEUxRTczMkU0RDAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENDkxQjBDMUU3
MzJFNEQwMDAwOTA2NiAvKiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmggKi87IH07
CkBAIC00NDE3LDYgKzQ0MTksOCBAQAogCQlDRDE5QTI2QTFBMTNFODIxMDA4RDY1MEUgLyogV2Vi
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQ0QxOUQyRTgyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJp
c3RpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuaDsgcGF0
aCA9IGlvcy9mdWxsc2NyZWVuL0Z1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlDRDE5RDJFOTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNj
cmVlblRvdWNoU2VjaGV1cmlzdGljLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpYy5jcHA7IHBhdGggPSBpb3MvZnVsbHNjcmVlbi9GdWxsc2NyZWVuVG91
Y2hTZWNoZXVyaXN0aWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDI4NjVF
QzIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByb2Nlc3NUYXNrU3RhdGVPYnNlcnZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDRDI4NjVFRDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2Vy
dmVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDQ5MUIwNTFFNzBEMDVGMDAwMDkwNjYg
LyogVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDRDQ5MUIwNjFFNzBEMDVGMDAwMDkwNjYgLyogVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q0OTFCMEExRTcz
MkQxMjAwMDA5MDY2IC8qIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtNjMxMyw2ICs2MzE3LDggQEAKIAkJCQlDNTVGOTE2QzFDNTk1RTQ0MDAyOUU5
MkQgLyogRGF0YURldGVjdGlvblJlc3VsdC5oICovLAogCQkJCUM1NUY5MTZEMUM1OTVFNDQwMDI5
RTkyRCAvKiBEYXRhRGV0ZWN0aW9uUmVzdWx0Lm1tICovLAogCQkJCTJEMTA4NzYyMUQyQzY0MUIw
MEI4NUY4MiAvKiBMb2FkUGFyYW1ldGVyc0NvY29hLm1tICovLAorCQkJCUNEMjg2NUVDMjI1NTU2
MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCAqLywKKwkJCQlDRDI4NjVF
RDIyNTU1NjIwMDA2MDZBQzcgLyogUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyLm1tICovLAogCQkJ
CUNENEI0RDlBMUU3NjVFMDAwMEQyNzA5MiAvKiBTaGFyZWRSaW5nQnVmZmVyU3RvcmFnZS5jcHAg
Ki8sCiAJCQkJQ0Q0QjREOUIxRTc2NUUwMDAwRDI3MDkyIC8qIFNoYXJlZFJpbmdCdWZmZXJTdG9y
YWdlLmggKi8sCiAJCQkJMUFCMUY3OEUxRDFCMzRBNjAwN0M5QkQxIC8qIFdlYkNvcmVBcmd1bWVu
dENvZGVyc0NvY29hLm1tICovLApAQCAtOTM5Nyw2ICs5NDAzLDcgQEAKIAkJCQlFMUNDMUI5MDEy
RDdFQURGMDA2MjU4MzggLyogUHJpbnRJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NkY5NTM2
NTE4RkY1OEY1MDAxREIyRUYgLyogUHJvY2Vzc0Fzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0QyODY1RUUyMjU1NTYyMDAwNjA2QUM3IC8qIFByb2Nlc3NUYXNrU3RhdGVP
YnNlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYzRkQ0ODIxRUI5NEVDMDAwQTI5ODJDIC8q
IFByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODZFNjdBMjUx
OTEwQjlEMTAwMDA0QUI3IC8qIFByb2Nlc3NUaHJvdHRsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTgzMDQ4QUU2MUFDQTQ1REMwMDgyQzgzMiAvKiBQcm9jZXNzVGhyb3R0bGVyQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKQEAgLTEwOTcyLDYgKzEwOTc5LDcgQEAKIAkJCQlCQzgyODQ0RDE2QjUwODFD
MDBBMjc4RkUgLyogUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkyRDkxMzQ0RDIxMkNGOUYwMDAxMjhBRkQgLyogUGx1Z2luVmlldy5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkyRDU0QzMxQjIxMkY0REE2MDA0OUMxNzQgLyogUHJvY2Vzc0xhdW5jaGVyLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCUNEMjg2NUVGMjI1NTU2MjAwMDYwNkFDNyAvKiBQcm9jZXNzVGFz
a1N0YXRlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQkyRDcyQTFGQTIxMkJGNDZFMDA1
MTdBMjAgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkwRkYyNEEyRDE4NzlFNEJDMDAzQUJGMEMgLyogUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyREMxOEZCNDIxOEE2
RTlFMDAyNUE4OEQgLyogUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0gaW4gU291cmNlcyAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAppbmRleCA1NDBiZWI2NTM4NjMwYjUw
ODBjNGIxOTI2Y2RjYzM3YmNhNDNkNWViLi43MTU5NzY2ZTZkYzgzZjVkYTM5OWYxNGIxMWZhNDFj
NjRiMDAyZjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vz
cy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCkBAIC0x
NDUwLDYgKzE0NTAsNyBAQCB2b2lkIFdlYlByb2Nlc3M6OnJlc2V0QWxsR2VvbG9jYXRpb25QZXJt
aXNzaW9ucygpCiB2b2lkIFdlYlByb2Nlc3M6OmFjdHVhbFByZXBhcmVUb1N1c3BlbmQoU2hvdWxk
QWNrbm93bGVkZ2VXaGVuUmVhZHlUb1N1c3BlbmQgc2hvdWxkQWNrbm93bGVkZ2VXaGVuUmVhZHlU
b1N1c3BlbmQpCiB7CiAgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gc3VzcGVuc2lvblNjb3BlKG1faXNT
dXNwZW5kaW5nLCB0cnVlKTsKKyAgICBtX3Byb2Nlc3NJc1N1c3BlbmRlZCA9IHRydWU7CiAKICNp
ZiBFTkFCTEUoVklERU8pCiAgICAgc3VzcGVuZEFsbE1lZGlhQnVmZmVyaW5nKCk7CkBAIC0xNTEx
LDYgKzE1MTIsOSBAQCB2b2lkIFdlYlByb2Nlc3M6OnByZXBhcmVUb1N1c3BlbmQoKQogdm9pZCBX
ZWJQcm9jZXNzOjpjYW5jZWxQcmVwYXJlVG9TdXNwZW5kKCkKIHsKICAgICBSRUxFQVNFX0xPRyhQ
cm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6Y2FuY2VsUHJlcGFyZVRvU3VzcGVu
ZCgpIiwgdGhpcyk7CisKKyAgICBtX3Byb2Nlc3NJc1N1c3BlbmRlZCA9IGZhbHNlOworCiAgICAg
dW5mcmVlemVBbGxMYXllclRyZWVzKCk7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAt
MTU4NCw2ICsxNTg4LDggQEAgdm9pZCBXZWJQcm9jZXNzOjpwcm9jZXNzRGlkUmVzdW1lKCkKIHsK
ICAgICBSRUxFQVNFX0xPRyhQcm9jZXNzU3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6cHJv
Y2Vzc0RpZFJlc3VtZSgpIiwgdGhpcyk7CiAKKyAgICBtX3Byb2Nlc3NJc1N1c3BlbmRlZCA9IGZh
bHNlOworCiAgICAgY2FuY2VsTWFya0FsbExheWVyc1ZvbGF0aWxlKCk7CiAgICAgdW5mcmVlemVB
bGxMYXllclRyZWVzKCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaApp
bmRleCBlZTc4MWEwYmJiNWY4NjQzMjkxNWRlOTBhN2FkMzllMTAwZGNmMTA2Li5jNWQ3MzFjOTY4
NzdhNmM1ZjIzZDAwOTMyY2JlMzdjMDE4MmIzZGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQcm9jZXNzLmgKQEAgLTU3LDYgKzU3LDEwIEBACiAjaW5jbHVkZSA8d3RmL01hY2hTZW5kUmln
aHQuaD4KICNlbmRpZgogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyNpbmNsdWRlICJQcm9j
ZXNzVGFza1N0YXRlT2JzZXJ2ZXIuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNz
IE9iamVjdDsKIH0KQEAgLTExMiw3ICsxMTYsMTIgQEAgY2xhc3MgV2ViU1FMaXRlRGF0YWJhc2VU
cmFja2VyOwogc3RydWN0IFdlYnNpdGVEYXRhOwogc3RydWN0IFdlYnNpdGVEYXRhU3RvcmVQYXJh
bWV0ZXJzOwogCi1jbGFzcyBXZWJQcm9jZXNzIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3Mgewor
Y2xhc3MgV2ViUHJvY2VzcworICAgIDogcHVibGljIEF1eGlsaWFyeVByb2Nlc3MKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKQorICAgICwgUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpDbGllbnQK
KyNlbmRpZgorewogcHVibGljOgogICAgIHN0YXRpYyBXZWJQcm9jZXNzJiBzaW5nbGV0b24oKTsK
ICAgICBzdGF0aWMgY29uc3RleHByIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gUHJvY2Vzc1R5
cGU6OldlYkNvbnRlbnQ7CkBAIC00MjUsNiArNDM0LDcgQEAgcHJpdmF0ZToKICNlbmRpZgogCiAj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICB2b2lkIHByb2Nlc3NUYXNrU3RhdGVEaWRDaGFu
Z2UoUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpUYXNrU3RhdGUpIGZpbmFsOwogICAgIGJvb2wg
c2hvdWxkRnJlZXplT25TdXNwZW5zaW9uKCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVGcmVlemVy
U3RhdHVzKCk7CiAjZW5kaWYKQEAgLTQ5MCw2ICs1MDAsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9oYXNSaWNoQ29udGVudFNlcnZpY2VzIHsgZmFsc2UgfTsKICNlbmRpZgogCisgICAgYm9vbCBt
X3Byb2Nlc3NJc1N1c3BlbmRlZCB7IGZhbHNlIH07CisKICAgICBIYXNoU2V0PHVpbnQ2NF90PiBt
X3BhZ2VzSW5XaW5kb3dzOwogICAgIFdlYkNvcmU6OlRpbWVyIG1fbm9uVmlzaWJsZVByb2Nlc3ND
bGVhbnVwVGltZXI7CiAKQEAgLTQ5Nyw2ICs1MDksNyBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViU1FMaXRlRGF0YWJhc2VUcmFj
a2VyPiBtX3dlYlNRTGl0ZURhdGFiYXNlVHJhY2tlcjsKKyAgICBQcm9jZXNzVGFza1N0YXRlT2Jz
ZXJ2ZXIgbV90YXNrU3RhdGVPYnNlcnZlciB7ICp0aGlzIH07CiAjZW5kaWYKIAogICAgIGVudW0g
UGFnZU1hcmtpbmdMYXllcnNBc1ZvbGF0aWxlQ291bnRlclR5cGUgeyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KaW5kZXggMjRhYzVl
MGFiMjlhYjM5NWVkYmM2MTA4NDJjNWExZTgyNTFmMjVhYi4uNGE1ZjY4YTI0NDY5MmQ2ZGVlZTFi
MTI0NmM2N2M0YjYzZDE4YTJmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJMb2dJ
bml0aWFsaXphdGlvbi5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiT2JqQ09iamVj
dEdyYXBoLmgiCisjaW1wb3J0ICJQcm9jZXNzQXNzZXJ0aW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94
RXh0ZW5zaW9uLmgiCiAjaW1wb3J0ICJTYW5kYm94SW5pdGlhbGl6YXRpb25QYXJhbWV0ZXJzLmgi
CiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKQEAgLTI4MSw2ICsyODIsMzEgQEAgdm9pZCBXZWJQcm9j
ZXNzOjp1cGRhdGVQcm9jZXNzTmFtZSgpCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQogfQogCisj
aWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK3ZvaWQgV2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0
ZURpZENoYW5nZShQcm9jZXNzVGFza1N0YXRlT2JzZXJ2ZXI6OlRhc2tTdGF0ZSB0YXNrU3RhdGUp
Cit7CisgICAgUkVMRUFTRV9MT0coUHJvY2Vzc1N1c3BlbnNpb24sICIlcCAtIFdlYlByb2Nlc3M6
OnByb2Nlc3NUYXNrU3RhdGVEaWRDaGFuZ2UoKSAtIHRhc2tTdGF0ZSglZCkiLCB0aGlzLCB0YXNr
U3RhdGUpOworICAgIGlmICh0YXNrU3RhdGUgPT0gUHJvY2Vzc1Rhc2tTdGF0ZU9ic2VydmVyOjpO
b25lKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAodGFza1N0YXRlID09IFByb2Nlc3NUYXNr
U3RhdGVPYnNlcnZlcjo6U3VzcGVuZGVkKSB7CisgICAgICAgIGlmIChtX3Byb2Nlc3NJc1N1c3Bl
bmRlZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBSRUxFQVNFX0xPRyhQcm9jZXNz
U3VzcGVuc2lvbiwgIiVwIC0gV2ViUHJvY2Vzczo6cHJvY2Vzc1Rhc2tTdGF0ZUNoYW5nZWQoKSAt
IHVuZXhwZWN0ZWRseSBlbnRlcmVkIFN1c3BlbmRlZCBzdGF0ZSIsIHRoaXMpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3Byb2Nlc3NJc1N1c3BlbmRlZCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gV2Ugd2VyZSBhd2FrZW5lZCBmcm9tIHN1c3BlbnNpb24gdW5leHBl
Y3RlZGx5LiBOb3RpZnkgdGhlIFdlYlByb2Nlc3NQcm94eSwgYnV0IHRha2UgYSBwcm9jZXNzIGFz
c2VydGlvbiBvbiBvdXIgcGFyZW50IFBJRAorICAgIC8vIHRvIGVuc3VyZSB0aGF0IGl0IHRvbyBp
cyBhd2FrZW5lZC4KKyAgICBhdXRvIHVpUHJvY2Vzc0Fzc2VydGlvbiA9IHN0ZDo6bWFrZV91bmlx
dWU8UHJvY2Vzc0Fzc2VydGlvbj4ocGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+cmVtb3RlUHJv
Y2Vzc0lEKCksICJVbmV4cGVjdGVkbHkgcmVzdW1lZCIsIEFzc2VydGlvblN0YXRlOjpCYWNrZ3Jv
dW5kLCBBc3NlcnRpb25SZWFzb246OkZpbmlzaFRhc2spOworICAgIHBhcmVudFByb2Nlc3NDb25u
ZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpQ
cm9jZXNzV2FzVW5leHBlY3RlZGx5VW5zdXNwZW5kZWQoKSwgW3VpUHJvY2Vzc0Fzc2VydGlvbiA9
IFdURk1vdmUodWlQcm9jZXNzQXNzZXJ0aW9uKV0geyB9KTsKK30KKyNlbmRpZgorCiBzdGF0aWMg
dm9pZCByZWdpc3RlcldpdGhBY2Nlc3NpYmlsaXR5KCkKIHsKICNpZiBVU0UoQVBQS0lUKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>