<?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>171110</bug_id>
          
          <creation_ts>2017-04-21 04:39:54 -0700</creation_ts>
          <short_desc>Upstream the WPE port</short_desc>
          <delta_ts>2017-06-14 10:11:14 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=171973</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=172693</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=173365</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=173061</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Zan Dobersek">zan</reporter>
          <assigned_to name="Zan Dobersek">zan</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aestes</cc>
    
    <cc>beidson</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>csaavedra</cc>
    
    <cc>dbates</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>olivier.blin</cc>
    
    <cc>rniwa</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1299593</commentid>
    <comment_count>0</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:39:54 -0700</bug_when>
    <thetext>This bug hopes to upstream the WPE port of WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299594</commentid>
    <comment_count>1</comment_count>
      <attachid>307718</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:41:26 -0700</bug_when>
    <thetext>Created attachment 307718
Patch

Patch containing the source code changes required to bring the WPE port upstream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299595</commentid>
    <comment_count>2</comment_count>
      <attachid>307719</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:43:01 -0700</bug_when>
    <thetext>Created attachment 307719
git diff --stat output for the specific changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299596</commentid>
    <comment_count>3</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 04:45:33 -0700</bug_when>
    <thetext>Attachment 307718 did not pass style-queue:

ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/
inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 201 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299597</commentid>
    <comment_count>4</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 04:49:23 -0700</bug_when>
    <thetext>webkit-dev thread:
https://lists.webkit.org/pipermail/webkit-dev/2017-April/028923.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299599</commentid>
    <comment_count>5</comment_count>
      <attachid>307721</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 05:04:37 -0700</bug_when>
    <thetext>Created attachment 307721
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299600</commentid>
    <comment_count>6</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 05:17:04 -0700</bug_when>
    <thetext>Attachment 307721 did not pass style-queue:

ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/
inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 209 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299609</commentid>
    <comment_count>7</comment_count>
      <attachid>307726</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 07:03:19 -0700</bug_when>
    <thetext>Created attachment 307726
Patch

Should avoid header collision with Cocoa&apos;s WebKit.h file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299610</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 07:12:55 -0700</bug_when>
    <thetext>Attachment 307726 did not pass style-queue:

ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declare
d as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 209 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299616</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-21 07:44:31 -0700</bug_when>
    <thetext>You do need to placate style bot, since these are all new files. I&apos;m sure there are a couple false positives in there like whitespace/parens, but it looks like the overwhelming majority of those complaints are valid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299620</commentid>
    <comment_count>10</comment_count>
      <attachid>307728</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-21 07:48:50 -0700</bug_when>
    <thetext>Created attachment 307728
Patch

Also undefs the BUILDING_WPE__ macro in WKBase.h post-process step in WebKit2.xcodeproj/project.pbxproj.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299622</commentid>
    <comment_count>11</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 07:53:23 -0700</bug_when>
    <thetext>Attachment 307728 did not pass style-queue:

ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:48:  Alphabetical sorting problem. &quot;Platform/IPC/glib/GSocketMonitor.cpp&quot; should be before &quot;Platform/glib/ModuleGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:71:  Alphabetical sorting problem. &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadSafeCoordinatedSurface.cpp&quot; should be before &quot;Shared/CoordinatedGraphics/threadedcompositor/ThreadedDisplayRefreshMonitor.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;UIProcess/BackingStore.cpp&quot; should be before &quot;UIProcess/API/wpe/WPEViewClient.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:116:  Alphabetical sorting problem. &quot;UIProcess/InspectorServer/soup/WebSocketServerSoup.cpp&quot; should be before &quot;UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:45:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:49:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:55:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:61:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:71:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:75:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/DrawingAreaWPE.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/CMakeLists.txt:3999:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:39:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/Launcher/wpe/ProcessLauncherWPE.cpp:128:  &apos;protector&apos; is incorrectly named. It should be named &apos;protectedThis&apos;.  [readability/naming/protected] [4]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/wpe/generate-inspector-gresource-manifest.py:77:  blank line at end of file  [pep8/W391] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:36:  &quot;WebKit/WKBase.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:31  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:47:  &quot;WebKit/WKType.h&quot; already included at Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:32  [build/include] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:54:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:80:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:83:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WPEWebKit.h:96:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/Scripts/webkitpy/port/wpe.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/wpe/WebEventFactory.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:56:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.cpp:63:  More than one command on the same line  [whitespace/newline] [4]
ERROR: Source/JavaScriptCore/PlatformWPE.cmake:11:  Alphabetical sorting problem. &quot;API/JSBase.h&quot; should be before &quot;API/JavaScript.h&quot;.  [list/order] [5]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/page/wpe/EventHandlerWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/LocalizedStringsWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:57:  Alphabetical sorting problem. &quot;page/scrolling/ScrollingStateStickyNode.cpp&quot; should be before &quot;page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:108:  Alphabetical sorting problem. &quot;platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp&quot; should be before &quot;platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:154:  Alphabetical sorting problem. &quot;platform/glib/SSLKeyGeneratorGLib.cpp&quot; should be before &quot;platform/glib/SharedBufferGlib.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ThemeWPE.h:40:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebPage/wpe/WebPageWPE.cpp:31:  Bad include order. Mixing system and custom headers.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should add a blank line after implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:28:  You should not add a blank line before implementation file&apos;s own header.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/platform/wpe/PlatformPasteboardWPE.cpp:33:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/WebKitTestRunner/wpe/PlatformWebViewWPE.cpp:66:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:44:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/Shared/wpe/NativeWebTouchEventWPE.cpp:35:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:36:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WTF/wtf/PlatformWPE.cmake:8:  Alphabetical sorting problem. &quot;glib/GLibUtilities.cpp&quot; should be before &quot;glib/GRefPtr.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:46:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:47:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:48:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:50:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:51:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:54:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:56:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:57:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:58:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:59:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:60:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:62:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:63:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:65:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:67:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:68:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:69:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:71:  &quot;virtual&quot; is redundant since function is already declare
d as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:72:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:73:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:74:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:76:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:77:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:78:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:79:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:81:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:82:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:83:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:85:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:87:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:90:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:91:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:92:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:94:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:100:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:101:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:103:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:104:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:105:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:106:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:108:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:110:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:111:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:114:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:117:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.h:119:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/PageClientImpl.cpp:194:  Missing space before {  [whitespace/braces] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.h:71:  The parameter name &quot;size&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/DrawingAreaProxyWPE.h:44:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/wpe/RenderThemeWPE.cpp:30:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEViewClient.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:38:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:39:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:41:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:42:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebCore/platform/wpe/ScrollbarThemeWPE.h:43:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:96:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:97:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:98:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:99:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:52:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/CompositingManagerProxy.h:53:  &quot;virtual&quot; is redundant since function is already declared as &quot;override&quot;  [readability/inheritance] [4]
Total errors found: 161 in 210 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299642</commentid>
    <comment_count>12</comment_count>
      <attachid>307728</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 09:24:47 -0700</bug_when>
    <thetext>Comment on attachment 307728
Patch

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

New failing tests:
webrtc/datachannel/bufferedAmountLowThreshold.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299643</commentid>
    <comment_count>13</comment_count>
      <attachid>307738</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-21 09:24:48 -0700</bug_when>
    <thetext>Created attachment 307738
Archive of layout-test-results from ews105 for mac-elcapitan-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-elcapitan-wk2  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302048</commentid>
    <comment_count>14</comment_count>
      <attachid>308384</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 06:08:05 -0700</bug_when>
    <thetext>Created attachment 308384
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302049</commentid>
    <comment_count>15</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 06:11:23 -0700</bug_when>
    <thetext>Attachment 308384 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/CMakeLists.txt:4001:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 18 in 200 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302054</commentid>
    <comment_count>16</comment_count>
      <attachid>308384</attachid>
    <who name="Olivier Blin">olivier.blin</who>
    <bug_when>2017-04-27 06:52:46 -0700</bug_when>
    <thetext>Comment on attachment 308384
WIP patch

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

&gt; Source/WTF/wtf/glib/RunLoopSourcePriority.h:110
&gt;      DiskCacheWrite = 200,
&gt;  };
&gt;  
&gt; +#elif PLATFORM(WPE)
&gt; +
&gt; +enum RunLoopSourcePriority {
&gt; +    RunLoopDispatcher = -70,
&gt; +    RunLoopTimer = -70,
&gt; +
&gt; +    MainThreadDispatcherTimer = -60,
&gt; +
&gt; +    MemoryPressureHandlerTimer = -80,
&gt; +
&gt; +    JavascriptTimer = -60,
&gt; +    MainThreadSharedTimer = -60,
&gt; +
&gt; +    LayerFlushTimer = -70,
&gt; +    DisplayRefreshMonitorTimer = -70,
&gt; +
&gt; +    CompositingThreadUpdateTimer = -70,
&gt; +
&gt; +    ReleaseUnusedResourcesTimer = -70,
&gt; +
&gt; +    AsyncIONetwork = -70,
&gt; +    DiskCacheRead = -70,
&gt; +    DiskCacheWrite = -60
&gt; +};
&gt; +
&gt; +#endif

Can this be factorized with the GTK port?
Any reason to have different values?

&gt; Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:32
&gt; +#define __GBM__ 1

There should be a FIXME comment about __GBM__ like in Source/WebCore/platform/graphics/GLContext.h

&gt; Source/WebCore/platform/wpe/PlatformScreenWPE.cpp:67
&gt; +FloatRect screenRect(Widget*)
&gt; +{
&gt; +    notImplemented();
&gt; +    return FloatRect(0, 0, 1024, 640);
&gt; +}
&gt; +
&gt; +FloatRect screenAvailableRect(Widget*)
&gt; +{
&gt; +    notImplemented();
&gt; +    return FloatRect(0, 0, 1024, 640);
&gt; +}

Is it intended to have different hardcoded values for the default geometry?
1024x640 here

&gt; Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44
&gt; +View::View(struct wpe_view_backend* backend, const API::PageConfiguration&amp; baseConfiguration)
&gt; +    : m_pageClient(std::make_unique&lt;PageClientImpl&gt;(*this))
&gt; +    , m_size { 800, 600 }

and 800x600 here?

&gt; Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:49
&gt; +    bool platformInitialize() override
&gt; +    {
&gt; +        // TODO: Wrap with #ifndef NDEBUG
&gt; +        if (g_getenv(&quot;WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH&quot;)) {
&gt; +            g_printerr(&quot;WebProcess PID: %d\n&quot;, getpid());
&gt; +            WTF::sleep(30);
&gt; +        }

Maybe this can be fixed in the initial patch by adding NDEBUG guards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302069</commentid>
    <comment_count>17</comment_count>
      <attachid>308384</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 07:52:00 -0700</bug_when>
    <thetext>Comment on attachment 308384
WIP patch

Attachment 308384 did not pass mac-debug-ews (mac):
Output: http://webkit-queues.webkit.org/results/3619493

New failing tests:
media/modern-media-controls/macos-fullscreen-media-controls/macos-fullscreen-media-controls-buttons-styles.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302070</commentid>
    <comment_count>18</comment_count>
      <attachid>308388</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 07:52:01 -0700</bug_when>
    <thetext>Created attachment 308388
Archive of layout-test-results from ews113 for mac-elcapitan

The attached test failures were seen while running run-webkit-tests on the mac-debug-ews.
Bot: ews113  Port: mac-elcapitan  Platform: Mac OS X 10.11.6</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302261</commentid>
    <comment_count>19</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 13:38:53 -0700</bug_when>
    <thetext>(In reply to Olivier Blin from comment #16)
&gt; 
&gt; Can this be factorized with the GTK port?
&gt; Any reason to have different values?
&gt; 

We haven&apos;t settled yet on values that work for both ports.

&gt; &gt; Source/WebCore/platform/graphics/wpe/PlatformDisplayWPE.h:32
&gt; &gt; +#define __GBM__ 1
&gt; 
&gt; There should be a FIXME comment about __GBM__ like in
&gt; Source/WebCore/platform/graphics/GLContext.h
&gt; 

I&apos;ll add it in the next round, or after it&apos;s upstream.

&gt; &gt; Source/WebCore/platform/wpe/PlatformScreenWPE.cpp:67
&gt; &gt; +FloatRect screenRect(Widget*)
&gt; &gt; +{
&gt; &gt; +    notImplemented();
&gt; &gt; +    return FloatRect(0, 0, 1024, 640);
&gt; &gt; +}
&gt; &gt; +
&gt; &gt; +FloatRect screenAvailableRect(Widget*)
&gt; &gt; +{
&gt; &gt; +    notImplemented();
&gt; &gt; +    return FloatRect(0, 0, 1024, 640);
&gt; &gt; +}
&gt; 
&gt; Is it intended to have different hardcoded values for the default geometry?
&gt; 1024x640 here
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:44
&gt; &gt; +View::View(struct wpe_view_backend* backend, const API::PageConfiguration&amp; baseConfiguration)
&gt; &gt; +    : m_pageClient(std::make_unique&lt;PageClientImpl&gt;(*this))
&gt; &gt; +    , m_size { 800, 600 }
&gt; 
&gt; and 800x600 here?
&gt; 

Screen geometry is mocked above, view size below. The former would need additional API, but is currently not vital for any use case. The latter normally gets resized as instructed by the application.

&gt; &gt; Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:49
&gt; &gt; +    bool platformInitialize() override
&gt; &gt; +    {
&gt; &gt; +        // TODO: Wrap with #ifndef NDEBUG
&gt; &gt; +        if (g_getenv(&quot;WEBKIT2_PAUSE_WEB_PROCESS_ON_LAUNCH&quot;)) {
&gt; &gt; +            g_printerr(&quot;WebProcess PID: %d\n&quot;, getpid());
&gt; &gt; +            WTF::sleep(30);
&gt; &gt; +        }
&gt; 
&gt; Maybe this can be fixed in the initial patch by adding NDEBUG guards?

In the next round, or after it&apos;s upstreamed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302262</commentid>
    <comment_count>20</comment_count>
      <attachid>308438</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 13:41:37 -0700</bug_when>
    <thetext>Created attachment 308438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302266</commentid>
    <comment_count>21</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 13:46:16 -0700</bug_when>
    <thetext>Attachment 308438 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:472:  One space between command &quot;endif&quot; and its parentheses, should be &quot;endif (&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebCore/CMakeLists.txt:4001:  No space before &quot;)&quot;  [whitespace/parentheses] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/PlatformWPE.cmake:143:  Alphabetical sorting problem. &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; should be before &quot;platform/text/TextEncodingDetectorICU.cpp&quot;.  [list/order] [5]
ERROR: Source/WebCore/PlatformWPE.cmake:144:  There should be exactly one empty line instead of 0 between &quot;# FIXME: Split build targers below into a WebCorePlatform library&quot; and &quot;editing/wpe/EditorWPE.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 19 in 200 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302267</commentid>
    <comment_count>22</comment_count>
      <attachid>308440</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-27 13:46:30 -0700</bug_when>
    <thetext>Created attachment 308440
git diff --stat output for the specific changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302286</commentid>
    <comment_count>23</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2017-04-27 14:13:10 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #22)
&gt; Created attachment 308440 [details]
&gt; git diff --stat output for the specific changes

tip: if you do 

git diff --stat=999 &gt;file.txt

You get lines as long as 999 width, otherwise git will cut them at &lt;= 72</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302319</commentid>
    <comment_count>24</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-04-27 14:54:29 -0700</bug_when>
    <thetext>Style checker is much happier now, but I still see some low-hanging fruit there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302505</commentid>
    <comment_count>25</comment_count>
      <attachid>308438</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-27 23:07:23 -0700</bug_when>
    <thetext>Comment on attachment 308438
Patch

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

I read about the first 1/4 of this.  Seems pretty good so far.

&gt; Source/WebCore/CMakeLists.txt:4001
&gt; +    set(ANGLE_PLATFORM_DEFINITIONS )

This isn&apos;t necessary.

&gt; Source/WebCore/CMakeLists.txt:4003
&gt; +        list(APPEND ANGLE_PLATFORM_DEFINITIONS &quot;USE_WPE&quot;)

Let&apos;s move this definition to PlatformWPE.cmake

&gt; Source/WebCore/PlatformWPE.cmake:143
&gt; +    # FIXME: Split build targers below into a WebCorePlatform library

targets
I agree, there are a lot of duplicate lists here.

&gt; Source/WebCore/editing/wpe/EditorWPE.cpp:37
&gt; +static PassRefPtr&lt;DocumentFragment&gt; createFragmentFromPasteboardData(Pasteboard&amp; pasteboard, Frame&amp; frame, Range&amp; range, bool allowPlainText, bool&amp; chosePlainText)

Could we not add any new code with PassRefPtr unless absolutely necessary?

&gt; Source/WebCore/platform/DragImage.h:44
&gt; +#elif PLATFORM(GTK) || PLATFORM(WPE)

We should merge these into USE(CAIRO).  It will probably be pretty common to have GTK || WPE and I think we will usually be needing USE(GLIB) or something.

&gt; Source/WebCore/platform/graphics/wpe/ImageWPE.cpp:37
&gt; +PassRefPtr&lt;Image&gt; Image::loadPlatformResource(const char* resource)

We should remove PassRefPtr from all platforms&apos; implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302748</commentid>
    <comment_count>26</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:22:21 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #25)
&gt; &gt; Source/WebCore/CMakeLists.txt:4001
&gt; &gt; +    set(ANGLE_PLATFORM_DEFINITIONS )
&gt; 
&gt; This isn&apos;t necessary.
&gt; 
&gt; &gt; Source/WebCore/CMakeLists.txt:4003
&gt; &gt; +        list(APPEND ANGLE_PLATFORM_DEFINITIONS &quot;USE_WPE&quot;)
&gt; 
&gt; Let&apos;s move this definition to PlatformWPE.cmake
&gt; 

Done.

&gt; &gt; Source/WebCore/PlatformWPE.cmake:143
&gt; &gt; +    # FIXME: Split build targers below into a WebCorePlatform library
&gt; 
&gt; targets
&gt; I agree, there are a lot of duplicate lists here.
&gt; 

Moved most of those build targets (the WPE-specific ones) into WebCorePlatformWPE library, the rest remain listed there.

&gt; &gt; Source/WebCore/editing/wpe/EditorWPE.cpp:37
&gt; &gt; +static PassRefPtr&lt;DocumentFragment&gt; createFragmentFromPasteboardData(Pasteboard&amp; pasteboard, Frame&amp; frame, Range&amp; range, bool allowPlainText, bool&amp; chosePlainText)
&gt; 
&gt; Could we not add any new code with PassRefPtr unless absolutely necessary?
&gt; 

Sure, now uses RefPtr&lt;&gt;.

&gt; &gt; Source/WebCore/platform/DragImage.h:44
&gt; &gt; +#elif PLATFORM(GTK) || PLATFORM(WPE)
&gt; 
&gt; We should merge these into USE(CAIRO).  It will probably be pretty common to
&gt; have GTK || WPE and I think we will usually be needing USE(GLIB) or
&gt; something.
&gt; 

It depends on the context, e.g. in CryptoKey* files we&apos;d be using USE(LIBGCRYPT), but that flag doesn&apos;t exist (yet).

But yes, given that the ports will be sharing a lot of the internals, we&apos;ll try to find a single flag.

&gt; &gt; Source/WebCore/platform/graphics/wpe/ImageWPE.cpp:37
&gt; &gt; +PassRefPtr&lt;Image&gt; Image::loadPlatformResource(const char* resource)
&gt; 
&gt; We should remove PassRefPtr from all platforms&apos; implementations.

Agreed, but I don&apos;t want to touch cross-port implementations in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302751</commentid>
    <comment_count>27</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:28:27 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #24)
&gt; Style checker is much happier now, but I still see some low-hanging fruit
&gt; there.

A few of those errors are bugs, and in some cases the necessary include order has to be preserved.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302752</commentid>
    <comment_count>28</comment_count>
      <attachid>308589</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:29:24 -0700</bug_when>
    <thetext>Created attachment 308589
\</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302753</commentid>
    <comment_count>29</comment_count>
      <attachid>308590</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:30:16 -0700</bug_when>
    <thetext>Created attachment 308590
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302754</commentid>
    <comment_count>30</comment_count>
      <attachid>308591</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-04-28 13:31:21 -0700</bug_when>
    <thetext>Created attachment 308591
git diff --stat output for the specific changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302755</commentid>
    <comment_count>31</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-28 13:33:42 -0700</bug_when>
    <thetext>Attachment 308590 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 15 in 208 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302799</commentid>
    <comment_count>32</comment_count>
      <attachid>308590</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-04-28 14:43:44 -0700</bug_when>
    <thetext>Comment on attachment 308590
Patch

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

&gt; Source/WTF/wtf/Platform.h:627
&gt; +#if PLATFORM(COCOA) || PLATFORM(WIN) || PLATFORM(GTK) || PLATFORM(WPE)
&gt;  #define HAVE_ACCESSIBILITY 1

This is everybody!  We should consider removing the HAVE(ACCESSIBILITY) macros unless someone has a reason they want to maintain a build without accessibility.

&gt; Source/WTF/wtf/Platform.h:1081
&gt; +#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) || (PLATFORM(WIN) &amp;&amp; !USE(WINGDI))
&gt;  #define USE_REQUEST_ANIMATION_FRAME_TIMER 1

Same with this.  USE(WINGDI) was true with the WinCE port which was removed years ago.  There&apos;s cleanup we could do after this.

&gt; Source/WebCore/PlatformWPE.cmake:7
&gt; +if (PORT STREQUAL &quot;WPE&quot;)

This check isn&apos;t needed in PlatformWPE.cmake.

&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:240
&gt; +    ::glFlush();

Let&apos;s not add this in this patch.  We&apos;re trying to reduce the required number of calls to glFlush.  If it&apos;s really needed, let&apos;s do it in a separate patch.

&gt; Source/WebCore/platform/graphics/wpe/ImageWPE.cpp:37
&gt; +PassRefPtr&lt;Image&gt; Image::loadPlatformResource(const char* resource)

Yeah, making this RefPtr would require refactoring that we shouldn&apos;t do in this patch.  Let&apos;s do it soon, though.

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:79
&gt; +#if PLATFORM(GTK) || PLATFORM(WPE)
&gt;          m_threadCountLimit = 1;

Aren&apos;t GTK and now WPE the only ports using CoordinatedGraphics in WebKit2 now?

&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:63
&gt; +class ThreadedCompositor : public CoordinatedGraphicsSceneClient, public ThreadSafeRefCounted&lt;ThreadedCompositor&gt;
&gt; +#if PLATFORM(WPE)
&gt; +    , public WebCore::PlatformDisplayWPE::EGLTarget::Client

This feels like it&apos;s not designed well if we need a new type of client just for one platform.  This has led to problems before.

&gt; Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:44
&gt; +    int m_connectionFd { -1 };

Would std::optional&lt;int&gt; make sense here? std::optional&lt;unsigned&gt;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304545</commentid>
    <comment_count>33</comment_count>
      <attachid>308590</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-04 01:10:33 -0700</bug_when>
    <thetext>Comment on attachment 308590
Patch

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

&gt;&gt; Source/WebCore/PlatformWPE.cmake:7
&gt;&gt; +if (PORT STREQUAL &quot;WPE&quot;)
&gt; 
&gt; This check isn&apos;t needed in PlatformWPE.cmake.

Removed.

&gt;&gt; Source/WebCore/platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:240
&gt;&gt; +    ::glFlush();
&gt; 
&gt; Let&apos;s not add this in this patch.  We&apos;re trying to reduce the required number of calls to glFlush.  If it&apos;s really needed, let&apos;s do it in a separate patch.

Opened bug #171647.

&gt;&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/CompositingRunLoop.cpp:79
&gt;&gt;          m_threadCountLimit = 1;
&gt; 
&gt; Aren&apos;t GTK and now WPE the only ports using CoordinatedGraphics in WebKit2 now?

They are. I can remove the guards, taking 1 as the default limit, and add a FIXME to make this limit configurable in the future.

&gt;&gt; Source/WebKit2/Shared/CoordinatedGraphics/threadedcompositor/ThreadedCompositor.h:63
&gt;&gt; +    , public WebCore::PlatformDisplayWPE::EGLTarget::Client
&gt; 
&gt; This feels like it&apos;s not designed well if we need a new type of client just for one platform.  This has led to problems before.

It&apos;s the best we can do at the moment, before we move the GTK+ stack on top of WPE and potentially make the CoordinatedGraphics subsystem explicitly exclusive to the WPE and GTK+ ports.

&gt;&gt; Source/WebKit2/WebProcess/WebPage/wpe/CompositingManager.h:44
&gt;&gt; +    int m_connectionFd { -1 };
&gt; 
&gt; Would std::optional&lt;int&gt; make sense here? std::optional&lt;unsigned&gt;?

std::optional&lt;&gt; would make sense, not yet sure about the embedded type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304554</commentid>
    <comment_count>34</comment_count>
      <attachid>309027</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-04 02:32:05 -0700</bug_when>
    <thetext>Created attachment 309027
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304555</commentid>
    <comment_count>35</comment_count>
      <attachid>309028</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-04 02:33:30 -0700</bug_when>
    <thetext>Created attachment 309028
git diff --stat output</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1304556</commentid>
    <comment_count>36</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-04 02:35:55 -0700</bug_when>
    <thetext>Attachment 309027 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:177:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:178:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 15 in 208 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1305870</commentid>
    <comment_count>37</comment_count>
      <attachid>309027</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-05-08 08:56:34 -0700</bug_when>
    <thetext>Comment on attachment 309027
Patch

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

What, nobody reviewed this?  Let&apos;s land this. r=me

&gt; Source/WebKit2/UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp:94
&gt; +void WebInspectorServer::buildPageList(Vector&lt;char&gt;&amp; data, String&amp; contentType)
&gt; +{
&gt; +    // chromedevtools (http://code.google.com/p/chromedevtools) 0.3.8 expected JSON format:

This is strange.  First of all, platformResourceForPath seems to only be called in one place from WebInspectorServer.cpp, and there isn&apos;t an existing implementation, so how does that work?  Second, we are trying to move away from passing return values in as references in parameters.  Third, why are we trying to match the Chrome devtools JSON format?  Are people using Chrome devtools with WPE WebKit?  I&apos;m not sure that&apos;s something we want to support.  If it is, we should add this in another patch and add tests.

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:265
&gt; +    bool shouldPaintBrokenImage(const WebCore::URL&amp;) const override;

This doesn&apos;t seem to be called.  Can it be added later if needed?

&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:92
&gt; +

This space is inconsistent.  I don&apos;t think it should be here.  The lack of space here indicates that all these functions have to do with the pasteboard stuff.

&gt; Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:428
&gt; +    if options.platform in [&quot;efl&quot;, &quot;gtk&quot;, &quot;wpe&quot;]:

we need to go through all the tools and remove efl stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306299</commentid>
    <comment_count>38</comment_count>
      <attachid>309027</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 00:25:32 -0700</bug_when>
    <thetext>Comment on attachment 309027
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/InspectorServer/wpe/WebInspectorServerWPE.cpp:94
&gt;&gt; +    // chromedevtools (http://code.google.com/p/chromedevtools) 0.3.8 expected JSON format:
&gt; 
&gt; This is strange.  First of all, platformResourceForPath seems to only be called in one place from WebInspectorServer.cpp, and there isn&apos;t an existing implementation, so how does that work?  Second, we are trying to move away from passing return values in as references in parameters.  Third, why are we trying to match the Chrome devtools JSON format?  Are people using Chrome devtools with WPE WebKit?  I&apos;m not sure that&apos;s something we want to support.  If it is, we should add this in another patch and add tests.

This WebInspectorServer stuff is a legacy way of loading the Web Inspector remotely. The GTK+ port switched over to using the remote inspector stack, and WPE will follow closely.

That said, I can&apos;t ensure we&apos;ll be able to completely drop WebInspectorServer, but it should be upstreamed separately later, if necessary.

No idea about the Chrome dev tools JSON format, it maybe used to conform to that, but I suspect it wouldn&apos;t work this way anymore.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebFrameLoaderClient.h:265
&gt;&gt; +    bool shouldPaintBrokenImage(const WebCore::URL&amp;) const override;
&gt; 
&gt; This doesn&apos;t seem to be called.  Can it be added later if needed?

OK.

&gt;&gt; Source/WebKit2/WebProcess/WebCoreSupport/WebPlatformStrategies.h:92
&gt;&gt; +
&gt; 
&gt; This space is inconsistent.  I don&apos;t think it should be here.  The lack of space here indicates that all these functions have to do with the pasteboard stuff.

OK.

&gt;&gt; Tools/Scripts/webkitpy/layout_tests/run_webkit_tests.py:428
&gt;&gt; +    if options.platform in [&quot;efl&quot;, &quot;gtk&quot;, &quot;wpe&quot;]:
&gt; 
&gt; we need to go through all the tools and remove efl stuff.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306308</commentid>
    <comment_count>39</comment_count>
      <attachid>309485</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 00:57:44 -0700</bug_when>
    <thetext>Created attachment 309485
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306309</commentid>
    <comment_count>40</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-05-09 01:02:24 -0700</bug_when>
    <thetext>Attachment 309485 did not pass style-queue:


ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:52:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/Shared/API/c/wpe/WebKit.h:78:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/wpe/WPEView.cpp:45:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
ERROR: Source/WebKit2/PlatformWPE.cmake:175:  Alphabetical sorting problem. &quot;# FIXME-GWSHARE:&quot; should be before &quot;WebProcess/wpe/WebProcessMainWPE.cpp&quot;.  [list/order] [5]
ERROR: Source/WebKit2/PlatformWPE.cmake:176:  There should be exactly one empty line instead of 0 between &quot;# FIXME-GWSHARE:&quot; and &quot;DatabaseProcess/gtk/DatabaseProcessMainGtk.cpp&quot;.  [list/emptyline] [5]
ERROR: Source/WebKit2/Shared/API/c/wpe/WKBaseWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebCore/platform/graphics/PlatformDisplay.h:58:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Tools/WebKitTestRunner/wpe/HeadlessViewBackend.h:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKAPICastWPE.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:29:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:31:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
ERROR: Source/WebKit2/WebProcess/wpe/WebProcessMainWPE.cpp:34:  Streams are highly discouraged.  [readability/streams] [3]
ERROR: Source/WebKit2/UIProcess/API/C/wpe/WKView.h:26:  Use #pragma once instead of #ifndef for header guard.  [build/header_guard] [5]
Total errors found: 15 in 205 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306333</commentid>
    <comment_count>41</comment_count>
      <attachid>309485</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 04:08:02 -0700</bug_when>
    <thetext>Comment on attachment 309485
Patch for landing

Clearing flags on attachment: 309485

Committed r216497: &lt;http://trac.webkit.org/changeset/216497&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1306334</commentid>
    <comment_count>42</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2017-05-09 04:08:08 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307718</attachid>
            <date>2017-04-21 04:41:26 -0700</date>
            <delta_ts>2017-04-21 05:04:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>485354</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41Y2Y2YWY5MmNkNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0ph
dmFTY3JpcHQuaAorICAgIEFQSS9KU0Jhc2UuaAorICAgIEFQSS9KU0NvbnRleHRSZWYuaAorICAg
IEFQSS9KU09iamVjdFJlZi5oCisgICAgQVBJL0pTU3RyaW5nUmVmLmgKKyAgICBBUEkvSlNUeXBl
ZEFycmF5LmgKKyAgICBBUEkvSlNWYWx1ZVJlZi5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2lu
Y2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3Jt
LmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVmIHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1h
cF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5cGVkZWYgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIAotI2VsaWYgZGVmaW5lZChVU0Vf
T1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkgfHwgZGVmaW5lZChVU0VfV1BFKQogCiB0
eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlUeXBlOwogdHlwZWRlZiBpbnRwdHJfdCBF
R0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzVjMTg5ODRhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUworICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTYzNzk1ZjRjYmUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDI4
NiBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitpbmNsdWRlKHBsYXRmb3Jt
L0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xpbnV4LmNtYWtlKQoraW5j
bHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNw
ZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSSIK
KyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBp
bGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0ZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
cnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9L
SFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisgICAgYWNj
ZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxvYWRlci9z
b3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJj
ZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNz
L1Njcm9sbGluZ0Nvb3JkaW5hdG9yQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKyAgICBwYWdlL3Nj
cm9sbGluZy9jb29yZGluYXRlZGdyYXBoaWNzL1Njcm9sbGluZ1N0YXRlTm9kZUNvb3JkaW5hdGVk
R3JhcGhpY3MuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5v
ZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAg
IHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRpby9nbGli
L0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0
LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1QYXRoQ2Fp
cm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKwor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRl
eHQzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICAjIEZJWE1FOiBTcGxpdCBi
dWlsZCB0YXJnZXJzIGJlbG93IGludG8gYSBXZWJDb3JlUGxhdGZvcm0gbGlicmFyeQorICAgIGVk
aXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKKworICAgIHBhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5j
cHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2RlckdsaWIuY3BwCisgICAgcGxhdGZv
cm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIv
U2hhcmVkQnVmZmVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL1NTTEtleUdlbmVyYXRvckdM
aWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisKKyAg
ICBwbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRT
dHJpbmdzV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3Bl
L1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3Jl
ZW5XUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwCisgICAgcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9XaWRn
ZXRXUEUuY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAKKykK
KworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykK
Kworc2V0KFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5n
bGlzaC5scHJvai9tZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitz
ZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQor
ICAgICR7Rk9OVENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQor
ICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30K
KyAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAg
ICAke0dOVVRMU19MSUJSQVJJRVN9CisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJ
Q1VfTElCUkFSSUVTfQorICAgICR7TElCR0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7TElCWE1MMl9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJB
UklFU30KKyAgICAke1NRTElURV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQor
CitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lO
Q0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lO
Q0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KKyAgICAke0dOVVRMU19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lO
Q0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9J
TkNMVURFX0RJUn0KKyAgICAke0xJQlhTTFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5D
TFVERV9ESVJ9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitpZiAoRU5BQkxFX1NVQlRM
RV9DUllQVE8pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIGNyeXB0
by9DcnlwdG9BbGdvcml0aG0uY3BwCisgICAgICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKKyAgICAgICAgY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKKwor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcAorICAgICAg
ICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmNwcAorICAgICAgICBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisgICAgICAgIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1QQktERjIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNw
cAorCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5j
cHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCR0NyeXB0LmNw
cAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DVFJHQ3J5cHQuY3Bw
CisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdDcnlwdC5jcHAK
KyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAKKyAgICAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1FQ0RTQUdDcnlwdC5jcHAKKyAgICAgICAg
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1IS0RGR0NyeXB0LmNwcAorICAgICAgICBjcnlw
dG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtUEJLREYyR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisgICAgICAgIGNy
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvS2V5RUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0
by9nY3J5cHQvQ3J5cHRvS2V5UlNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L1Nl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorCisgICAgICAgIGNyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNB
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSYXcuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCisgICAgKQorZW5kaWYgKCkKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCAxNTlkNWNjYzQyMi4uMzFhMjFmYWI4MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBA
IHR5cGVkZWYgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiB7
IH07CiAjZWxzZQogY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI7CiAjZW5kaWYKQEAg
LTExMTEsNiArMTExMyw4IEBAIHByb3RlY3RlZDoKICAgICBDT01QdHI8QWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBBdGtPYmpl
Y3QqIG1fd3JhcHBlcjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTU0MTU5NGFkZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hl
V1BFLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxp
YSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNh
dGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSosIE5vZGUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0Fu
Y2hvcihjb25zdCBOb2RlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlP
YmplY3RXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZTk0
YzU5OTRjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
d3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRGVmYXVsdEJlaGF2
aW9yOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VT
U0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbmZpZy5oCmluZGV4IGQ1ZDQzZmU0ZGY0Li4xODA5OTBlYmZmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgK
QEAgLTEwNCw3ICsxMDQsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX05FV19USEVN
RSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5k
ZXggNDQzYTY4MjE1YWIuLjRjN2QwMjk4ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUVDLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NDRUNDcnlw
dG9yICpDQ0VDQ3J5cHRvclJlZjsKIHR5cGVkZWYgQ0NFQ0NyeXB0b3JSZWYgUGxhdGZvcm1FQ0tl
eTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogLy8gZ2NyeV9zZXhwKiBlcXVhdGVzIGdjcnlfc2V4cF90Lgogc3RydWN0IGdj
cnlfc2V4cDsKIHR5cGVkZWYgZ2NyeV9zZXhwKiBQbGF0Zm9ybUVDS2V5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAppbmRleCAzMDViZDRjNDNhMC4uNDFiY2U4NTll
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCkBAIC0zNiw3
ICszNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQ1JTQUNyeXB0b3IgKkNDUlNBQ3J5cHRvclJlZjsK
IHR5cGVkZWYgQ0NSU0FDcnlwdG9yUmVmIFBsYXRmb3JtUlNBS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtUlNBS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4
IDNjMTU3ZWY2ZDg4Li4wNWU5MWJmZjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMTI0NiwxMyArMTI0NiwxMyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0
b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1h
Z2VFbGVtZW50RnJvbUltYWdlRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICAgICAgICAgaWYgKGlt
YWdlRWxlbWVudCkgewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAg
ICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50KCkudGl0
bGUoKSk7CiAjZWxzZQogICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBh
c3RlKCktPndyaXRlSW1hZ2UoKmltYWdlRWxlbWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1l
bnQoKS50aXRsZSgpKTsKICNlbmRpZgogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBh
bmQgZGVsZXRlIHRoaXMuCkBAIC0xMzc3LDcgKzEzNzcsNyBAQCB2b2lkIEVkaXRvcjo6Y29weUlt
YWdlKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkK
ICAgICAgICAgdXJsID0gcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCAqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0
RGlzcGxheVN0cmluZygpKTsKICNlbHNlCiAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCktPndyaXRlSW1hZ2UoKmVsZW1lbnQsIHVybCwgcmVzdWx0LmFsdERpc3BsYXlTdHJp
bmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAxNjUyYjZkYjM5My4uMzZiOTZiMmJj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0
cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxC
bG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBFbGVtZW50JiBpbWFnZUVs
ZW1lbnQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgd3JpdGVT
ZWxlY3Rpb24oUGFzdGVib2FyZFdyaXRlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dw
ZS9FZGl0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
ZmZkMmRlMWU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3Bl
L0VkaXRvcldQRS5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJk
RGF0YShQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiByYW5nZSwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgY2hvc2VQ
bGFpblRleHQgPSBmYWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gcGFzdGVib2Fy
ZC50eXBlcygpOworICAgIGlmICh0eXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIp
ICYmIGZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IHBhc3RlYm9h
cmQucmVhZFN0cmluZygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICAgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1
cCgqZnJhbWUuZG9jdW1lbnQoKSwgbWFya3VwLCBlbXB0eVN0cmluZygpLCBEaXNhbGxvd1Njcmlw
dGluZ0FuZFBsdWdpbkNvbnRlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxhaW5UZXh0KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlucygidGV4dC9wbGFpbjtjaGFyc2V0PXV0
Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOworICAgICAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChy
YW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKK3sKKyAgICBQYXN0ZWJvYXJkV2ViQ29udGVudCBw
YXN0ZWJvYXJkQ29udGVudDsKKyAgICBwYXN0ZWJvYXJkQ29udGVudC50ZXh0ID0gc2VsZWN0ZWRU
ZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CisgICAgcGFzdGVib2FyZENvbnRlbnQubWFya3VwID0gY3Jl
YXRlTWFya3VwKCpzZWxlY3RlZFJhbmdlKCksIG51bGxwdHIsIEFubm90YXRlRm9ySW50ZXJjaGFu
Z2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKTsKKyAgICBwYXN0ZWJvYXJkLndyaXRlKHBh
c3RlYm9hcmRDb250ZW50KTsKK30KKwordm9pZCBFZGl0b3I6OndyaXRlSW1hZ2VUb1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1haWxCbG9j
a3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK3sKKyAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoKnBhc3Rl
Ym9hcmQsIG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFnbWVudCgq
ZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hv
c2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjk1N2M4Nzg0
ZmMuLmVkZTk0MDE3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
NjExLDcgKzI2MTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
I2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkK
IAogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250
YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2VkY2Q4NWQ4MzcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIlBhZ2UuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZvY3VzQ29u
dHJvbGxlci5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKK3sKKyAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJm1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dp
ZGdldChSZW5kZXJXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRn
ZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZy
YW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKiwgSGl0VGVzdFJlc3VsdCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oCmluZGV4IGNkY2YyNjVmMjYwLi41ZTkxMWQ3MDhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vy
c29yLmgKQEAgLTc0LDYgKzc0LDggQEAgdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hh
cmVkQ3Vyc29yPjsKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3IgKjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+Owor
I2VsaWYgUExBVEZPUk0oV1BFKQordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSB2b2lkKjsKICNlbmRp
ZgogCiBjbGFzcyBDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXggMTk1
NzIxYjFmZGEuLmYzNjNmYWY1NTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAg
LTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2VsZWN0aW9uRGF0YTsK
IH0KIHR5cGVkZWYgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQ
TEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKIHR5cGVk
ZWYgdm9pZCogRHJhZ0RhdGFSZWY7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaAppbmRleCBlMzI1NWQxOWFkMi4uY2JlZjczOGY2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNH
SW1hZ2VSZWY7CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiB0eXBl
ZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVm
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IGYxMjY4YTY4ZDJkLi4xZDEyMzZh
YTdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3
IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYp
OwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVz
b3VyY2VzUGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRo
cmVhZFNoYXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6
OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJl
ZFRpbWVyOjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkw
NzMwZjE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFy
ZWRUaW1lci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2VuZGlmCiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVk
VGltZXIoKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0j
aWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAg
IFJ1bkxvb3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCBiOTRkNzBhMWY2YS4uOWMx
NGJhMjdjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYy
LDcgQEAgZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBE
ZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0
ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3Au
CiAKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
UExBVEZPUk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5k
aWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1
cDsKKyNlbmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBlODhhNDg5MTE4My4uOTlkNzVm
NGViYjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CkBAIC02OSwxMCArNjksMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFt
ZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmly
dHVhbCBSZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVz
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIH5QYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggMzdhNzkxODNmNmMuLmYzZTQzMDQzZWZjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAs
NiArNDAsMTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVi
b2FyZDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJk
OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Miw3
ICs1Niw3IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFz
dGVib2FyZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9S
VCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5n
PiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICNlbmRpZgpAQCAtMTA1LDYgKzEwOSw5
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEd0a0NsaXBib2FyZCogbV9jbGlw
Ym9hcmQ7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RydWN0IHdwZV9wYXN0ZWJv
YXJkKiBtX3Bhc3RlYm9hcmQ7CisjZW5kaWYKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAppbmRleCA1YmFkM2NkMGQ1Ni4uNjRlMzU2Mzk2ZGMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAgc3RhdGljIFVSTFNjaGVtZXNNYXAmIHNlY3VyZVNjaGVtZXMoKQogICAgICAgICBzZWN1
cmVTY2hlbWVzLmdldCgpLmFkZCgiYWJvdXQiKTsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQo
KS5hZGQoImRhdGEiKTsKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoIndzcyIpOwot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoInJlc291cmNlIik7CiAjZW5kaWYKICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCmluZGV4IDU1YjQ5YTRkZGM3Li41ZDdhYTQ4YTcxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0LmgKQEAgLTYxLDYgKzYxLDEwIEBAIHR5cGVkZWYgc3Ry
dWN0IF9HdGtDb250YWluZXIgR3RrQ29udGFpbmVyOwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRm
b3JtV2lkZ2V0OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCit0eXBlZGVmIHZvaWQqIFBs
YXRmb3JtV2lkZ2V0OworI2VuZGlmCisKIHR5cGVkZWYgUGxhdGZvcm1XaWRnZXQgUGxhdGZvcm1Q
YWdlQ2xpZW50OwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAKaW5kZXggNzkxYmZhMzk2MzYu
LjgxOTc1YjY0YTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9n
bGliL0F1ZGlvQnVzR0xpYi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
Z2xpYi9BdWRpb0J1c0dMaWIuY3BwCkBAIC0yNywxMSArMjcsMTcgQEAKICNpbmNsdWRlIDx3dGYv
Z2xpYi9HUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCisjaWYg
UExBVEZPUk0oR1RLKQorI2RlZmluZSBBVURJT19HUkVTT1VSQ0VfUEFUSCAiL29yZy93ZWJraXRn
dGsvcmVzb3VyY2VzL2F1ZGlvIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2RlZmluZSBBVURJT19H
UkVTT1VSQ0VfUEFUSCAiL29yZy93ZWJraXR3cGUvcmVzb3VyY2VzL2F1ZGlvIgorI2VuZGlmCisK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUGFzc1JlZlB0cjxBdWRpb0J1cz4gQXVkaW9CdXM6Omxv
YWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIG5hbWUsIGZsb2F0IHNhbXBsZVJhdGUpCiB7
Ci0gICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZigiL29yZy93ZWJraXRn
dGsvcmVzb3VyY2VzL2F1ZGlvLyVzIiwgbmFtZSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0
aChnX3N0cmR1cF9wcmludGYoQVVESU9fR1JFU09VUkNFX1BBVEggIi8lcyIsIG5hbWUpKTsKICAg
ICBHUmVmUHRyPEdCeXRlcz4gZGF0YSA9IGFkb3B0R1JlZihnX3Jlc291cmNlc19sb29rdXBfZGF0
YShwYXRoLmdldCgpLCBHX1JFU09VUkNFX0xPT0tVUF9GTEFHU19OT05FLCBudWxscHRyKSk7CiAg
ICAgQVNTRVJUKGRhdGEpOwogICAgIHJldHVybiBjcmVhdGVCdXNGcm9tSW5NZW1vcnlBdWRpb0Zp
bGUoZ19ieXRlc19nZXRfZGF0YShkYXRhLmdldCgpLCBudWxscHRyKSwgZ19ieXRlc19nZXRfc2l6
ZShkYXRhLmdldCgpKSwgZmFsc2UsIHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAppbmRleCA2ZmEzZWE3NzFmMy4uODNkMzJl
MTM4ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUds
aWIuY3BwCkBAIC0yMTMsNiArMjEzLDkgQEAgQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCkK
ICAgICBpZiAoIWNhY2hlZFBhdGguaXNOdWxsKCkpCiAgICAgICAgIHJldHVybiBjYWNoZWRQYXRo
OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGRhdGFQYXRoKGdf
YnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3cGUiLCBudWxscHRyKSk7CisjZWxpZiBQTEFURk9S
TShHVEspCiAjaWYgT1MoV0lORE9XUykKICAgICBITU9EVUxFIGhtb2R1bGUgPSAwOwogICAgIEdl
dE1vZHVsZUhhbmRsZUV4QShHRVRfTU9EVUxFX0hBTkRMRV9FWF9GTEFHX0ZST01fQUREUkVTUywg
cmVpbnRlcnByZXRfY2FzdDxjaGFyKj4oc2hhcmVkUmVzb3VyY2VzUGF0aCksICZobW9kdWxlKTsK
QEAgLTIyMiw2ICsyMjUsNyBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogI2Vsc2UK
ICAgICBHVW5pcXVlUHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElS
LCAid2Via2l0Z3RrLSIgV0VCS0lUR1RLX0FQSV9WRVJTSU9OX1NUUklORywgTlVMTCkpOwogI2Vu
ZGlmCisjZW5kaWYKIAogICAgIGNhY2hlZFBhdGggPSBkYXRhUGF0aC5nZXQoKTsKICAgICByZXR1
cm4gY2FjaGVkUGF0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0FOR0xFV2ViS2l0QnJpZGdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9BTkdMRVdlYktpdEJyaWRnZS5oCmluZGV4IDkxMTRlNzZjNzU5Li4yYWNjZmFkMTU5NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlk
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSA8T3BlbkdML2dsLmg+CiAjZWxpZiBQ
TEFURk9STShXSU4pCiAjaW5jbHVkZSAiT3BlbkdMRVNTaGltcy5oIgotI2VsaWYgUExBVEZPUk0o
R1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjaWYgVVNFKE9QRU5H
TF9FU18yKQogI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCmluZGV4IDcwZjU4NzM5MmY2Li5jMTVi
ZWM1ZTliMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRl
eHQuY3BwCkBAIC0xMjAsNyArMTIwLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dD4gR0xD
b250ZXh0OjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmIGRpc3AKICAgICB9
CiAjZW5kaWYKIAotI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpCisjaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkgfHwgUExBVEZPUk0oV1BFKQogICAgIGlmIChhdXRvIGVn
bENvbnRleHQgPSBHTENvbnRleHRFR0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KGRpc3BsYXkpKQog
ICAgICAgICByZXR1cm4gV1RGTW92ZShlZ2xDb250ZXh0KTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAppbmRleCAyYzBlYTI3ZTE5My4uMDQ2
OWViNTMzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4
dC5oCkBAIC0yNSw3ICsyNSwxMyBAQAogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgogCiAj
aWYgVVNFKEVHTCkgJiYgIVBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShXUEUpCisvLyBGSVhN
RTogRmluZCBzb21lIHdheSB0byBkZWR1Y2UgdGhpcy4KKyNkZWZpbmUgX19HQk1fXyAxCisjaW5j
bHVkZSA8RUdML2VnbHBsYXRmb3JtLmg+CisjZWxzZQogI2luY2x1ZGUgImVnbHBsYXRmb3JtLmgi
CisjZW5kaWYKIHR5cGVkZWYgRUdMTmF0aXZlV2luZG93VHlwZSBHTE5hdGl2ZVdpbmRvd1R5cGU7
CiAjZWxzZQogdHlwZWRlZiB1aW50NjRfdCBHTE5hdGl2ZVdpbmRvd1R5cGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaAppbmRl
eCA3ZDgwZDViNDViNC4uYjJiNzk1MjU0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaApAQCAtNjAsNyArNjAsNyBAQAog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xB
U1MgV2ViR0xMYXllcjsKLSNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOX0NBSVJP
KQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pIHx8IFBMQVRGT1JN
KFdQRSkKIHR5cGVkZWYgdW5zaWduZWQgaW50IEdMdWludDsKICNlbmRpZgogCkBAIC0xMzczLDcg
KzEzNzMsNyBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNoYWRlck5hbWVIYXNo
PiBuYW1lSGFzaE1hcEZvclNoYWRlcnM7CiAKLSNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAoKFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQogICAgIGZy
aWVuZCBjbGFzcyBFeHRlbnNpb25zM0RPcGVuR0xFUzsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RXh0
ZW5zaW9uczNET3BlbkdMRVM+IG1fZXh0ZW5zaW9uczsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKaW5kZXggYjRlOTUxNTcyMTcu
LmFiN2M2YjhmMzk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMRVNTaGltcy5oCkBAIC0yNiw3ICsyNiw3IEBACiAjaWZuZGVmIE9wZW5HTEVTU2hpbXNf
aAogI2RlZmluZSBPcGVuR0xFU1NoaW1zX2gKIAotI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV0lOKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIGdsQmluZEZyYW1lYnVmZmVyRVhUIGdsQmluZEZyYW1lYnVmZmVyCiAjZGVm
aW5lIGdsRnJhbWVidWZmZXJUZXh0dXJlMkRFWFQgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRAogI2Rl
ZmluZSBnbEJpbmRSZW5kZXJidWZmZXJFWFQgZ2xCaW5kUmVuZGVyYnVmZmVyCkBAIC00NSw2ICs0
NSw3IEBACiAjZGVmaW5lIGdsSXNGcmFtZWJ1ZmZlckVYVCBnbElzRnJhbWVidWZmZXIKICNkZWZp
bmUgZ2xHZW5lcmF0ZU1pcG1hcEVYVCBnbEdlbmVyYXRlTWlwbWFwCiAjZGVmaW5lIEdMX0RFUFRI
X0FUVEFDSE1FTlRfRVhUIEdMX0RFUFRIX0FUVEFDSE1FTlQKKyNkZWZpbmUgR0xfQ09MT1JfQVRU
QUNITUVOVDBfRVhUIEdMX0NPTE9SX0FUVEFDSE1FTlQwCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVS
X0NPTVBMRVRFX0VYVCBHTF9GUkFNRUJVRkZFUl9DT01QTEVURQogI2RlZmluZSBHTF9GUkFNRUJV
RkZFUl9FWFQgR0xfRlJBTUVCVUZGRVIKICNkZWZpbmUgR0xfREVQVEgyNF9TVEVOQ0lMOF9FWFQg
R0xfREVQVEgyNF9TVEVOQ0lMOF9PRVMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCmluZGV4IDY3ZWZiY2ViOGIzLi4xYjcxOTU0
ZjU1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZv
cm1EaXNwbGF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuY3BwCkBAIC00Miw2ICs0MiwxMCBAQAogI2luY2x1ZGUgIlBsYXRmb3JtRGlz
cGxheVdpbi5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZv
cm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICNpbmNsdWRlIDxn
ZGsvZ2RrLmg+CiAjZW5kaWYKQEAgLTEwMCw2ICsxMDQsMTAgQEAgc3RkOjp1bmlxdWVfcHRyPFBs
YXRmb3JtRGlzcGxheT4gUGxhdGZvcm1EaXNwbGF5OjpjcmVhdGVQbGF0Zm9ybURpc3BsYXkoKQog
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVgxMT4obnVsbHB0cik7
CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1
ZTxQbGF0Zm9ybURpc3BsYXlXUEU+KCk7CisjZW5kaWYKKwogICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAppbmRleCBmNzY0YzJkNDUxZi4uY2I1ZmEx
ZWYzMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRm
b3JtRGlzcGxheS5oCkBAIC01NCw2ICs1NCw5IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShXSU4p
CiAgICAgICAgIFdpbmRvd3MsCiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAgIFdQ
RSwKKyNlbmRpZgogICAgIH07CiAKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0ID0gMDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0wuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4
dEVHTC5jcHAKaW5kZXggMWMxY2VjMjZhY2YuLjlmZTc1NWZjNThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcApAQCAt
MjA0LDYgKzIwNCwxMyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRF
R0w6OmNyZWF0ZVNoYXJpbmdDb250ZXh0KFBsYXRmb3JtRGlzcGxheQogICAgIGlmIChlZ2xCaW5k
QVBJKGdFR0xBUElWZXJzaW9uKSA9PSBFR0xfRkFMU0UpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmIChwbGF0Zm9ybURpc3BsYXkudHlwZSgpID09
IFBsYXRmb3JtRGlzcGxheTo6VHlwZTo6V1BFKSB7CisgICAgICAgIGlmIChhdXRvIGNvbnRleHQg
PSBjcmVhdGVXUEVDb250ZXh0KHBsYXRmb3JtRGlzcGxheSkpCisgICAgICAgICAgICByZXR1cm4g
Y29udGV4dDsKKyAgICB9CisjZW5kaWYKKwogICAgIGF1dG8gY29udGV4dCA9IGNyZWF0ZVN1cmZh
Y2VsZXNzQ29udGV4dChwbGF0Zm9ybURpc3BsYXkpOwogICAgIGlmICghY29udGV4dCkgewogI2lm
IFBMQVRGT1JNKFgxMSkKQEAgLTI1MSw2ICsyNTgsOSBAQCBHTENvbnRleHRFR0w6On5HTENvbnRl
eHRFR0woKQogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAgICAgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBkZXN0cm95V1BFVGFyZ2V0KCk7Cisj
ZW5kaWYKIH0KIAogYm9vbCBHTENvbnRleHRFR0w6OmNhblJlbmRlclRvRGVmYXVsdEZyYW1lYnVm
ZmVyKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9H
TENvbnRleHRFR0wuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENv
bnRleHRFR0wuaAppbmRleCBlNWEzMzU5N2Q3Yi4uOWEwMzNmZWIyYjIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKQEAgLTMy
LDYgKzMyLDEwIEBACiBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdzsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKIHR5cGVk
ZWYgdm9pZCAqRUdMQ29uZmlnOwogdHlwZWRlZiB2b2lkICpFR0xDb250ZXh0OwogdHlwZWRlZiB2
b2lkICpFR0xEaXNwbGF5OwpAQCAtNzMsNiArNzcsOSBAQCBwcml2YXRlOgogICAgIEdMQ29udGV4
dEVHTChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0LCBFR0xTdXJmYWNlLCBXbFVuaXF1ZVB0
cjxzdHJ1Y3Qgd2xfc3VyZmFjZT4mJiwgc3RydWN0IHdsX2VnbF93aW5kb3cqKTsKICAgICB2b2lk
IGRlc3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAg
dm9pZCBkZXN0cm95V1BFVGFyZ2V0KCk7CisjZW5kaWYKIAogICAgIHN0YXRpYyBzdGQ6OnVuaXF1
ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXaW5kb3dDb250ZXh0KEdMTmF0aXZlV2luZG93VHlw
ZSwgUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIp
OwogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVQYnVmZmVy
Q29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVs
bHB0cik7CkBAIC04NSw2ICs5Miw5IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVl
X3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdheWxhbmRDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgRUdMU3Vy
ZmFjZSBjcmVhdGVXaW5kb3dTdXJmYWNlV2F5bGFuZChFR0xEaXNwbGF5LCBFR0xDb25maWcsIEdM
TmF0aXZlV2luZG93VHlwZSk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RhdGlj
IHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1E
aXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOworI2VuZGlmCiAK
ICAgICBzdGF0aWMgYm9vbCBnZXRFR0xDb25maWcoRUdMRGlzcGxheSwgRUdMQ29uZmlnKiwgRUdM
U3VyZmFjZVR5cGUpOwogCkBAIC05OCw2ICsxMDgsOSBAQCBwcml2YXRlOgogICAgIFdsVW5pcXVl
UHRyPHN0cnVjdCB3bF9zdXJmYWNlPiBtX3dsU3VyZmFjZTsKICAgICBzdHJ1Y3Qgd2xfZWdsX3dp
bmRvdyogbV93bFdpbmRvdyB7IG51bGxwdHIgfTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJn
ZXQ+IG1fd3BlVGFyZ2V0OworI2VuZGlmCiAjaWYgVVNFKENBSVJPKQogICAgIGNhaXJvX2Rldmlj
ZV90KiBtX2NhaXJvRGV2aWNlIHsgbnVsbHB0ciB9OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjNmNDJkNzY0MgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRl
eHRFR0xXUEUuY3BwCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNo
ZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBo
YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICog
IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZy
ZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisKKyNpZiBVU0UoRUdMKSAmJiBQ
TEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBHTENvbnRleHRF
R0w6OmNyZWF0ZVdQRUNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiBwbGF0Zm9ybURpc3BsYXksIEVH
TENvbnRleHQgc2hhcmluZ0NvbnRleHQpCit7CisgICAgYXV0byBvZmZzY3JlZW5UYXJnZXQgPSBk
b3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMT2Zm
c2NyZWVuVGFyZ2V0KCk7CisgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlV2luZG93Q29udGV4dChv
ZmZzY3JlZW5UYXJnZXQtPm5hdGl2ZVdpbmRvdygpLCBwbGF0Zm9ybURpc3BsYXksIHNoYXJpbmdD
b250ZXh0KTsKKyAgICBpZiAoY29udGV4dCkKKyAgICAgICAgY29udGV4dC0+bV93cGVUYXJnZXQg
PSBXVEZNb3ZlKG9mZnNjcmVlblRhcmdldCk7CisgICAgcmV0dXJuIGNvbnRleHQ7Cit9CisKK3Zv
aWQgR0xDb250ZXh0RUdMOjpkZXN0cm95V1BFVGFyZ2V0KCkKK3sKKyAgICBtX3dwZVRhcmdldCA9
IG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFVTRShF
R0wpICYmIFBMQVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXJCYXNlLmNwcAppbmRleCAyYmYxMWVhMWJkNy4uMjkxNzM0MzZmYmYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9NZWRp
YVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKQEAgLTU5LDcgKzU5LDkgQEAKICNlbmRpZgogCiAjaWYgVVNFKEVHTCkKKyNpZiAhUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgIkdMQ29udGV4dEVHTC5oIgorI2VuZGlmCiAjaW5jbHVkZSA8Z3N0
L2dsL2VnbC9nc3RnbGRpc3BsYXlfZWdsLmg+CiAjZW5kaWYKIApAQCAtNjksNiArNzEsOCBAQAog
CiAjaWYgUExBVEZPUk0oV0FZTEFORCkKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXYXlsYW5k
LmgiCisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgi
CiAjZW5kaWYKIAogLy8gZ3N0Z2xhcGkuaCBtYXkgaW5jbHVkZSBlZ2xwbGF0Zm9ybS5oIGFuZCBp
dCBpbmNsdWRlcyBYLmgsIHdoaWNoCkBAIC00MzksNiArNDQzLDExIEBAIGJvb2wgTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZTo6ZW5zdXJlR3N0R0xDb250ZXh0KCkKICAgICAgICAgICAg
IG1fZ2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVkoZ3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRo
X2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdheWxhbmQ+KHNoYXJlZERpc3Bs
YXkpLmVnbERpc3BsYXkoKSkpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgICAg
IEFTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpKTsKKyAgICAgICAg
bV9nbERpc3BsYXkgPSBHU1RfR0xfRElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhf
ZWdsX2Rpc3BsYXkoZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihzaGFyZWREaXNwbGF5KS5l
Z2xEaXNwbGF5KCkpKTsKKyNlbmRpZgorCiAgICAgICAgIEFTU0VSVChtX2dsRGlzcGxheSk7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVu
Z2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApp
bmRleCBjN2EwZWM3ZjI1Mi4uMTI2NWUwMDFkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcApAQCAtMjM2LDYgKzIzNiw5IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0M0Q6OnByZXBhcmVUZXh0dXJlKCkKICAgICAgICAgcmVzb2x2ZU11bHRpc2FtcGxp
bmdJZk5lY2Vzc2FyeSgpOwogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVE
KQorI2lmIFVTRShPUEVOR0xfRVNfMikKKyAgICA6OmdsRmx1c2goKTsKKyNlbmRpZgogICAgIHN0
ZDo6c3dhcChtX3RleHR1cmUsIG1fY29tcG9zaXRvclRleHR1cmUpOwogICAgIHN0ZDo6c3dhcCht
X3RleHR1cmUsIG1faW50ZXJtZWRpYXRlVGV4dHVyZSk7CiAgICAgOjpnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgbV9mYm8pOwpAQCAtMzk4LDcgKzQwMSw3IEBAIGJvb2wgR3JhcGhp
Y3NDb250ZXh0M0Q6OmNoZWNrVmFyeWluZ3NQYWNraW5nKFBsYXRmb3JtM0RPYmplY3QgdmVydGV4
U2hhZGVyLCBQbGF0CiAgICAgICAgIHZhcmlhYmxlcy5wdXNoX2JhY2sodmFyeWluZ1N5bWJvbCk7
CiAKICAgICBHQzNEaW50IG1heFZhcnlpbmdWZWN0b3JzID0gMDsKLSNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykpICYmIFVTRShPUEVOR0xfRVNf
MikpCisjaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgR0MzRGludCBt
YXhWYXJ5aW5nRmxvYXRzID0gMDsKICAgICA6OmdsR2V0SW50ZWdlcnYoR0xfTUFYX1ZBUllJTkdf
RkxPQVRTLCAmbWF4VmFyeWluZ0Zsb2F0cyk7CiAgICAgbWF4VmFyeWluZ1ZlY3RvcnMgPSBtYXhW
YXJ5aW5nRmxvYXRzIC8gNDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3dwZS9JY29uV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9JY29uV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDNjMzdiZGY4YWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy93cGUvSWNvbldQRS5jcHAKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiSWNvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0ljb246On5JY29uKCkK
K3sKK30KKwordm9pZCBJY29uOjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmKQoreworfQorCitSZWZQdHI8SWNvbj4gSWNvbjo6Y3JlYXRlSWNvbkZvckZpbGVzKGNvbnN0
IFZlY3RvcjxTdHJpbmc+JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd3BlL0ltYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVh
YTMwYTg1NjZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJCaXRtYXBJbWFnZS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgQml0bWFwSW1hZ2U6OmludmFsaWRhdGVQbGF0Zm9ybURhdGEoKQor
eworfQorCitQYXNzUmVmUHRyPEltYWdlPiBJbWFnZTo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogcmVzb3VyY2UpCit7CisgICAgc3RkOjpmcHJpbnRmKHN0ZGVyciwgIldBUk5JTkc6
IHRyeWluZyB0byBsb2FkIHBsYXRmb3JtIHJlc291cmNlICclcydcbiIsIHJlc291cmNlKTsKKyAg
ICByZXR1cm4gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxh
dGZvcm1EaXNwbGF5V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi40ZDViYjFkMWY0MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwCkBAIC0wLDAgKzEsMTM0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCisjaWYgUExB
VEZPUk0oV1BFKQorCisjaW5jbHVkZSAiR0xDb250ZXh0RUdMLmgiCisjaW5jbHVkZSAiSW50U2l6
ZS5oIgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItYmFja2Vu
ZC1lZ2wuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybURpc3BsYXlXUEU6OlBs
YXRmb3JtRGlzcGxheVdQRSgpID0gZGVmYXVsdDsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjp+UGxh
dGZvcm1EaXNwbGF5V1BFKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZGVzdHJv
eShtX2JhY2tlbmQpOworfQorCit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6aW5pdGlhbGl6ZShp
bnQgaG9zdEZkKQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9j
cmVhdGUoaG9zdEZkKTsKKworICAgIG1fZWdsRGlzcGxheSA9IGVnbEdldERpc3BsYXkod3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX2dldF9uYXRpdmVfZGlzcGxheShtX2JhY2tlbmQpKTsKKyAgICBp
ZiAobV9lZ2xEaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiUGxhdGZvcm1EaXNwbGF5V1BFOiBjb3VsZCBub3QgY3JlYXRlIHRoZSBFR0wgZGlzcGxh
eS5cbiIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUGxhdGZvcm1EaXNwbGF5Ojpp
bml0aWFsaXplRUdMRGlzcGxheSgpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNw
bGF5V1BFOjpFR0xUYXJnZXQ+IFBsYXRmb3JtRGlzcGxheVdQRTo6Y3JlYXRlRUdMVGFyZ2V0KEVH
TFRhcmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCit7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8RUdMVGFyZ2V0PigqdGhpcywgY2xpZW50LCBob3N0RmQpOworfQorCitzdGQ6
OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ+IFBsYXRm
b3JtRGlzcGxheVdQRTo6Y3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICByZXR1cm4g
c3RkOjptYWtlX3VuaXF1ZTxFR0xPZmZzY3JlZW5UYXJnZXQ+KCp0aGlzKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkVHTFRhcmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlX
UEUmIGRpc3BsYXksIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKKyAgICA6IG1fZGlzcGxheShkaXNwbGF5KQorICAgICwgbV9jbGllbnQo
Y2xpZW50KQoreworICAgIG1fYmFja2VuZCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJn
ZXRfY3JlYXRlKGhvc3RGZCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNr
ZW5kX2VnbF90YXJnZXRfY2xpZW50IHNfY2xpZW50ID0geworICAgICAgICAvLyBmcmFtZV9jb21w
bGV0ZQorICAgICAgICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRv
JiBzdXJmYWNlID0gKnJlaW50ZXJwcmV0X2Nhc3Q8RUdMVGFyZ2V0Kj4oZGF0YSk7CisgICAgICAg
ICAgICBzdXJmYWNlLm1fY2xpZW50LmZyYW1lQ29tcGxldGUoKTsKKyAgICAgICAgfSwKKyAgICB9
OworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfc2V0X2NsaWVudChtX2JhY2tl
bmQsICZzX2NsaWVudCwgdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0
Ojp+RUdMVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2Rl
c3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6aW5pdGlhbGl6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9yZW5kZXJlcl9i
YWNrZW5kX2VnbF90YXJnZXRfaW5pdGlhbGl6ZShtX2JhY2tlbmQsIG1fZGlzcGxheS5tX2JhY2tl
bmQsCisgICAgICAgIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUu
aGVpZ2h0KCkpKTsKK30KKworRUdMTmF0aXZlV2luZG93VHlwZSBQbGF0Zm9ybURpc3BsYXlXUEU6
OkVHTFRhcmdldDo6bmF0aXZlV2luZG93KCkgY29uc3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRvdyhtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpyZXNpemUoY29uc3QgSW50U2l6
ZSYgc2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X3Jlc2l6ZSht
X2JhY2tlbmQsIHN0ZDo6bWF4KDAsIHNpemUud2lkdGgoKSksIHN0ZDo6bWF4KDAsIHNpemUuaGVp
Z2h0KCkpKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVX
aWxsUmVuZGVyKCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1l
X3dpbGxfcmVuZGVyKG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5V1BFOjpF
R0xUYXJnZXQ6OmZyYW1lUmVuZGVyZWQoKQoreworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF90YXJnZXRfZnJhbWVfcmVuZGVyZWQobV9iYWNrZW5kKTsKK30KKworUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6OkVHTE9mZnNjcmVlblRhcmdldChjb25zdCBQbGF0Zm9y
bURpc3BsYXlXUEUmIGRpc3BsYXkpCit7CisgICAgbV90YXJnZXQgPSB3cGVfcmVuZGVyZXJfYmFj
a2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9jcmVhdGUoKTsKKyAgICB3cGVfcmVuZGVyZXJfYmFj
a2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9pbml0aWFsaXplKG1fdGFyZ2V0LCBkaXNwbGF5Lm1f
YmFja2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0Ojp+
RUdMT2Zmc2NyZWVuVGFyZ2V0KCkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zm
c2NyZWVuX3RhcmdldF9kZXN0cm95KG1fdGFyZ2V0KTsKK30KKworRUdMTmF0aXZlV2luZG93VHlw
ZSBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6bmF0aXZlV2luZG93KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90
YXJnZXRfZ2V0X25hdGl2ZV93aW5kb3cobV90YXJnZXQpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCisKKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNmOGNmZDk5OGQ3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlz
cGxheVdQRS5oCkBAIC0wLDAgKzEsMTAyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQbGF0Zm9ybURpc3BsYXlXUEVfaAorI2RlZmluZSBQ
bGF0Zm9ybURpc3BsYXlXUEVfaAorCisjaWYgUExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5LmgiCisKKyNkZWZpbmUgX19HQk1fXyAxCisjaW5jbHVkZSA8RUdML2VnbHBs
YXRmb3JtLmg+CisKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2w7CitzdHJ1Y3Qgd3Bl
X3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2Vu
ZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBH
TENvbnRleHQ7CitjbGFzcyBJbnRTaXplOworCitjbGFzcyBQbGF0Zm9ybURpc3BsYXlXUEUgZmlu
YWwgOiBwdWJsaWMgUGxhdGZvcm1EaXNwbGF5IHsKK3B1YmxpYzoKKyAgICBQbGF0Zm9ybURpc3Bs
YXlXUEUoKTsKKyAgICB2aXJ0dWFsIH5QbGF0Zm9ybURpc3BsYXlXUEUoKTsKKworICAgIHZvaWQg
aW5pdGlhbGl6ZShpbnQpOworCisgICAgY2xhc3MgRUdMVGFyZ2V0IHsKKyAgICBwdWJsaWM6Cisg
ICAgICAgIGNsYXNzIENsaWVudCB7CisgICAgICAgIHB1YmxpYzoKKyAgICAgICAgICAgIHZpcnR1
YWwgdm9pZCBmcmFtZUNvbXBsZXRlKCkgPSAwOworICAgICAgICB9OworCisgICAgICAgIEVHTFRh
cmdldChjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmLCBDbGllbnQmLCBpbnQpOworICAgICAgICB+
RUdMVGFyZ2V0KCk7CisKKyAgICAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IEludFNpemUmKTsK
KyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlwZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAg
ICAgICB2b2lkIHJlc2l6ZShjb25zdCBJbnRTaXplJik7CisKKyAgICAgICAgdm9pZCBmcmFtZVdp
bGxSZW5kZXIoKTsKKyAgICAgICAgdm9pZCBmcmFtZVJlbmRlcmVkKCk7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBjb25zdCBQbGF0Zm9ybURpc3BsYXlXUEUmIG1fZGlzcGxheTsKKyAgICAgICAg
Q2xpZW50JiBtX2NsaWVudDsKKyAgICAgICAgc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2Vn
bF90YXJnZXQqIG1fYmFja2VuZDsKKyAgICB9OworCisgICAgY2xhc3MgRUdMT2Zmc2NyZWVuVGFy
Z2V0IHsKKyAgICBwdWJsaWM6CisgICAgICAgIEVHTE9mZnNjcmVlblRhcmdldChjb25zdCBQbGF0
Zm9ybURpc3BsYXlXUEUmKTsKKyAgICAgICAgfkVHTE9mZnNjcmVlblRhcmdldCgpOworCisgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGUgbmF0aXZlV2luZG93KCkgY29uc3Q7CisKKyAgICBwcml2
YXRlOgorICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90
YXJnZXQqIG1fdGFyZ2V0OworICAgIH07CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8RUdMVGFyZ2V0
PiBjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmLCBpbnQpOworICAgIHN0ZDo6dW5p
cXVlX3B0cjxFR0xPZmZzY3JlZW5UYXJnZXQ+IGNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpOwor
Citwcml2YXRlOgorICAgIFR5cGUgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFBsYXRm
b3JtRGlzcGxheTo6VHlwZTo6V1BFOyB9CisKKyAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tl
bmRfZWdsKiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfUExBVEZPUk1fRElTUExBWShQbGF0Zm9ybURpc3BsYXlXUEUsIFdQ
RSkKKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKworI2VuZGlmIC8vIFBsYXRmb3JtRGlzcGxh
eVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BF
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNGRjOTU1ZjkzMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkN1cnNvci5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK3ZvaWQgQ3Vyc29yOjplbnN1cmVQbGF0Zm9ybUN1cnNvcigpIGNvbnN0Cit7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Mb2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODc1ZDdmYzUyYjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKQEAgLTAsMCArMSw1
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorCisjaW5j
bHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFN0
cmluZzo6ZnJvbVVURjgoIl9TZWFyY2ggdGhlIFdlYiIpOworfQorCitTdHJpbmcgdW5hY2NlcHRh
YmxlVExTQ2VydGlmaWNhdGUoKQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KCJVbmFj
Y2VwdGFibGUgVExTIGNlcnRpZmljYXRlIik7Cit9CisKK1N0cmluZyBsb2NhbGl6ZWRTdHJpbmco
Y29uc3QgY2hhcioga2V5KQoreworICAgIHJldHVybiBTdHJpbmc6OmZyb21VVEY4KGtleSwgc3Ry
bGVuKGtleSkpOworfQorCisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9QYXN0ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0
ZWJvYXJkV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMmM3
ODAwODNmZDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGFzdGVib2FyZC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlICJQYXN0ZWJvYXJkU3RyYXRlZ3kuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVib2Fy
ZD4gUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkKK3sKKyAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigpOworfQorCitzdGQ6OnVuaXF1ZV9wdHI8UGFzdGVi
b2FyZD4gUGFzdGVib2FyZDo6Y3JlYXRlUHJpdmF0ZSgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFr
ZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKK30KKworUGFzdGVib2FyZDo6UGFzdGVib2FyZCgpCit7
Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6aGFzRGF0YSgpCit7CisgICAgLy8gRklYTUU6IEdldHRp
bmcgdGhlIGxpc3Qgb2YgdHlwZXMgZm9yIHRoaXMgaXMgd2FzdGVmdWwuIERvIHRoaXMgaW4gdGhl
IFVJIHByb2Nlc3MuCisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7CisgICAgcmV0
dXJuICF0eXBlcy5pc0VtcHR5KCk7Cit9CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnR5
cGVzKCkKK3sKKyAgICBWZWN0b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4g
dHlwZXM7Cit9CisKK1N0cmluZyBQYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGNvbnN0IFN0cmluZyYg
dHlwZSkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJh
dGVneSgpLT5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoMCwgdHlwZSk7Cit9CisKK3ZvaWQgUGFz
dGVib2FyZDo6d3JpdGVTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHRl
eHQpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCh0eXBlLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpjbGVh
cigpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6Y2xlYXIoY29uc3QgU3RyaW5nJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRQbGFpblRleHQmIHRleHQpCit7Cisg
ICAgdGV4dC50ZXh0ID0gcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgp
LT5yZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoMCwgInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIp
OworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZFdlYkNvbnRlbnRSZWFkZXIm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUo
Y29uc3QgUGFzdGVib2FyZFVSTCYgdXJsKQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5w
YXN0ZWJvYXJkU3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQoInRleHQvcGxhaW47Y2hhcnNl
dD11dGYtOCIsIHVybC51cmwuc3RyaW5nKCkpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
VHJ1c3R3b3J0aHlXZWJVUkxzUGJvYXJkVHlwZShjb25zdCBQYXN0ZWJvYXJkVVJMJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBh
c3RlYm9hcmRJbWFnZSYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFz
dGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PnBhc3RlYm9hcmRTdHJhdGVneSgpLT53cml0ZVRvUGFzdGVib2FyZChjb250ZW50KTsKK30KKwor
VmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6cmVhZEZpbGVuYW1lcygpCit7CisgICAgcmV0dXJu
IFZlY3RvcjxTdHJpbmc+KCk7Cit9CisKK2Jvb2wgUGFzdGVib2FyZDo6Y2FuU21hcnRSZXBsYWNl
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVNYXJr
dXAoY29uc3QgU3RyaW5nJikKK3sKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBsYWluVGV4
dChjb25zdCBTdHJpbmcmIHRleHQsIFNtYXJ0UmVwbGFjZU9wdGlvbikKK3sKKyAgICB3cml0ZVN0
cmluZygidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVi
b2FyZDo6d3JpdGVQYXN0ZWJvYXJkKGNvbnN0IFBhc3RlYm9hcmQmKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mYTRmMzhlMTFmMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEs
NTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgor
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6ZGlzYW1iaWd1YXRlS2V5RG93bkV2ZW50KFR5cGUg
dHlwZSwgYm9vbCBiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQoreworICAgIEFTU0VSVChtX3R5cGUg
PT0gS2V5RG93bik7CisgICAgbV90eXBlID0gdHlwZTsKKyAgICBpZiAoYmFja3dhcmRzQ29tcGF0
aWJpbGl0eSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHR5cGUgPT0gUGxhdGZvcm1FdmVu
dDo6UmF3S2V5RG93bikgeworICAgICAgICBtX3RleHQgPSBTdHJpbmcoKTsKKyAgICAgICAgbV91
bm1vZGlmaWVkVGV4dCA9IFN0cmluZygpOworICAgIH0gZWxzZSB7CisgICAgICAgIG1fa2V5SWRl
bnRpZmllciA9IFN0cmluZygpOworICAgICAgICBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9IDA7
CisgICAgfQorfQorCitib29sIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Y3VycmVudENhcHNMb2Nr
U3RhdGUoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OmdldEN1cnJlbnRNb2RpZmllclN0YXRlKGJvb2wmLCBib29sJiwgYm9vbCYsIGJvb2wm
KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjQzNDZhMDIwYgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwCkBA
IC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVBhc3RlYm9hcmQuaCIKKyNpbmNsdWRlIDx3cGUvcGFzdGVib2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisKKyNpbmNsdWRlIDxtYXA+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUGxh
dGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5nJikKKyAgICA6
IG1fcGFzdGVib2FyZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9uKCkpCit7CisgICAgQVNT
RVJUKG1fcGFzdGVib2FyZCk7Cit9CisKK1BsYXRmb3JtUGFzdGVib2FyZDo6UGxhdGZvcm1QYXN0
ZWJvYXJkKCkKKyAgICA6IG1fcGFzdGVib2FyZCh3cGVfcGFzdGVib2FyZF9nZXRfc2luZ2xldG9u
KCkpCit7CisgICAgQVNTRVJUKG1fcGFzdGVib2FyZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1QYXN0
ZWJvYXJkOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7CisgICAgc3RydWN0IHdw
ZV9wYXN0ZWJvYXJkX3N0cmluZ192ZWN0b3IgcGFzdGVib2FyZFR5cGVzID0geyBudWxscHRyLCAw
IH07CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3R5cGVzKG1fcGFzdGVib2FyZCwgJnBhc3RlYm9h
cmRUeXBlcyk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgcGFzdGVib2FyZFR5cGVz
Lmxlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8mIHR5cGVTdHJpbmcgPSBwYXN0ZWJvYXJkVHlw
ZXMuc3RyaW5nc1tpXTsKKyAgICAgICAgdHlwZXMuYXBwZW5kKFN0cmluZyh0eXBlU3RyaW5nLmRh
dGEsIHR5cGVTdHJpbmcubGVuZ3RoKSk7CisgICAgfQorCisgICAgd3BlX3Bhc3RlYm9hcmRfc3Ry
aW5nX3ZlY3Rvcl9mcmVlKCZwYXN0ZWJvYXJkVHlwZXMpOworfQorCitTdHJpbmcgUGxhdGZvcm1Q
YXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGludCwgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHN0
cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmcgc3RyaW5nOworICAgIHdwZV9wYXN0ZWJvYXJkX2dl
dF9zdHJpbmcobV9wYXN0ZWJvYXJkLCB0eXBlLnV0ZjgoKS5kYXRhKCksICZzdHJpbmcpOworCisg
ICAgU3RyaW5nIHJldHVyblZhbHVlKHN0cmluZy5kYXRhLCBzdHJpbmcubGVuZ3RoKTsKKworICAg
IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZzdHJpbmcpOworICAgIHJldHVybiByZXR1cm5W
YWx1ZTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9h
cmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIHN0YXRpYyBjb25zdCBjaGFyIHBsYWluVGV4
dFtdID0gInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIg
aHRtbFRleHRbXSA9ICJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCI7CisKKyAgICBDU3RyaW5nIHRl
eHRTdHJpbmcgPSBjb250ZW50LnRleHQudXRmOCgpOworICAgIENTdHJpbmcgbWFya3VwU3RyaW5n
ID0gY29udGVudC5tYXJrdXAudXRmOCgpOworCisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZ19wYWlyIHBhaXJzW10gPSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0
ciwgMCB9IH0sCisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9IH0sCisg
ICAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0udHlw
ZSwgcGxhaW5UZXh0LCBzdHJsZW4ocGxhaW5UZXh0KSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3Ry
aW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnN0cmluZywgdGV4dFN0cmluZy5kYXRhKCksIHRleHRT
dHJpbmcubGVuZ3RoKCkpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZw
YWlyc1sxXS50eXBlLCBodG1sVGV4dCwgc3RybGVuKGh0bWxUZXh0KSk7CisgICAgd3BlX3Bhc3Rl
Ym9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnN0cmluZywgbWFya3VwU3RyaW5nLmRh
dGEoKSwgbWFya3VwU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX21hcCBtYXAgPSB7IHBhaXJzLCAyIH07CisKKyAgICB3cGVfcGFzdGVib2FyZF93cml0
ZShtX3Bhc3RlYm9hcmQsICZtYXApOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUo
JnBhaXJzWzBdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sw
XS5zdHJpbmcpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS50eXBl
KTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMV0uc3RyaW5nKTsKK30K
Kwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFN0cmluZyYgdHlwZSwgY29u
c3QgU3RyaW5nJiBzdHJpbmcpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19w
YWlyIHBhaXJzW10gPSB7CisgICAgICAgIHsgeyBudWxscHRyLCAwIH0sIHsgbnVsbHB0ciwgMCB9
IH0sCisgICAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0udHlwZSwgdHlwZS51dGY4KCkuZGF0YSgpLCB0eXBlLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzBdLnN0cmluZywgc3RyaW5n
LnV0ZjgoKS5kYXRhKCksIHN0cmluZy51dGY4KCkubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVf
cGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDEgfTsKKworICAgIHdwZV9wYXN0
ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2Zy
ZWUoJnBhaXJzWzBdLnN0cmluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3JlZW5XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMDhlYjdkZThjOQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5j
cHAKQEAgLTAsMCArMSw3NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TY3Jl
ZW4uaCIKKworI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworaW50IHNjcmVlbkRlcHRoKFdpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMjQ7Cit9CisKK2ludCBzY3JlZW5E
ZXB0aFBlckNvbXBvbmVudChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDg7Cit9CisKK2Jvb2wgc2NyZWVuSXNNb25vY2hyb21lKFdpZGdldCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgc2NyZWVuSGFz
SW52ZXJ0ZWRDb2xvcnMoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworRmxvYXRSZWN0IHNj
cmVlblJlY3QoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBG
bG9hdFJlY3QoMCwgMCwgMTAyNCwgNjQwKTsKK30KKworRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJs
ZVJlY3QoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBGbG9h
dFJlY3QoMCwgMCwgMTAyNCwgNjQwKTsKK30KKworYm9vbCBzY3JlZW5TdXBwb3J0c0V4dGVuZGVk
Q29sb3IoV2lkZ2V0KikKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJU
aGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hOTA3NTczNGU4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVt
ZVdQRS5jcHAKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVuZGVy
VGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIlVzZXJBZ2VudFNjcmlwdHMuaCIKKyNpbmNsdWRlICJV
c2VyQWdlbnRTdHlsZVNoZWV0cy5oIgorI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5j
bHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K1JlZjxSZW5kZXJUaGVtZT4gUmVuZGVyVGhlbWU6OnRoZW1lRm9yUGFnZShQYWdlKikKK3sKKyAg
ICBzdGF0aWMgUmVuZGVyVGhlbWUmIHRoZW1lID0gUmVuZGVyVGhlbWVXUEU6OmNyZWF0ZSgpLmxl
YWtSZWYoKTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK3ZvaWQgUmVuZGVyVGhlbWVXUEU6OnVw
ZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURl
c2NyaXB0aW9uJikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcg
UmVuZGVyVGhlbWVXUEU6OmV4dHJhRGVmYXVsdFN0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBT
dHJpbmcoKTsKK30KKworI2lmIEVOQUJMRShWSURFTykKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6
bWVkaWFDb250cm9sc1N0eWxlU2hlZXQoKQoreworICAgIHJldHVybiBBU0NJSUxpdGVyYWwobWVk
aWFDb250cm9sc0Jhc2VVc2VyQWdlbnRTdHlsZVNoZWV0KTsKK30KKworU3RyaW5nIFJlbmRlclRo
ZW1lV1BFOjptZWRpYUNvbnRyb2xzU2NyaXB0KCkKK3sKKyAgICBTdHJpbmdCdWlsZGVyIHNjcmlw
dEJ1aWxkZXI7CisgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0xvY2FsaXpl
ZFN0cmluZ3NKYXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0xvY2FsaXplZFN0cmluZ3NK
YXZhU2NyaXB0KSk7CisgICAgc2NyaXB0QnVpbGRlci5hcHBlbmQobWVkaWFDb250cm9sc0Jhc2VK
YXZhU2NyaXB0LCBzaXplb2YobWVkaWFDb250cm9sc0Jhc2VKYXZhU2NyaXB0KSk7CisgICAgcmV0
dXJuIHNjcmlwdEJ1aWxkZXIudG9TdHJpbmcoKTsKK30KKyNlbmRpZgorfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTIyYTA4OTc4MDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUu
aApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgUmVuZGVyVGhlbWVXUEVfaAorI2RlZmluZSBSZW5kZXJUaGVt
ZVdQRV9oCisKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgorI2luY2x1ZGUgPHd0Zi9QYXNzUmVm
UHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVyVGhlbWVXUEUgZmlu
YWwgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVibGljOgorICAgIHN0YXRpYyBSZWY8UmVuZGVy
VGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZW5k
ZXJUaGVtZVdQRSk7CisgICAgfQorCisgICAgdmlydHVhbCBTdHJpbmcgZXh0cmFEZWZhdWx0U3R5
bGVTaGVldCgpIG92ZXJyaWRlOworI2lmIEVOQUJMRShWSURFTykKKyAgICB2aXJ0dWFsIFN0cmlu
ZyBtZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3RyaW5n
IG1lZGlhQ29udHJvbHNTY3JpcHQoKSBvdmVycmlkZTsKKyNlbmRpZgorCitwcml2YXRlOgorICAg
IFJlbmRlclRoZW1lV1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflJlbmRlclRoZW1lV1BF
KCkgPSBkZWZhdWx0OworCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUNhY2hlZFN5c3RlbUZvbnRE
ZXNjcmlwdGlvbihDU1NWYWx1ZUlELCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJikgY29uc3Qgb3Zl
cnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBSZW5kZXJU
aGVtZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xs
YmFyVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRo
ZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGY5ZmU1
ZDRkODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Ny
b2xsYmFyVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsNjkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlNjcm9sbGJhclRoZW1lV1BFLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgU2Nyb2xsYmFyVGhlbWVXUEU6Omhhc0J1dHRv
bnMoU2Nyb2xsYmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVl
OworfQorCitib29sIFNjcm9sbGJhclRoZW1lV1BFOjpoYXNUaHVtYihTY3JvbGxiYXImKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK0ludFJlY3QgU2Ny
b2xsYmFyVGhlbWVXUEU6OmJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQs
IGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOwor
fQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpmb3J3YXJkQnV0dG9uUmVjdChTY3JvbGxi
YXImLCBTY3JvbGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIEludFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6dHJhY2tS
ZWN0KFNjcm9sbGJhciYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gSW50UmVjdCgpOworfQorCitTY3JvbGxiYXJUaGVtZSYgU2Nyb2xsYmFyVGhlbWU6Om5hdGl2
ZVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgU2Nyb2xsYmFyVGhlbWVXUEUgdGhlbWU7CisgICAgcmV0
dXJuIHRoZW1lOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi40ZDhiMDMxNjg2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBTY3JvbGxiYXJUaGVtZVdQRV9oCisjZGVmaW5lIFNjcm9sbGJhclRoZW1lV1BFX2gKKwor
I2luY2x1ZGUgIlNjcm9sbGJhclRoZW1lQ29tcG9zaXRlLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworY2xhc3MgU2Nyb2xsYmFyVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMgU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUgeworcHVibGljOgorICAgIFNjcm9sbGJhclRoZW1lV1BFKCkgPSBkZWZhdWx0
OworICAgIHZpcnR1YWwgflNjcm9sbGJhclRoZW1lV1BFKCkgPSBkZWZhdWx0OworCisgICAgdmly
dHVhbCBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGhhc1RodW1iKFNjcm9sbGJhciYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBJbnRSZWN0
IGJhY2tCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcg
PSBmYWxzZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0
KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCBJbnRSZWN0IHRyYWNrUmVjdChTY3JvbGxiYXImLCBib29sIHBhaW50
aW5nID0gZmFsc2UpIG92ZXJyaWRlOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gU2Nyb2xsYmFyVGhlbWVXUEVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9T
b3VuZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5MTQ3
N2E0NTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Nv
dW5kV1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTb3Vu
ZC5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit2b2lkIHN5c3RlbUJlZXAoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9UaGVtZVdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWFkOTc3M2Q4NAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5j
cHAKQEAgLTAsMCArMSwxNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRoZW1lV1BFLmgi
CisKKyNpbmNsdWRlICJDb2xvci5oIgorI2luY2x1ZGUgIkZsb2F0Um91bmRlZFJlY3QuaCIKKyNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitUaGVtZSogcGxhdGZvcm1UaGVtZSgpCit7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFRoZW1lV1BFPiB0aGVtZTsKKyAgICByZXR1cm4gJnRo
ZW1lLmdldCgpOworfQorCitMZW5ndGhTaXplIFRoZW1lV1BFOjpjb250cm9sU2l6ZShDb250cm9s
UGFydCBwYXJ0LCBjb25zdCBGb250Q2FzY2FkZSYgZm9udENhc2NhZGUsIGNvbnN0IExlbmd0aFNp
emUmIHpvb21lZFNpemUsIGZsb2F0IHpvb21GYWN0b3IpIGNvbnN0Cit7CisgICAgaWYgKCF6b29t
ZWRTaXplLndpZHRoLmlzSW50cmluc2ljT3JBdXRvKCkgJiYgIXpvb21lZFNpemUuaGVpZ2h0Lmlz
SW50cmluc2ljT3JBdXRvKCkpCisgICAgICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFy
dCwgZm9udENhc2NhZGUsIHpvb21lZFNpemUsIHpvb21GYWN0b3IpOworCisgICAgc3dpdGNoIChw
YXJ0KSB7CisgICAgY2FzZSBDaGVja2JveFBhcnQ6CisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAg
ICAgIHJldHVybiBMZW5ndGhTaXplIHsgTGVuZ3RoKDEyLCBGaXhlZCksIExlbmd0aCgxMiwgRml4
ZWQpIH07CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJu
IFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVkU2l6ZSwgem9vbUZh
Y3Rvcik7Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50KENvbnRyb2xQYXJ0IHBhcnQsIENvbnRy
b2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJl
Y3QmIHpvb21lZFJlY3QsIGZsb2F0IHpvb21GYWN0b3IsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxv
YXQpCit7CisgICAgc3dpdGNoIChwYXJ0KSB7CisgICAgY2FzZSBDaGVja2JveFBhcnQ6CisgICAg
ICAgIHBhaW50Q2hlY2tib3goc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9y
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBSYWRpb1BhcnQ6CisgICAgICAgIHBhaW50UmFk
aW8oc3RhdGVzLCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBQdXNoQnV0dG9uUGFydDoKKyAgICAgICAgcGFpbnRCdXR0b24oc3RhdGVz
LCBjb250ZXh0LCB6b29tZWRSZWN0LCB6b29tRmFjdG9yKTsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWlu
dENoZWNrYm94KENvbnRyb2xTdGF0ZXMmIHN0YXRlcywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3QsIGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3Ju
ZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVjdCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBj
b3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIpOworICAgIFBhdGggcGF0aDsKKyAgICBwYXRo
LmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsKKworICAgIGNvbnRleHQuc2V0RmlsbENvbG9y
KG1ha2VSR0IoMjI0LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisK
KyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNldFN0cm9r
ZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0aChwYXRo
KTsKKworICAgIGlmIChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpDaGVja2VkU3Rh
dGUpIHsKKyAgICAgICAgYXV0byYgcmVjdCA9IHJvdW5kZWRSZWN0LnJlY3QoKTsKKworICAgICAg
ICBQYXRoIGNoZWNrZXJQYXRoOworICAgICAgICBjaGVja2VyUGF0aC5tb3ZlVG8oRmxvYXRQb2lu
dChyZWN0LngoKSArIDMsIHJlY3QubWF4WSgpIC0gMykpOworICAgICAgICBjaGVja2VyUGF0aC5h
ZGRMaW5lVG8oRmxvYXRQb2ludChyZWN0Lm1heFgoKSAtIDMsIHJlY3QueSgpICsgMykpOworCisg
ICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDIpOworICAgICAgICBjb250ZXh0LnNl
dFN0cm9rZUNvbG9yKG1ha2VSR0IoODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LnN0cm9r
ZVBhdGgoY2hlY2tlclBhdGgpOworICAgIH0KK30KKwordm9pZCBUaGVtZVdQRTo6cGFpbnRSYWRp
byhDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5h
ZGRFbGxpcHNlKHpvb21lZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJH
QigyMjQsIDIyNCwgMjI0KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNv
bnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Io
bWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisg
ICAgaWYgKHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgewor
ICAgICAgICBGbG9hdFJlY3QgY2hlY2tlclJlY3QgPSB6b29tZWRSZWN0OworICAgICAgICBjaGVj
a2VyUmVjdC5pbmZsYXRlKC0zKTsKKworICAgICAgICBQYXRoIGNoZWNrZXJQYXRoOworICAgICAg
ICBjaGVja2VyUGF0aC5hZGRFbGxpcHNlKGNoZWNrZXJSZWN0KTsKKworICAgICAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAgICAgICAgY29udGV4dC5maWxs
UGF0aChjaGVja2VyUGF0aCk7CisgICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludEJ1dHRv
bihDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBGbG9hdFNpemUgY29ybmVyKDIsIDIp
OworICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRlZFJlY3Qoem9vbWVkUmVjdCwgY29ybmVyLCBj
b3JuZXIsIGNvcm5lciwgY29ybmVyKTsKKyAgICBQYXRoIHBhdGg7CisgICAgcGF0aC5hZGRSb3Vu
ZGVkUmVjdChyb3VuZGVkUmVjdCk7CisKKyAgICBDb2xvciBmaWxsQ29sb3IgPSBzdGF0ZXMuc3Rh
dGVzKCkgJiBDb250cm9sU3RhdGVzOjpQcmVzc2VkU3RhdGUgPyBtYWtlUkdCKDI0NCwgMjQ0LCAy
NDQpIDogbWFrZVJHQigyMjQsIDIyNCwgMjI0KTsKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihm
aWxsQ29sb3IpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0aCk7CisKKyAgICBjb250ZXh0LnNl
dFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKG1ha2VSR0Io
OTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0aChwYXRoKTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1RoZW1lV1BFLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZGYwODFiM2E3YWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaApAQCAtMCww
ICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgVGhlbWVXUEVfaAorI2RlZmluZSBUaGVtZVdQRV9oCisKKyNpbmNsdWRlICJU
aGVtZS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRoZW1lV1BFIDogcHVibGlj
IFRoZW1lIHsKK3B1YmxpYzoKKyAgICBUaGVtZVdQRSgpIHsgfQorICAgIHZpcnR1YWwgflRoZW1l
V1BFKCkgeyB9CisKKyAgICB2aXJ0dWFsIExlbmd0aFNpemUgY29udHJvbFNpemUoQ29udHJvbFBh
cnQsIGNvbnN0IEZvbnRDYXNjYWRlJiwgY29uc3QgTGVuZ3RoU2l6ZSYsIGZsb2F0KSBjb25zdCBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWludChDb250cm9sUGFydCwgQ29udHJvbFN0
YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0LCBTY3JvbGxW
aWV3KiwgZmxvYXQsIGZsb2F0KSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lkIHBhaW50
Q2hlY2tib3goQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVj
dCYsIGZsb2F0KTsKKyAgICB2b2lkIHBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYsIEdyYXBoaWNz
Q29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKKyAgICB2b2lkIHBhaW50QnV0dG9u
KENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9h
dCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBUaGVtZVdQRV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MmRmMGNjNmIzNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwCkBAIC0wLDAgKzEsODUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldpZGdldC5oIgorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitXaWRnZXQ6OldpZGdldChQbGF0
Zm9ybVdpZGdldCB3aWRnZXQpCit7CisgICAgaW5pdCh3aWRnZXQpOworfQorCitXaWRnZXQ6On5X
aWRnZXQoKQoreworICAgIEFTU0VSVCghcGFyZW50KCkpOworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGcmFtZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sK
KyAgICBtX2ZyYW1lID0gcmVjdDsKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitJbnRSZWN0
IFdpZGdldDo6ZnJhbWVSZWN0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9mcmFtZTsKK30KKwor
dm9pZCBXaWRnZXQ6OnBhaW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJlY3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRGb2N1cyhib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRDdXJzb3IoY29u
c3QgQ3Vyc29yJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6
c2hvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OmhpZGUo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzZXRJc1NlbGVj
dGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1Nv
Y2tldE1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tl
dE1vbml0b3IuY3BwCmluZGV4IDE0MzI5YjkzODkxLi44ZDEwMWNmNGYxMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcApAQCAt
NTEsNiArNTEsOSBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpzdGFydChHU29ja2V0KiBzb2NrZXQs
IEdJT0NvbmRpdGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1bgogICAgIGdfc291cmNlX3NldF9u
YW1lKG1fc291cmNlLmdldCgpLCAiW1dlYktpdF0gU29ja2V0IG1vbml0b3IiKTsKICAgICBtX2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1f
c291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3VyY2VGdW5jPihzb2NrZXRTb3VyY2VD
YWxsYmFjayksIHRoaXMsIG51bGxwdHIpOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBnX3NvdXJj
ZV9zZXRfcHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIEdfUFJJT1JJVFlfSElHSCArIDMwKTsKKyNl
bmRpZgogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5nZXQoKSwgcnVuTG9vcC5tYWluQ29u
dGV4dCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21h
a2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uODg0ZjBlNGVlODUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDQ3MCBAQAorZmlsZShNQUtF
X0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0pCisKK2NvbmZpZ3VyZV9m
aWxlKHdwZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5w
YyBAT05MWSkKKworYWRkX2RlZmluaXRpb25zKC1EV0VCS0lUMl9DT01QSUxBVElPTikKKworYWRk
X2RlZmluaXRpb25zKC1ETElCRVhFQ0RJUj0iJHtMSUJFWEVDX0lOU1RBTExfRElSfSIpCisKK3Nl
dChXZWJLaXQyX1VTRV9QUkVGSVhfSEVBREVSIE9OKQorCithZGRfY3VzdG9tX3RhcmdldCh3ZWJr
aXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNVVEFCTEV9
ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIC0t
aW5jbHVkZS1wYXRoICR7V0VCS0lUMl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJT
X0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCispCisKK3NldChXRUJLSVQyX0VY
VFJBX0RFUEVOREVOQ0lFUworICAgIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisK
K2xpc3QoQVBQRU5EIFdlYlByb2Nlc3NfU09VUkNFUworICAgIFdlYlByb2Nlc3MvRW50cnlQb2lu
dC91bml4L1dlYlByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBOZXR3b3JrUHJvY2Vz
c19TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvRW50cnlQb2ludC91bml4L05ldHdvcmtQcm9j
ZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgRGF0YWJhc2VQcm9jZXNzX1NPVVJDRVMKKyAg
ICBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0RhdGFiYXNlUHJvY2Vzc01haW4uY3Bw
CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0N1
c3RvbVByb3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlclNvdXAuY3BwCisK
KyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVDb2RlcnNTb3VwLmNwcAorICAg
IE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURhdGFTb3VwLmNwcAorICAgIE5ldHdv
cmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5lbFNvdXAuY3BwCisKKyAgICBOZXR3
b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCisgICAgTmV0d29ya1Byb2Nl
c3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3Nv
dXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29y
a1Nlc3Npb25Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHRTb3VwLmNwcAorCisgICAgUGxhdGZvcm0vY2xhc3NpZmllci9SZXNvdXJjZUxvYWRT
dGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKKworICAgIFBsYXRmb3JtL2dsaWIvTW9kdWxlR2xpYi5j
cHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAorCisgICAgUGxh
dGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisgICAgUGxhdGZvcm0vSVBDL3VuaXgv
Q29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS91bml4L0xvZ2dpbmdVbml4LmNwcAor
ICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5jcHAKKworICAgIFBsdWdpblByb2Nl
c3MvdW5peC9QbHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3Mv
dW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwCisgICAgUGx1Z2luUHJvY2Vzcy91bml4L1Bs
dWdpblByb2Nlc3NVbml4LmNwcAorCisgICAgU2hhcmVkL0FQSS9jL2NhaXJvL1dLSW1hZ2VDYWly
by5jcHAKKworICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9zb3VwL0F1dGhlbnRpY2F0aW9uTWFu
YWdlclNvdXAuY3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRl
ZEJhY2tpbmdTdG9yZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzU2NlbmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvU2lt
cGxlVmlld3BvcnRDb250cm9sbGVyLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKyAgICBTaGFyZWQv
Q29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9y
LmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2FmZUNvb3JkaW5hdGVkU3VyZmFjZS5j
cHAKKworICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVs
ZVgxMS5jcHAKKworICAgIFNoYXJlZC9jYWlyby9TaGFyZWFibGVCaXRtYXBDYWlyby5jcHAKKwor
ICAgIFNoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisKKyAgICBTaGFyZWQvbGludXgvV2Vi
TWVtb3J5U2FtcGxlckxpbnV4LmNwcAorCisgICAgU2hhcmVkL3NvdXAvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzU291cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJFcnJvcnNTb3VwLmNwcAorCisgICAg
U2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKworICAgIFNoYXJlZC93cGUvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZl
bnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcAorICAg
IFNoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1By
b2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9y
eS5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5h
Z2VyLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJvL1dLSWNvbkRhdGFiYXNlQ2Fpcm8u
Y3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmNwcAor
CisgICAgVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9E
cmF3aW5nQXJlYVByb3h5V1BFLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNw
cAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93
cGUvV1BFVmlld0NsaWVudC5jcHAKKworICAgIFVJUHJvY2Vzcy9CYWNraW5nU3RvcmUuY3BwCisg
ICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvTGVn
YWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKKyAgICBVSVByb2Nlc3MvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dl
Ykluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
c291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0xhdW5jaGVyL3dw
ZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCisKKyAgICBVSVByb2Nlc3MvUGx1Z2lucy91bml4L1Bs
dWdpbkluZm9TdG9yZVVuaXguY3BwCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5Q
cm9jZXNzUHJveHlVbml4LmNwcAorCisgICAgVUlQcm9jZXNzL1N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvdW5peC9XZWJzaXRlRGF0YVN0b3Jl
VW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9jYWlyby9CYWNraW5nU3RvcmVDYWlyby5jcHAKKwor
ICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNz
aW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL1dlYlBhZ2VQcm94eUdTdHJl
YW1lci5jcHAKKworICAgIFVJUHJvY2Vzcy9saW51eC9NZW1vcnlQcmVzc3VyZU1vbml0b3IuY3Bw
CisKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5hZ2VyUHJveHlTb3VwLmNwcAorICAg
IFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy93
cGUvVGV4dENoZWNrZXJXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94
eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKKyAgICBVSVBy
b2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dl
YlByZWZlcmVuY2VzV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUu
Y3BwCisKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJDb29raWVNYW5hZ2VyU291cC5j
cHAKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJLaXRTb3VwQ29va2llSmFyU3FsaXRl
LmNwcAorCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9nbGliL0luamVjdGVkQnVuZGxl
R2xpYi5jcHAKKworICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNoZS9XZWJNZWRpYUtleVN0b3JhZ2VN
YW5hZ2VyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwL1dlYkZyYW1l
TmV0d29ya2luZ0NvbnRleHQuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dw
ZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Fj
Y2VsZXJhdGVkU3VyZmFjZS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0FyZWFBbGxvY2F0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRvci5jcHAKKyAgICBXZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29y
ZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0
cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdp
bmdBcmVhV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlX
UEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcAorCisgICAg
V2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5wdXRTdHJlYW0uY3BwCisgICAgV2Vi
UHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorCisgICAgV2ViUHJvY2Vzcy93cGUvV2Vi
UHJvY2Vzc01haW5XUEUuY3BwCisKKyAgICAjIEZJWE1FLUdXU0hBUkU6CisgICAgRGF0YWJhc2VQ
cm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNwcAorKQorCitsaXN0KEFQUEVORCBX
ZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9ERVJJ
VkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJl
c291cmNlc0dSZXNvdXJjZUJ1bmRsZS5jCispCisKK3NldChXZWJLaXQyUmVzb3VyY2VzCispCisK
K2lmIChFTkFCTEVfV0VCX0FVRElPKQorICAgIGxpc3QoQVBQRU5EIFdlYktpdDJSZXNvdXJjZXMK
KyAgICAgICAgIiAgICAgICAgPGZpbGUgYWxpYXM9XCJhdWRpby9Db21wb3NpdGVcIj5Db21wb3Np
dGUud2F2PC9maWxlPlxuIgorICAgICkKK2VuZGlmICgpCisKK2ZpbGUoV1JJVEUgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1s
CisgICAgIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz5cbiIKKyAgICAiPGdyZXNv
dXJjZXM+XG4iCisgICAgIiAgICA8Z3Jlc291cmNlIHByZWZpeD1cIi9vcmcvd2Via2l0d3BlL3Jl
c291cmNlc1wiPlxuIgorICAgICR7V2ViS2l0MlJlc291cmNlc30KKyAgICAiICAgIDwvZ3Jlc291
cmNlPlxuIgorICAgICI8L2dyZXNvdXJjZXM+XG4iCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgK
KyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lU
Ml9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBn
bGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9yZXNvdXJjZXMgLS10YXJnZXQ9
JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VC
dW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dS
ZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQy
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSIKKyAg
ICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0v
Z3JhcGhpY3MvY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2Zy
ZWV0eXBlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIK
KyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvdGV4bWFwL2Nvb3JkaW5hdGVk
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3
b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0
d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQ
cm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3VuaXgiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL0lQQy9nbGliIgorICAgICIke1dFQktJVDJfRElS
fS9QbGF0Zm9ybS9JUEMvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vY2xhc3Np
ZmllciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dwZSIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvciIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC91bml4
IgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvY2Fpcm8iCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlIgorICAgICIk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9saW51eCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL3NvdXAiCisg
ICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlIgorICAgICIke1dURl9ESVJ9L3d0Zi9ndGsvIgorICAgICIke1dURl9ESVJ9L3d0Zi9nb2Jq
ZWN0IgorICAgICIke1dURl9ESVJ9IgorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7
RUdMX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtH
TElCX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJFQU1FUl9JTkNMVURFX0RJUlN9CisgICAgJHtI
QVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKyAgICAk
e1dQRV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfTElCUkFSSUVTCisg
ICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQorICAgICR7
R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElCUkFSSUVTfQorICAgICR7SEFSRkJV
WlpfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFS
SUVTfQorKQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2VuLmxwcm9qL2xvY2FsaXplZFN0cmlu
Z3MuanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db250cm9sbGVycy8qLmNzcworICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Q29udHJvbGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVy
bmFsL0NvZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5qcworICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRXh0
ZXJuYWwvRVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJpbWEvKi5qcworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0
ay8qLnBuZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9kZWxzLyouanMKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3RvY29s
LyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy8qLmNzcworICAg
ICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
Vmlld3MvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9IZWFwU25h
cHNob3QvKi5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXMKKyAg
ICAke0luc3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRTb3VyY2VzL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMgaXMKKyMgZXhwZWN0ZWQgaW4g
RGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8uCith
ZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BF
Q1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFu
ZHMuanMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0v
aW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgIENPTU1BTkQgY3AgJHtE
RVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFj
a2VuZENvbW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNl
ckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKykKKworYWRk
X2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNU
T1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBERVBFTkRTICR7SW5z
cGVjdG9yRmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAgICAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2Vu
ZENvbW1hbmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3Bl
Y3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01NQU5EICR7VE9PTFNfRElSfS93cGUv
Z2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSAtLW91dHB1dD0ke0RFUklW
RURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54
bWwgJHtJbnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAg
IFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVE
X1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYwor
ICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2Vz
IC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fSAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3Rv
ckdSZXNvdXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0v
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0
b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlf
RElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sCisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2Vy
dmVyL2Zyb250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRtbAorICAgIENPTU1BTkQgZ2xpYi1j
b21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VS
Q0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5j
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVj
dG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7REVSSVZFRF9TT1VSQ0VTX1dFQklO
U1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICAke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUuYworKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfTElCUkFSSUVT
CisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3Bl
Y3RvclJlc291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElS
U30KKykKKworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFNIQVJFRCAke1dQ
RVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVN9KQorYWRkX2RlcGVuZGVuY2ll
cyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikKK3RhcmdldF9saW5rX2xpYnJhcmll
cyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfTElC
UkFSSUVTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVzKFdQRVdlYkluc3BlY3RvclJlc291
cmNlcyBQVUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RPUklF
U30pCitpbnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIERFU1RJTkFUSU9O
ICIke0xJQl9JTlNUQUxMX0RJUn0iKQorCitzZXQoV1BFX0lOU1RBTExFRF9XRUJLSVRfSEVBREVS
UworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0FycmF5LmgKKyAgICAke1dFQktJ
VDJfRElSfS9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQv
QVBJL2MvV0tEYXRhLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEZWNsYXJh
dGlvblNwZWNpZmllcnMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RpYWdu
b3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9j
L1dLRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRXJyb3JS
ZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0V2ZW50LmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tGaW5kT3B0aW9ucy5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS0ltYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxl
QXJyYXkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS011dGFibGVEaWN0aW9u
YXJ5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tOdW1iZXIuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VMb2FkVHlwZXMuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VWaXNpYmlsaXR5VHlwZXMuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2luUmVmLmgKKyAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0VmFsdWUuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLVHlwZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMLmgK
KyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXF1ZXN0LmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXNwb25zZS5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oCisKKyAg
ICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCisKKyAgICAke1dF
QktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlLmgKKyAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
QmFja0ZvcndhcmRMaXN0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oCisgICAgJHtXRUJLSVQy
X0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZURPTVdpbmRvd0V4
dGVuc2lvbi5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFtZS5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUhpdFRlc3RSZXN1bHQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVJbml0aWFsaXplLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZU5vZGVIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5lci5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VDb250ZXh0TWVu
dUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VGdWxsU2NyZWVuQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVj
dGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgKKyAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZVBhZ2VPdmVybGF5LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxv
YWRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5nZUhhbmRsZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVNjcmlwdFdv
cmxkLmgKKworICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJk
TGlzdEl0ZW1SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0JhY2tG
b3J3YXJkTGlzdFJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29u
dGV4dENvbmZpZ3VyYXRpb25SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tDb250ZXh0RG93bmxvYWRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRIaXN0b3J5Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHQuaAorICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLRnJhbWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lSW5mb1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJh
bWVQb2xpY3lMaXN0ZW5lci5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
SGl0VGVzdFJlc3VsdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF0
aXZlRXZlbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRp
b25BY3Rpb25SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdmln
YXRpb25EYXRhUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0
aW9uUmVzcG9uc2VSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Bh
Z2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VDb25maWd1cmF0
aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29udGV4
dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZUZpbmRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNz
L0FQSS9DL1dLUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVBvbGljeUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpbkxvYWRQb2xpY3kuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVXNlclNjcmlwdFJlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1dGVzLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5kb3dGZWF0dXJlc1JlZi5oCisKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCisKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFnZXJTb3VwLmgKKykKKworaW5zdGFs
bChGSUxFUyAke1dQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlN9CisgICAgREVTVElOQVRJT04g
IiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRS9X
ZWJLaXQiCisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKykKKworc2V0KFdQRV9JTlNUQUxM
RURfSEVBREVSUworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgK
KykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSEVBREVSU30KKyAgICBERVNUSU5B
VElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dwZS0ke1dQRV9BUElfVkVSU0lPTn0v
V1BFIgorICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCispCisKK2luc3RhbGwoRklMRVMgJHtD
TUFLRV9CSU5BUllfRElSfS93cGUtd2Via2l0LnBjCisgICAgREVTVElOQVRJT04gIiR7Q01BS0Vf
SU5TVEFMTF9MSUJESVJ9L3BrZ2NvbmZpZyIKKyAgICBDT01QT05FTlQgIkRldmVsb3BtZW50Igor
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5n
LWhlYWRlcnMucGwgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbAppbmRleCBiNjFkYjc4Nzc0YS4uYTdkM2EwYjZiOTIgMTAwNzU1Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsCkBA
IC0zNSw3ICszNSw3IEBAIHVzZSBGaWxlOjpTcGVjOjpGdW5jdGlvbnM7CiB1c2UgR2V0b3B0OjpM
b25nOwogCiBteSAkc3JjUm9vdCA9IHJlYWxwYXRoKEZpbGU6OlNwZWMtPmNhdGZpbGUoZGlybmFt
ZShhYnNfcGF0aCgkMCkpLCAiLi4vLi4iKSk7Ci1teSBAcGxhdGZvcm1QcmVmaXhlcyA9ICgiY2Ei
LCAiY2YiLCAiY29jb2EiLCAiQ29jb2EiLCAiQ29vcmRpbmF0ZWRHcmFwaGljcyIsICJjdXJsIiwg
ImVmbCIsICJndGsiLCAiaW9zIiwgIm1hYyIsICJzb3VwIiwgIndpbiIpOworbXkgQHBsYXRmb3Jt
UHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3Jh
cGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4i
LCAid3BlIik7CiBteSBAZnJhbWV3b3JrcyA9ICgiSmF2YVNjcmlwdENvcmUiLCAiV2ViQ29yZSIs
ICJXZWJLaXQiKTsKIG15IEBza2lwcGVkUHJlZml4ZXM7CiBteSBAZnJhbWV3b3JrSGVhZGVyczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRleCAyZThmYmZiYmU1Yy4uMzNhMDY5
ODhlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKQEAgLTM4LDYgKzM4LDEw
IEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZU1hYy5oPgogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VXUEUuaD4KKyNlbmRpZgor
CiAvKiBXZWJLaXQyIHNoYXJlZCB0eXBlcyAqLwogCiB0eXBlZGVmIHVpbnQzMl90IFdLVHlwZUlE
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUu
aCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1ZWYwNjIyMDJiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgV0tCYXNlV1BFX2gKKyNkZWZpbmUgV0tCYXNlV1BFX2gKKworI2lmbmRlZiBX
S0Jhc2VfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0Jhc2UuaFwiIGluc3RlYWQgb2Yg
dGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCit0eXBlZGVmIGNvbnN0IHN0cnVjdCBPcGFx
dWVXS1ZpZXcqIFdLVmlld1JlZjsKKworI2VuZGlmIC8qIFdLQmFzZVdQRV9oICovCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uOWE4NDExN2Y0NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFX1dl
YktpdF9oCisjZGVmaW5lIFdQRV9XZWJLaXRfaAorCisjZGVmaW5lIEJVSUxESU5HX1dQRV9fCisK
KyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgor
CisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQv
V0tBcnJheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9y
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3Vy
aXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLVHlwZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTC5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS1VSTFJlcXVlc3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0aW9uVGltZS5oPgorCisvLyBGcm9tIFNvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJbml0aWFsaXplLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlSW5zcGVjdG9yLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTmF2aWdhdGlv
bkFjdGlvbi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZU5vZGVIYW5kbGUuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFn
ZUJhbm5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRm9ybUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
UGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdl
VUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVSYW5nZUhhbmRsZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZVNjcmlwdFdvcmxkLmg+CisKKy8vIEZyb20gU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0
SXRlbVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWwuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsVHlwZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFt
ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lSW5mb1JlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tIaXRUZXN0UmVz
dWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvblJlZi5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS05hdmlnYXRpb25EYXRhUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2
aWdhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU2Vzc2lv
blN0YXRlUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVm
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNjcmlwdFJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS1ZpZXcuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tXaW5kb3dGZWF0dXJlc1JlZi5oPgorCisjZW5kaWYgLy8gV1BFX1dl
YktpdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21w
b3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDhhY2Y1MDY5MjEwLi4yMjQzODhlZWM2NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXb3JrUXVl
dWVQb29sKCkKICAgICB7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogICAgICAgICBtX3RocmVhZENvdW50TGltaXQgPSAxOwogI2Vsc2UKICAg
ICAgICAgbV90aHJlYWRDb3VudExpbWl0ID0gc3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46
Om1heCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5oCmluZGV4IDgxNmQ0NjdiNTEwLi42NDVkN2I5MGQxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
aApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQogCisjaW5jbHVkZSA8ZnVuY3Rpb25hbD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgog
I2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4KICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21w
b3NpdG9yLmNwcAppbmRleCA1NGQ5NjBiM2QwZS4uOTZkMjk2NmJkZTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRv
ci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3Bw
CkBAIC00MywxMiArNDMsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi1SZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6
OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9h
dCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFt
ZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykK
K1JlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKENsaWVu
dCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUs
IGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGRE
b0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZs
YWdzKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGll
bnQsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJh
bWVTeW5jLCBwYWludEZsYWdzKSk7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRD
b21wb3NpdG9yKGNsaWVudCwgd2ViUGFnZSwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFtZVN5bmMsIHBhaW50RmxhZ3MpKTsKIH0KIAotVGhyZWFk
ZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIGNvbnN0IElu
dFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1
cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVy
OjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29t
cG9zaXRvcihDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhh
bmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50
RmxhZ3MgcGFpbnRGbGFncykKICAgICA6IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fdmlld3Bv
cnRTaXplKHZpZXdwb3J0U2l6ZSkKICAgICAsIG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCkBA
IC02NCwxMyArNjQsMjEgQEAgVGhyZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3Io
Q2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2kKICAgICBtX2NsaWVudFJl
bmRlcnNOZXh0RnJhbWUuc3RvcmUoZmFsc2UpOwogICAgIG1fY29vcmRpbmF0ZVVwZGF0ZUNvbXBs
ZXRpb25XaXRoQ2xpZW50LnN0b3JlKGZhbHNlKTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBt
X2NvbXBvc2l0aW5nTWFuYWdlci5lc3RhYmxpc2hDb25uZWN0aW9uKHdlYlBhZ2UpOworI2VuZGlm
CisKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAgbV9zY2VuZSA9IGFkb3B0UmVm
KG5ldyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmUodGhpcykpOworI2lmIFBMQVRGT1JNKEdUSykK
ICAgICAgICAgaWYgKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSkgewogICAgICAgICAgICAgY3JlYXRl
R0xDb250ZXh0KCk7CiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKGZhbHNlKTsKKyNlbGlm
IFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKHRydWUpOworI2VuZGlm
CiAgICAgfSk7CiB9CiAKQEAgLTgxLDYgKzg5LDggQEAgVGhyZWFkZWRDb21wb3NpdG9yOjp+VGhy
ZWFkZWRDb21wb3NpdG9yKCkKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENvbnRl
eHQoKQogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOworCisjaWYgUExBVEZPUk0oR1RL
KQogICAgIEFTU0VSVChtX25hdGl2ZVN1cmZhY2VIYW5kbGUpOwogCiAgICAgbV9jb250ZXh0ID0g
R0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8R0xOYXRp
dmVXaW5kb3dUeXBlPihtX25hdGl2ZVN1cmZhY2VIYW5kbGUpLCAmUGxhdGZvcm1EaXNwbGF5Ojpz
aGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmcoKSk7CkBAIC05MSw2ICsxMDEsMjIgQEAgdm9pZCBU
aHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdMQ29udGV4dCgpCiAgICAgICAgIGlmIChtX2NvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICAgICAgbV9jb250ZXh0LT5zd2FwSW50
ZXJ2YWwoMCk7CiAgICAgfQorI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgYXV0byYg
cGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAg
UkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpKTsK
KyAgICBtX3RhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNw
bGF5KS5jcmVhdGVFR0xUYXJnZXQoKnRoaXMsIG1fY29tcG9zaXRpbmdNYW5hZ2VyLnJlbGVhc2VD
b25uZWN0aW9uRmQoKSk7CisgICAgQVNTRVJUKG1fdGFyZ2V0KTsKKyAgICBtX3RhcmdldC0+aW5p
dGlhbGl6ZShtX3ZpZXdwb3J0U2l6ZSk7CisKKyAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNy
ZWF0ZUNvbnRleHRGb3JXaW5kb3cobV90YXJnZXQtPm5hdGl2ZVdpbmRvdygpLCAmcGxhdGZvcm1E
aXNwbGF5KTsKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQorICAgICAgICByZXR1cm47CisjZW5k
aWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmludmFsaWRhdGUoKQpAQCAtMTAwLDE2
ICsxMjYsMjMgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmludmFsaWRhdGUoKQogICAgIG1f
Y29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lLT5wdXJnZUdMUmVzb3VyY2VzKCk7
CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxwdHI7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAg
ICBtX3RhcmdldCA9IG51bGxwdHI7CisjZW5kaWYKICAgICAgICAgbV9zY2VuZSA9IG51bGxwdHI7
CiAgICAgfSk7CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRP
UikKICAgICBtX2Rpc3BsYXlSZWZyZXNoTW9uaXRvci0+aW52YWxpZGF0ZSgpOwogI2VuZGlmCiAg
ICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBudWxscHRyOworI2lmIFVTRShSRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0b3It
PmludmFsaWRhdGUoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0
TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKKyNp
ZiBQTEFURk9STShHVEspCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnN0b3BVcGRhdGVzKCk7
CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBoYW5kbGVdIHsKICAgICAgICAgLy8gQSBuZXcgbmF0
aXZlIGhhbmRsZSBjYW4ndCBiZSBzZXQgd2l0aG91dCBkZXN0cm95aW5nIHRoZSBwcmV2aW91cyBv
bmUgZmlyc3QgaWYgYW55LgpAQCAtMTIzLDYgKzE1Niw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3Np
dG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxl
KQogICAgICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKICAgICAgICAgfQogICAgIH0pOwor
I2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRTY2FsZUZhY3RvcihmbG9h
dCBzY2FsZSkKQEAgLTE0Niw2ICsxODAsMTAgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNl
dFZpZXdwb3J0U2l6ZShjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWwKIHsK
ICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHZpZXdwb3J0U2l6ZSwgc2NhbGVdIHsKICAgICAgICAg
bV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNpemU7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAg
ICBpZiAobV90YXJnZXQpCisgICAgICAgICAgICBtX3RhcmdldC0+cmVzaXplKHZpZXdwb3J0U2l6
ZSk7CisjZW5kaWYKICAgICAgICAgbV9zY2FsZUZhY3RvciA9IHNjYWxlOwogICAgICAgICBtX25l
ZWRzUmVzaXplID0gdHJ1ZTsKICAgICAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnNjaGVkdWxl
VXBkYXRlKCk7CkBAIC0xODksOSArMjI3LDE4IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpy
ZW5kZXJMYXllclRyZWUoKQogICAgIGlmICghbV9zY2VuZSB8fCAhbV9zY2VuZS0+aXNBY3RpdmUo
KSkKICAgICAgICAgcmV0dXJuOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGlmICghbV9jb250
ZXh0KQorICAgICAgICBjcmVhdGVHTENvbnRleHQoKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX2Nv
bnRleHQgfHwgIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVy
bjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBtX3RhcmdldC0+ZnJhbWVXaWxsUmVuZGVyKCk7
CisjZW5kaWYKKwogICAgIGlmIChtX25lZWRzUmVzaXplKSB7CiAgICAgICAgIGdsVmlld3BvcnQo
MCwgMCwgbV92aWV3cG9ydFNpemUud2lkdGgoKSwgbV92aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwog
ICAgICAgICBtX25lZWRzUmVzaXplID0gZmFsc2U7CkBAIC0yMTEsNyArMjU4LDEzIEBAIHZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQogCiAgICAgbV9jb250ZXh0LT5z
d2FwQnVmZmVycygpOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVJl
bmRlcmVkKCk7CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKEdUSykKICAgICBzY2VuZVVwZGF0ZUZp
bmlzaGVkKCk7CisjZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNjZW5lVXBk
YXRlRmluaXNoZWQoKQpAQCAtMjcwLDUgKzMyMywzMiBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6Y29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRpb25XaXRoQ2xpZW50KCkKIH0KICNlbmRpZgogCisj
aWYgUExBVEZPUk0oV1BFKQorc3RhdGljIHZvaWQgZGVidWdUaHJlYWRlZENvbXBvc2l0b3JGUFMo
KQoreworICAgIHN0YXRpYyBkb3VibGUgbGFzdFRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIHN0
YXRpYyB1bnNpZ25lZCBmcmFtZUNvdW50ID0gMDsKKworICAgIGRvdWJsZSBjdCA9IGN1cnJlbnRU
aW1lKCk7CisgICAgZnJhbWVDb3VudCsrOworCisgICAgaWYgKGN0IC0gbGFzdFRpbWUgPj0gNS4w
KSB7CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVGhyZWFkZWRDb21wb3NpdG9yOiBmcmFtZSBj
YWxsYmFja3MgJS4yZiBGUFNcbiIsIGZyYW1lQ291bnQgLyAoY3QgLSBsYXN0VGltZSkpOworICAg
ICAgICBsYXN0VGltZSA9IGN0OworICAgICAgICBmcmFtZUNvdW50ID0gMDsKKyAgICB9Cit9CisK
K3ZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpmcmFtZUNvbXBsZXRlKCkKK3sKKyAgICBBU1NFUlQo
bV9jb21wb3NpdGluZ1J1bkxvb3AtPmlzQ3VycmVudCgpKTsKKyAgICBzdGF0aWMgYm9vbCByZXBv
cnRGUFMgPSAhIXN0ZDo6Z2V0ZW52KCJXUEVfVEhSRUFERURfQ09NUE9TSVRPUl9GUFMiKTsKKyAg
ICBpZiAocmVwb3J0RlBTKQorICAgICAgICBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygpOwor
CisgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworfQorI2VuZGlmCisKIH0KICNlbmRpZiAvLyBV
U0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKaW5kZXggNjc5NTRhMDdh
NDYuLmViMTI0NTk3NTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCkBAIC00Miw2ICs0MiwxMSBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JN
KFdQRSkKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0
cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzU3RhdGU7CiB9CkBAIC01MSw4ICs1NiwxMyBAQCBuYW1l
c3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZTsKIGNsYXNzIENv
b3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudDsKIGNsYXNzIFRocmVhZGVkRGlzcGxheVJlZnJl
c2hNb25pdG9yOworY2xhc3MgV2ViUGFnZTsKIAotY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDog
cHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRvcj4geworY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9y
IDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRvcj4KKyNpZiBQTEFURk9STShXUEUpCisgICAg
LCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudAor
I2VuZGlmCisgICAgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFRocmVhZGVkQ29tcG9zaXRv
cik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CkBAIC02NCw3ICs3NCw3
IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xhc3MgU2hvdWxkRG9GcmFtZVN5bmMgeyBObywgWWVz
IH07CiAKLSAgICBzdGF0aWMgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSA9IDAsIFNob3VsZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5
bmM6OlllcywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOworICAgIHN0
YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xpZW50JiwgV2ViUGFnZSYsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZl
U3VyZmFjZUhhbmRsZSA9IDAsIFNob3VsZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6
OlllcywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZpcnR1
YWwgflRocmVhZGVkQ29tcG9zaXRvcigpOwogCiAgICAgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFu
ZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QpOwpAQCAtODcsMTMgKzk3LDE4IEBAIHB1YmxpYzoK
ICNlbmRpZgogCiBwcml2YXRlOgotICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1
cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQ
YWludEZsYWdzKTsKKyAgICBUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgV2ViUGFnZSYsIGNv
bnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZl
U3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MpOwogCiAgICAgLy8gQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50CiAg
ICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBvdmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVZpZXdw
b3J0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBjb21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5
ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgb2Zmc2V0KSBvdmVycmlkZTsKIAorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICAvLyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OlN1cmZhY2U6
OkNsaWVudAorICAgIHZvaWQgZnJhbWVDb21wbGV0ZSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAg
ICB2b2lkIHJlbmRlckxheWVyVHJlZSgpOwogICAgIHZvaWQgc2NlbmVVcGRhdGVGaW5pc2hlZCgp
OwogCkBAIC0xMDEsNiArMTE2LDEyIEBAIHByaXZhdGU6CiAKICAgICBDbGllbnQmIG1fY2xpZW50
OwogICAgIFJlZlB0cjxDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU+IG1fc2NlbmU7CisKKyNpZiBQ
TEFURk9STShXUEUpCisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyIG1fY29tcG9zaXRpbmdNYW5hZ2Vy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRh
cmdldD4gbV90YXJnZXQ7CisjZW5kaWYKKwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpH
TENvbnRleHQ+IG1fY29udGV4dDsKIAogICAgIFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNp
emU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKaW5kZXggN2ZjNGQ3YzRi
M2YuLmE0MzVlMTliYjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2lu
Z0FyZWFJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
CkBAIC0zNCw2ICszNCw4IEBAIGVudW0gRHJhd2luZ0FyZWFUeXBlIHsKICAgICBEcmF3aW5nQXJl
YVR5cGVUaWxlZENvcmVBbmltYXRpb24sCiAjZW5kaWYKICAgICBEcmF3aW5nQXJlYVR5cGVSZW1v
dGVMYXllclRyZWUsCisjZWxpZiBQTEFURk9STShXUEUpCisgICAgRHJhd2luZ0FyZWFUeXBlV1BF
CiAjZWxzZQogICAgIERyYXdpbmdBcmVhVHlwZUltcGwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKaW5kZXggY2IxZjExOGM4OTIuLjE0
ZmRkZTIyNGU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgKQEAgLTUxLDYgKzUxLDEwIEBAIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2
ZW50OwogT0JKQ19DTEFTUyBXZWJFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQor
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2Fy
ZEV2ZW50IHsKQEAgLTYyLDYgKzY2LDggQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQoR2RrRXZlbnQqLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1
dE1ldGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZvckNvbXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYm
IGNvbW1hbmRzKTsKICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2
ZW50KDo6V2ViRXZlbnQgKik7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Kik7CiAjZW5kaWYKIAog
I2lmIFVTRShBUFBLSVQpCkBAIC03Miw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmFr
ZUV2ZW50Rm9yQ29tcG9zaXRpb24oKSBjb25zdCB7IHJldHVybiBtX2Zha2VFdmVudEZvckNvbXBv
c2l0aW9uOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgOjpXZWJFdmVudCogbmF0aXZlRXZl
bnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViTW91c2VFdmVudC5oCmluZGV4IDg4Y2QxNDEwOTM4Li4yODNmYzMzNDk0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBA
QCBPQkpDX0NMQVNTIE5TVmlldzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50Owog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZl
bnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYk1vdXNl
RXZlbnQgOiBwdWJsaWMgV2ViTW91c2VFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoK
ICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KGNvbnN0IE5hdGl2
ZVdlYk1vdXNlRXZlbnQmKTsKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KEdka0V2ZW50KiwgaW50
KTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1LDYgKzYxLDggQEAgcHVibGljOgogICAgIGNvbnN0
IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0
KCk7IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgp
IGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lk
KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2
YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZl
bnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5kZXgg
MTE4MTI0Y2RlYmMuLjgyZjNiMjRkNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJUb3VjaEV2ZW50LmgKQEAgLTM0LDYgKzM0LDggQEAKIHN0cnVjdCBfVUlXZWJUb3VjaEV2
ZW50OwogI2VsaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0
ay5oPgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgPHdwZS9pbnB1dC5oPgogI2VuZGlm
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtNDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgTmF0
aXZlV2ViVG91Y2hFdmVudChHZGtFdmVudCosIFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+
JiYpOwogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYp
OwogICAgIGNvbnN0IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0
aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJUb3Vj
aEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZh
Y3Rvcik7CisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIG5hdGl2
ZUZhbGxiYWNrVG91Y2hQb2ludCgpIGNvbnN0IHsgcmV0dXJuICZtX2ZhbGxiYWNrVG91Y2hQb2lu
dDsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC01NSw2ICs2MCw4IEBAIHByaXZhdGU6CiAKICNp
ZiBQTEFURk9STShHVEspCiAgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVudDsK
KyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jh
dyBtX2ZhbGxiYWNrVG91Y2hQb2ludDsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKaW5kZXggNWRiMGJjZThmZWIuLjE1Zjk1ODY3MTcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTM4
LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQg
R2RrRXZlbnQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRf
YXhpc19ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZl
V2ViV2hlZWxFdmVudCA6IHB1YmxpYyBXZWJXaGVlbEV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAg
cHVibGljOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29u
c3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZl
bnQqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KHN0cnVj
dCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1LDYgKzYxLDggQEAgcHVibGljOgogICAgIEdka0V2
ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0K
ICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0
IHsgcmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRl
eCA1OGFhZWMzMWZlMy4uOWVmY2VmMjhlZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCkBAIC04MywxMSArODMsMTQgQEAKICNpZiBQTEFU
Rk9STShJT1MpCiAjaW5jbHVkZSA8V2ViQ29yZS9GbG9hdFF1YWQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1NlbGVjdGlvblJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgogI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKIAorI2lmIFBMQVRGT1JNKElP
UykgfHwgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgorI2Vu
ZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQuaD4KICNlbmRpZgpAQCAtMTQ3NCw2ICsx
NDc3LDIzIEBAIGJvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkSW1hZ2U+OjpkZWNvZGUoRGVj
b2RlciYgZGVjb2RlciwgUGFzdGVib2FyZEltYWdlJiBwCiAKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQordm9pZCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQor
eworICAgIGVuY29kZXIgPDwgY29udGVudC50ZXh0OworICAgIGVuY29kZXIgPDwgY29udGVudC5t
YXJrdXA7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRl
Y29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sK
KyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQudGV4dCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNvbnRlbnQubWFya3VwKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKFdQ
RSkKKwogdm9pZCBBcmd1bWVudENvZGVyPERpY3RhdGlvbkFsdGVybmF0aXZlPjo6ZW5jb2RlKEVu
Y29kZXImIGVuY29kZXIsIGNvbnN0IERpY3RhdGlvbkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRl
cm5hdGl2ZSkKIHsKICAgICBlbmNvZGVyIDw8IGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlU3Rh
cnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggNGE2MzY5YmEyOWYuLjQ5OTdhNjRhZGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0xMzEsNiArMTMxLDEyIEBAIHN0cnVjdCBTb3Vw
TmV0d29ya1Byb3h5U2V0dGluZ3M7CiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK25h
bWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudHM7Cit9CisjZW5k
aWYKKwogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIENvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcjsKQEAgLTQwOCw2ICs0MTQsMTMgQEAg
dGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5
U2V0dGluZ3M+IHsKIH07CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3RlbXBsYXRlPD4g
c3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKKyAg
ICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50Jik7CisgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCYpOworfTsKKyNlbmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBB
cmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB7CiAgICAgc3RhdGlj
IHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGlu
ZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6Q29tcG9zaXRp
b25VbmRlcmxpbmUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZpbml0aW9ucy5oCmluZGV4IDc1MDZmYWQ5ZDNhLi4wYjI4YzE1N2I1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0z
NzYsNyArMzc2LDcgQEAKICAgICBtYWNybyhQaWN0b2dyYXBoRm9udEZhbWlseSwgcGljdG9ncmFw
aEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiIiwgIiIp
IFwKICAgICBcCiAKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVG
RVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8oU3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZv
bnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAiVGltZXMiLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NjgzYjgxMmYzYgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQor
ICAgIDogV2ViS2V5Ym9hcmRFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoZXZlbnQpKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNGQ5ZDQzZGU1ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQ
RS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2Vi
TW91c2VFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitOYXRpdmVXZWJNb3VzZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQorICAgIDogV2ViTW91c2VFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFjdG9yKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRv
dWNoRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3Vj
aEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzE0
MTUxNTVjZGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFj
dG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0
aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICwg
bV9mYWxsYmFja1RvdWNoUG9pbnR7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAs
IDAsIDAsIDAgfQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hw
b2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hw
b2ludHNbaV07CisgICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVu
dF90eXBlX251bGwpIHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7
CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdl
YldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJX
aGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50
RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
TmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldo
ZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZp
Y2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1P
VE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVj
dXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVk
ZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5n
IGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0
Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwo
KSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vz
c05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVu
digiV0VCS0lUX0VYRUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAg
IFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9t
RmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7Cisg
ICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBw
cm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0g
Z2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7
CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChl
eGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9j
ZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAg
cmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRh
YmxlUGF0aE9mV2ViUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJX
UEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2Vz
cygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7
Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJl
dHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVO
QUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVBy
b2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9j
ZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc4ODdhOWY4YWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUg
PHdwZS9pbnB1dC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8
Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBt
b2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlm
aWVyczsKKworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2Rp
Zmllcl9jb250cm9sKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7
CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3No
aWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChl
dmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAg
IG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAm
IHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0g
V2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1v
ZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJT
dHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkK
K3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2No
YXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24o
KSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJp
bmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRy
PGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAw
LCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBT
dHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMg
U3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJv
YXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lu
cHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2lu
Z2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0
cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwg
ZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFj
dGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5n
ID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJL
ZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVu
dDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVy
U3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlf
Y29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwg
ZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwK
KyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dl
Yk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQor
eworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRj
aCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
bW90aW9uOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAg
ICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6
TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsK
KyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVf
YnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0
dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQt
PmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRC
dXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAg
IGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlw
ZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3Bl
ciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAg
ICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBv
c2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNl
RXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAs
IGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+
dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVl
bEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMu
CisgICAgZW51bSBBeGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6b250YWws
CisgICAgICAgIFNtb290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxU
aWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+
YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3Jl
OjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7Cisg
ICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6
U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2
ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9
IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4
ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAg
ICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1
bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3Jl
OjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNj
YWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2Vi
RXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRp
Y2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8
V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBv
aW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9y
YXcqIHBvaW50KQoreworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAg
IHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5Owor
CisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBv
aW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9t
b3Rpb246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAg
ICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3Vj
aEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAg
V2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVu
dC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAg
ICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdl
YkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoK
KyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktp
dDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5y
ZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAg
ICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9p
bnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlczsK
KyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBlbmQoCisgICAgICAgICAgICBXZWJLaXQ6
OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwgc3RhdGVGb3JUb3VjaFBvaW50KGV2ZW50
LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBwb2ludENvb3JkaW5hdGVzLCBwb2ludENv
b3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RG
TW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2RpZmllcnMoMCksIGV2ZW50LT50aW1lKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9X
ZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YmM2ZGM4NDlhMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAor
I2RlZmluZSBXZWJFdmVudEZhY3RvcnlfaAorCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworc3Ry
dWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVu
dDsKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQ7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJFdmVudEZhY3Rvcnkg
eworcHVibGljOgorICAgIHN0YXRpYyBXZWJLZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCopOworICAgIHN0YXRpYyBXZWJN
b3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2
ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50
IGNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQg
ZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0YXRpYyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRv
dWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxl
RmFjdG9yKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZl
bnRGYWN0b3J5X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9X
S0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApp
bmRleCA3OGEzODA0MTU5ZS4uN2JmYTAzN2RhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU1Nyw0ICs1NTcsOCBAQCBpbmxpbmUgUHJveHlpbmdS
ZWZQdHI8V2ViR3JhbW1hckRldGFpbD4gdG9BUEkoY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFp
bCYgZ3JhbQogI2luY2x1ZGUgIldLQVBJQ2FzdEd0ay5oIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVk
KEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgIldLQVBJQ2FzdFdQRS5oIgorI2VuZGlmCisKICNl
bmRpZiAvLyBXS0FQSUNhc3RfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tBUElDYXN0V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjBmOGExZTcxNzAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tBUElDYXN0
V1BFX2gKKyNkZWZpbmUgV0tBUElDYXN0V1BFX2gKKworI2lmbmRlZiBXS0FQSUNhc3RfaAorI2Vy
cm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0FQSUNhc3QuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxl
IGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaW5jbHVkZSAiV0tWaWV3LmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3Owor
fQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld1JlZiwg
V0tXUEU6OlZpZXcpCisKK2lubGluZSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyB0b1Zp
ZXdTdGF0ZUZsYWdzKFdLVmlld1N0YXRlIHdrVmlld1N0YXRlKQoreworICAgIHVuc2lnbmVkIHZp
ZXdTdGF0ZUZsYWdzID0gMDsKKworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlz
SW5XaW5kb3cpCisgICAgICAgIHZpZXdTdGF0ZUZsYWdzIHw9IFdlYkNvcmU6OkFjdGl2aXR5U3Rh
dGU6OklzSW5XaW5kb3c7CisgICAgaWYgKHdrVmlld1N0YXRlICYga1dLVmlld1N0YXRlSXNWaXNp
YmxlKQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJ
c1Zpc2libGU7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6RmxhZ3M+KHZpZXdTdGF0ZUZsYWdzKTsKK30KKworfQorCisjZW5kaWYgLy8gV0tBUElDYXN0
V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uY2NiYjIzNzE1ZWYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5j
cHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tWaWV3LmgiCisK
KyNpbmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJ
bXBsLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCit1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFdLUGFnZUNv
bmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6
OlZpZXc6OmNyZWF0ZShudWxscHRyLCAqdG9JbXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dL
Vmlld1JlZiBXS1ZpZXdDcmVhdGVXaXRoVmlld0JhY2tlbmQoc3RydWN0IHdwZV92aWV3X2JhY2tl
bmQqIGJhY2tlbmQsIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAg
ICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6OmNyZWF0ZShiYWNrZW5kLCAqdG9JbXBsKGNvbmZp
Z3VyYXRpb24pKSk7Cit9CisKK1dLUGFnZVJlZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3
KQoreworICAgIHJldHVybiB0b0FQSSgmdG9JbXBsKHZpZXcpLT5wYWdlKCkpOworfQorCit2b2lk
IFdLVmlld1NldFZpZXdTdGF0ZShXS1ZpZXdSZWYgdmlldywgV0tWaWV3U3RhdGUgdmlld1N0YXRl
KQoreworICAgIHRvSW1wbCh2aWV3KS0+c2V0Vmlld1N0YXRlKHRvVmlld1N0YXRlRmxhZ3Modmll
d1N0YXRlKSk7Cit9CisKK3ZvaWQgV0tWaWV3U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYgdmlldywg
Y29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xpZW50KQoreworICAgIHRvSW1wbCh2aWV3KS0+aW5p
dGlhbGl6ZUNsaWVudChjbGllbnQpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy93cGUvV0tWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1
OWVjMmI0NWI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL3dwZS9XS1ZpZXcuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tWaWV3X2gKKyNkZWZpbmUgV0tW
aWV3X2gKKworI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tH
ZW9tZXRyeS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisK
K3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOworCitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0Ny
ZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmKTsKK1dLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3
Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgV0tQYWdlQ29u
ZmlndXJhdGlvblJlZik7CisKK1dLX0VYUE9SVCBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1Zp
ZXdSZWYpOworCitlbnVtIHsKKyAgICBrV0tWaWV3U3RhdGVJc0luV2luZG93ID0gMSA8PCAwLAor
ICAgIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSA9IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90
IFdLVmlld1N0YXRlOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3
UmVmLCBXS1ZpZXdTdGF0ZSk7CisKK3R5cGVkZWYgdm9pZCAoKldLVmlld0ZyYW1lRGlzcGxheWVk
KShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3Ry
dWN0IFdLVmlld0NsaWVudEJhc2UgeworICAgIGludCB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQq
IGNsaWVudEluZm87Cit9IFdLVmlld0NsaWVudEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLVmll
d0NsaWVudFYwIHsKKyAgICBXS1ZpZXdDbGllbnRCYXNlIGJhc2U7CisKKyAgICAvLyB2ZXJzaW9u
IDAKKyAgICBXS1ZpZXdGcmFtZURpc3BsYXllZCBmcmFtZURpc3BsYXllZDsKK30gV0tWaWV3Q2xp
ZW50VjA7CisKK1dLX0VYUE9SVCB2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmLCBj
b25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlm
CisKKyNlbmRpZiAvLyBXS1ZpZXdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hNDA0ZWM1ZDliNQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5LmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3Np
dGluZ01hbmFnZXJQcm94eS5oIgorCisjaW5jbHVkZSAiQXR0YWNobWVudC5oIgorI2luY2x1ZGUg
IkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXUEVWaWV3Lmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6
OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKK3sKK30KKworQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHk6On5Db21wb3NpdGluZ01hbmFnZXJQcm94eSgpID0gZGVmYXVsdDsKKwordm9pZCBD
b21wb3NpdGluZ01hbmFnZXJQcm94eTo6aW5pdGlhbGl6ZSgpCit7CisgICAgbV92aWV3LnBhZ2Uo
KS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNv
bXBvc2l0aW5nTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fdmlldy5wYWdl
KCkucGFnZUlEKCksICp0aGlzKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6
ZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmIGNvbm5lY3Rpb25IYW5kbGUpCit7
CisgICAgY29ubmVjdGlvbkhhbmRsZSA9IElQQzo6QXR0YWNobWVudCh3cGVfdmlld19iYWNrZW5k
X2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmlldy5iYWNrZW5kKCkpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uYjg5NjA5ZDNmYTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oCkBAIC0wLDAg
KzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBDb21wb3NpdGluZ01hbmFnZXJQcm94eV9oCisjZGVmaW5lIENvbXBvc2l0aW5n
TWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7
Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgZmluYWwgOiBwdWJsaWMgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENvbXBvc2l0aW5n
TWFuYWdlclByb3h5KTsKK3B1YmxpYzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXJQcm94eShXS1dQ
RTo6VmlldyYpOworICAgIHZpcnR1YWwgfkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KCk7CisKKyAg
ICB2b2lkIGluaXRpYWxpemUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNl
aXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2
ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVl
X3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVuY29kZXIpIG92ZXJyaWRlOworCisgICAgdm9pZCBl
c3RhYmxpc2hDb25uZWN0aW9uKElQQzo6QXR0YWNobWVudCYpOworCisgICAgV0tXUEU6OlZpZXcm
IG1fdmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHlfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTlhMDA1NTc3NzYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdo
dCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFy
ZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IK
KyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorCittZXNzYWdlcyAtPiBDb21wb3NpdGluZ01hbmFnZXJQcm94eSB7CisgICAgRXN0
YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkK
K30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdB
cmVhUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2lu
Z0FyZWFQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjVjNjBjNDZjNzkzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eVdQRS5oIgorCisjaW5jbHVkZSAiRHJh
d2luZ0FyZWFNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RyYXdpbmdBcmVhUHJveHlXUEU6OkRyYXdpbmdBcmVh
UHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3
aW5nQXJlYVR5cGVXUEUsIHBhZ2UpCit7Cit9CisKK0RyYXdpbmdBcmVhUHJveHlXUEU6On5EcmF3
aW5nQXJlYVByb3h5V1BFKCkKK3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkZXZp
Y2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpzaXplRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV93
ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQorICAgICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCku
c2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OlVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKDAsIGZh
bHNlLCBtX3dlYlBhZ2VQcm94eS5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX3NpemUsIG1fc2Nyb2xs
T2Zmc2V0KSwgbV93ZWJQYWdlUHJveHkucGFnZUlEKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVh
UHJveHlXUEU6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lk
IChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIW1f
d2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENhbGxi
YWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFja0Z1bmN0aW9uXSB7
IGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSk7IH0pOworfQorCit2
b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2
NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRy
ZWVDb250ZXh0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdB
cmVhUHJveHlXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFj
a2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4
dCkKK3sKKyAgICBBU1NFUlQoIWJhY2tpbmdTdG9yZVN0YXRlSUQpOworCisgICAgbV9sYXllclRy
ZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4dDsKKyAgICBtX3dlYlBhZ2VQcm94eS5lbnRlckFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxheWVyVHJlZUNvbnRleHQpOworfQorCit2b2lkIERy
YXdpbmdBcmVhUHJveHlXUEU6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRf
dCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVwZGF0ZUFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5iMDMwMjA4NTgzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaApAQCAtMCwwICsxLDYwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
RHJhd2luZ0FyZWFQcm94eVdQRV9oCisjZGVmaW5lIERyYXdpbmdBcmVhUHJveHlXUEVfaAorCisj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4
dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFQcm94eVdQRSBm
aW5hbCA6IHB1YmxpYyBEcmF3aW5nQXJlYVByb3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBE
cmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYpOworICAgIHZpcnR1YWwgfkRyYXdpbmdB
cmVhUHJveHlXUEUoKTsKKworcHJpdmF0ZToKKyAgICAvLyBEcmF3aW5nQXJlYVByb3h5CisgICAg
dm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6
ZURpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJh
d2luZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPikgb3ZlcnJpZGU7
CisKKyAgICAvLyBJUEMgbWVzc2FnZSBoYW5kbGVycworICAgIHZvaWQgdXBkYXRlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRl
SUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7
CisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tp
bmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICAvLyBUaGUgY3VycmVudCBsYXll
ciB0cmVlIGNvbnRleHQuCisgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7
Cit9OworCit9CisKKworI2VuZGlmIC8vIERyYXdpbmdBcmVhUHJveHlXUEVfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NGUxMDJlY2YxYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBs
LmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNsaWVu
dEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKyNpbmNsdWRlICJO
YXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgor
I2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiV1BFVmlldy5o
IgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05v
dEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tXUEU6
OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1fc2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4oKSkKK3sK
K30KKworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0gZGVmYXVsdDsKKworc3Rk
Ojp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3
aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJl
YVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0
Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQoreworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UG9p
bnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7CisgICAgcmV0dXJuIHsg
fTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQorewor
ICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zp
ZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAm
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKworYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAm
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKworYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkg
JiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9z
ZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgp
Cit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1p
dExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0
IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNv
ckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFu
ZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJl
ZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkK
K3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpV
bmRvT3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKK30KKworV2Vi
Q29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dl
YkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4gcmVjdDsKK30KKworV2Vi
Q29yZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2ludDsKK30KKworV2ViQ29y
ZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBi
b29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29u
c3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQp
Cit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29u
c3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2
ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0b3VjaFBvaW50LT50eXBl
ID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYgKG1fc2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7CisgICAgICAgIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxl
ci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0
X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2
aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc3RydWN0
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudHsKKyAgICAgICAgd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0b3VjaFBvaW50LT50aW1lLAorICAgICAgICB0b3Vj
aFBvaW50LT54LCB0b3VjaFBvaW50LT55LAorICAgICAgICAxLCAwCisgICAgfTsKKworICAgIHN3
aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3R5cGVfZG93bjoKKyAgICAgICAgcG9pbnRlckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICAgICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246
CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlw
ZV9tb3Rpb247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHBvaW50
ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAg
ICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3Bl
X2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVu
dChOYXRpdmVXZWJNb3VzZUV2ZW50KCZwb2ludGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0
b3IoKSkpOworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JikKK3sKK30KKworUmVmUHRyPFdl
YlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2Vi
UGFnZVByb3h5JikKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworI2lmIEVOQUJMRShDT05U
RVhUX01FTlVTKQorc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGll
bnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRl
eHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpCit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisjZW5kaWYKKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKK3sKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlz
aExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0
IElQQzo6RGF0YVJlZmVyZW5jZSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmln
YXRpb25HZXN0dXJlRGlkQmVnaW4oKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZp
Z2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZCgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxS
ZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3Qo
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlM
YXlvdXRGb3JNYWluRnJhbWUoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5p
c2hMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFp
bExvYWRGb3JNYWluRnJhbWUoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1l
RG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBl
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3Io
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWZWaWV3KCkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGVyZWZWaWV3KCkKK3sKK30KKworI2lmIEVOQUJMRShWSURFTykKK2Jv
b2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBvbGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVn
aW5zUGVybWlzc2lvblJlcXVlc3QoSW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9u
UmVxdWVzdCYpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpCit7Cit9CisKK1dlYkNvcmU6OlVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gUGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VM
YXlvdXREaXJlY3Rpb24oKQoreworICAgIHJldHVybiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5
b3V0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI4ZWQ4MzNkMmViCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaApA
QCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFBhZ2VDbGllbnRJbXBsX2gKKyNkZWZpbmUgUGFnZUNsaWVudElt
cGxfaAorCisjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgorCituYW1lc3BhY2UgV0tXUEUgeworY2xh
c3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFNjcm9sbEdlc3R1cmVD
b250cm9sbGVyOworCitjbGFzcyBQYWdlQ2xpZW50SW1wbCBmaW5hbCA6IHB1YmxpYyBQYWdlQ2xp
ZW50IHsKK3B1YmxpYzoKKyAgICBQYWdlQ2xpZW50SW1wbChXS1dQRTo6VmlldyYpOworICAgIHZp
cnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CisKK3ByaXZhdGU6CisgICAgLy8gUGFnZUNsaWVudAor
ICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdp
bmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlz
cGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdT
Y3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2
aWV3U2l6ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBi
b29sIGlzVmlld0luV2luZG93KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vz
c0RpZEV4aXQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNz
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25z
dCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxv
YWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisK
KyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9v
bCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZp
cnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQ
cm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNh
blVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2Uo
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3Jl
OjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29y
ZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVuKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVy
cmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdp
dGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmLCBib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3Qg
TmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBSZWZQdHI8V2Vi
UG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJy
aWRlOworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVf
cHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVBy
b3h5JiwgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikgb3Zl
cnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJl
ZUNvbnRleHQmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5n
RGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRh
dGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2Vz
dHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0
dXJlV2lsbEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVE
aWRFbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25T
bmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUo
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFp
bkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlkZTsKKworICAgIHZpcnR1
YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRlcmVmVmlldygp
IG92ZXJyaWRlOworCisjaWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQ
b2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3Rh
bGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKSBvdmVycmlkZTsKKyNlbmRp
ZgorCisgICAgdmlydHVhbCB2b2lkIGRpZFJlc3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hh
bmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisKKyAgICBXS1dQRTo6VmlldyYg
bV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdlc3R1cmVDb250cm9sbGVyPiBt
X3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNj
cm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6
aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNo
UG9pbnQpCit7CisgICAgc3dpdGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3Vj
aFBvaW50LT50aW1lOworICAgICAgICBtX3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAg
ICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQ
b2ludC0+eDsKKyAgICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoK
KyAgICAgICAgaWYgKCFtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9
IHRvdWNoUG9pbnQtPnggLSBtX3N0YXJ0Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9
IHRvdWNoUG9pbnQtPnkgLSBtX3N0YXJ0Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRp
bWUgPSB0b3VjaFBvaW50LT50aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQg
cGl4ZWxzUGVyTGluZVN0ZXAgPSBXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVw
KCk7CisgICAgICAgICAgICBtX2hhbmRsaW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQ
ZXJMaW5lU3RlcAorICAgICAgICAgICAgICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxz
UGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAg
ICB9CisgICAgICAgIGlmIChtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9
IHsKKyAgICAgICAgICAgICAgICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAg
ICAgICAgICAgICAgICB0b3VjaFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAg
ICAgICAgICAgICAgICAyLCAodG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAg
ICB9OworICAgICAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAg
ICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3Vj
aF9ldmVudF90eXBlX3VwOgorICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAg
bV9oYW5kbGluZyA9IGZhbHNlOworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAg
ICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAg
IDAsIDAsIDAsIDAsIDAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcy
NGFhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
bmNsdWRlIDx3cGUvaW5wdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3Jv
bGxHZXN0dXJlQ29udHJvbGxlciB7CitwdWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNF
dmVudCgpIHsgcmV0dXJuICZtX2F4aXNFdmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChj
b25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAg
IHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3Qg
eCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAg
IHN0cnVjdCB7CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsg
MCB9OworICAgIH0gbV9vZmZzZXQ7CisKKyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9Owor
ICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uN2Y5ZjEyY2Qy
ZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmNwcApAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BF
Vmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJO
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5o
IgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJX
aGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdw
ZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJh
c2VDb25maWd1cmF0aW9uKQorICAgIDogbV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFn
ZUNsaWVudEltcGw+KCp0aGlzKSkKKyAgICAsIG1fc2l6ZXsgODAwLCA2MDAgfQorICAgICwgbV92
aWV3U3RhdGVGbGFncyhXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZCB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6
OklzVmlzaWJsZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3cpCisgICAgLCBt
X2NvbXBvc2l0aW5nTWFuYWdlclByb3h5KCp0aGlzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlv
biA9IGJhc2VDb25maWd1cmF0aW9uLmNvcHkoKTsKKyAgICBhdXRvKiBwcmVmZXJlbmNlcyA9IGNv
bmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCk7CisgICAgaWYgKCFwcmVmZXJlbmNlcyAmJiBjb25m
aWd1cmF0aW9uLT5wYWdlR3JvdXAoKSkgeworICAgICAgICBwcmVmZXJlbmNlcyA9ICZjb25maWd1
cmF0aW9uLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKKyAgICAgICAgY29uZmlndXJhdGlv
bi0+c2V0UHJlZmVyZW5jZXMocHJlZmVyZW5jZXMpOworICAgIH0KKyAgICBpZiAocHJlZmVyZW5j
ZXMpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFi
bGVkKHRydWUpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
dHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxl
ZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldFdlYkdMRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgcHJlZmVyZW5jZXMtPnNldFdlYlNlY3VyaXR5RW5hYmxlZChmYWxzZSk7CisgICAgICAg
IHByZWZlcmVuY2VzLT5zZXREZXZlbG9wZXJFeHRyYXNFbmFibGVkKHRydWUpOworICAgIH0KKwor
ICAgIGF1dG8qIHBvb2wgPSBjb25maWd1cmF0aW9uLT5wcm9jZXNzUG9vbCgpOworICAgIG1fcGFn
ZVByb3h5ID0gcG9vbC0+Y3JlYXRlV2ViUGFnZSgqbV9wYWdlQ2xpZW50LCBXVEZNb3ZlKGNvbmZp
Z3VyYXRpb24pKTsKKworICAgIG1fYmFja2VuZCA9IGJhY2tlbmQ7CisgICAgaWYgKCFtX2JhY2tl
bmQpCisgICAgICAgIG1fYmFja2VuZCA9IHdwZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7CisgICAg
bV9jb21wb3NpdGluZ01hbmFnZXJQcm94eS5pbml0aWFsaXplKCk7CisKKyAgICBzdGF0aWMgc3Ry
dWN0IHdwZV92aWV3X2JhY2tlbmRfY2xpZW50IHNfYmFja2VuZENsaWVudCA9IHsKKyAgICAgICAg
Ly8gc2V0X3NpemUKKyAgICAgICAgW10odm9pZCogZGF0YSwgdWludDMyX3Qgd2lkdGgsIHVpbnQz
Ml90IGhlaWdodCkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgdmlldyA9ICpyZWludGVy
cHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAgICAgICAgICAgIHZpZXcuc2V0U2l6ZShXZWJDb3Jl
OjpJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICAgICAgfSwKKyAgICAgICAgLy8gZnJhbWVf
ZGlzcGxheWVkCisgICAgICAgIFtdKHZvaWQqIGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAg
IGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAg
ICB2aWV3LmZyYW1lRGlzcGxheWVkKCk7CisgICAgICAgIH0KKyAgICB9OworICAgIHdwZV92aWV3
X2JhY2tlbmRfc2V0X2JhY2tlbmRfY2xpZW50KG1fYmFja2VuZCwgJnNfYmFja2VuZENsaWVudCwg
dGhpcyk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfaW5wdXRfY2xpZW50
IHNfaW5wdXRDbGllbnQgPSB7CisgICAgICAgIC8vIGhhbmRsZV9rZXlib2FyZF9ldmVudAorICAg
ICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVu
dCkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0
PFZpZXcqPihkYXRhKTsKKyAgICAgICAgICAgIHZpZXcucGFnZSgpLmhhbmRsZUtleWJvYXJkRXZl
bnQoV2ViS2l0OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSk7CisgICAgICAgIH0sCisg
ICAgICAgIC8vIGhhbmRsZV9wb2ludGVyX2V2ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOwor
ICAgICAgICAgICAgcGFnZS5oYW5kbGVNb3VzZUV2ZW50KFdlYktpdDo6TmF0aXZlV2ViTW91c2VF
dmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAg
ICAgIC8vIGhhbmRsZV9heGlzX2V2ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8m
IHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAg
ICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChldmVu
dCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhh
bmRsZV90b3VjaF9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0
X3RvdWNoX2V2ZW50KiBldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgcGFnZSA9
IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpLT5wYWdlKCk7CisgICAgICAgICAgICBwYWdl
LmhhbmRsZVRvdWNoRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJUb3VjaEV2ZW50KGV2ZW50LCBwYWdl
LmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAgfSwKKyAgICB9OworICAgIHdwZV92aWV3
X2JhY2tlbmRfc2V0X2lucHV0X2NsaWVudChtX2JhY2tlbmQsICZzX2lucHV0Q2xpZW50LCB0aGlz
KTsKKworICAgIHdwZV92aWV3X2JhY2tlbmRfaW5pdGlhbGl6ZShtX2JhY2tlbmQpOworCisgICAg
bV9wYWdlUHJveHktPmluaXRpYWxpemVXZWJQYWdlKCk7Cit9CisKK1ZpZXc6On5WaWV3KCkKK3sK
KyAgICB3cGVfdmlld19iYWNrZW5kX2Rlc3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBWaWV3
Ojppbml0aWFsaXplQ2xpZW50KGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAg
ICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVudCk7Cit9CisKK3ZvaWQgVmlldzo6ZnJhbWVEaXNw
bGF5ZWQoKQoreworICAgIG1fY2xpZW50LmZyYW1lRGlzcGxheWVkKCp0aGlzKTsKK30KKwordm9p
ZCBWaWV3OjpzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9z
aXplID0gc2l6ZTsKKyAgICBpZiAobV9wYWdlUHJveHktPmRyYXdpbmdBcmVhKCkpCisgICAgICAg
IG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKHNpemUsIFdlYkNvcmU6OkludFNp
emUoKSwgV2ViQ29yZTo6SW50U2l6ZSgpKTsKK30KKwordm9pZCBWaWV3OjpzZXRWaWV3U3RhdGUo
V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgZmxhZ3MpCit7CisgICAgc3RhdGljIGNvbnN0
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGRlZmF1bHRGbGFncyA9IFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNG
b2N1c2VkOworCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgY2hhbmdlZEZsYWdz
ID0gbV92aWV3U3RhdGVGbGFncyBeIChkZWZhdWx0RmxhZ3MgfCBmbGFncyk7CisgICAgbV92aWV3
U3RhdGVGbGFncyA9IGRlZmF1bHRGbGFncyB8IGZsYWdzOworCisgICAgaWYgKGNoYW5nZWRGbGFn
cykKKyAgICAgICAgbV9wYWdlUHJveHktPmFjdGl2aXR5U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZEZs
YWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uMzczNmU5M2NjNTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3LmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRVZpZXdfaAorI2RlZmlu
ZSBXUEVWaWV3X2gKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0
aW5nTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXUEVWaWV3Q2xpZW50LmgiCisjaW5jbHVkZSA8
V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisjaW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0
Zi9SZWZQdHIuaD4KKworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQ7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworY2xhc3MgV2ViUGFnZUdyb3VwOworY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Cit9CisKK25h
bWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXcgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQ
STo6T2JqZWN0OjpUeXBlOjpWaWV3PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFZpZXcqIGNyZWF0
ZShzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmln
dXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBuZXcgVmlldyhi
YWNrZW5kLCBjb25maWd1cmF0aW9uKTsKKyAgICB9CisKKyAgICAvLyBDbGllbnQgbWV0aG9kcwor
ICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisgICAg
dm9pZCBmcmFtZURpc3BsYXllZCgpOworCisgICAgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2Uo
KSB7IHJldHVybiAqbV9wYWdlUHJveHk7IH0KKworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5k
KiBiYWNrZW5kKCkgeyByZXR1cm4gbV9iYWNrZW5kOyB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9zaXplOyB9CisKKyAgICBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyB2aWV3U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTdGF0
ZUZsYWdzOyB9CisgICAgdm9pZCBzZXRWaWV3U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
RmxhZ3MpOworCitwcml2YXRlOgorICAgIFZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqLCBj
b25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJik7CisgICAgdmlydHVhbCB+VmlldygpOworCisg
ICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpOworCisgICAgVmll
d0NsaWVudCBtX2NsaWVudDsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsPiBtX3BhZ2VDbGllbnQ7CisgICAgUmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBt
X3BhZ2VQcm94eTsKKyAgICBXZWJDb3JlOjpJbnRTaXplIG1fc2l6ZTsKKyAgICBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyBtX3ZpZXdTdGF0ZUZsYWdzOworCisgICAgV2ViS2l0OjpDb21w
b3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5OworICAgIHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tlbmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXS1dQ
RQorCisjZW5kaWYgLy8gV1BFVmlld19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi45ZjFmMzdkOWU3YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldQRVZp
ZXcuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKwordXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xp
ZW50OjpmcmFtZURpc3BsYXllZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFt
ZURpc3BsYXllZCkKKyAgICAgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcp
LCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVu
dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NGRmZDViMTU1ZQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGll
bnQuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFVmlld0NsaWVudF9oCisjZGVmaW5lIFdQRVZpZXdD
bGllbnRfaAorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVmll
dy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxX
S1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxlPFdLVmlld0NsaWVudFYw
PiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXc7CisK
K2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tWaWV3Q2xpZW50QmFzZT4g
eworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKworI2VuZGlmIC8vIFdQRVZpZXdDbGllbnRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS54bWwgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQy
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNTgyMDkyYmJmZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApA
QCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8
Z3Jlc291cmNlcz4KKyAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlIj4KKyAgICA8ZmlsZT5pbnNwZWN0b3JQYWdlSW5kZXguaHRtbDwvZmlsZT4KKyAg
PC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAyN2JlYzM2MjMxNS4uZmQ4NDhjY2VkMzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAt
NTUsNyArNTUsNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFBy
b2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGlmIChtX2Fsd2F5c1J1
bnNBdEJhY2tncm91bmRQcmlvcml0eSkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRp
YWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRlcmFsKCJhbHdheXMtcnVucy1hdC1iYWNrZ3JvdW5k
LXByaW9yaXR5IiksICJ0cnVlIik7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBM
QVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgY29uc3QgY2hhciogdmFybmFtZTsKICAgICBzd2l0Y2gg
KGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUpIHsKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6
UHJvY2Vzc1R5cGU6OldlYjoKQEAgLTc5LDcgKzc5LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94
eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5j
aE8KICAgICBjb25zdCBjaGFyKiBwcm9jZXNzQ21kUHJlZml4ID0gZ2V0ZW52KHZhcm5hbWUpOwog
ICAgIGlmIChwcm9jZXNzQ21kUHJlZml4ICYmICpwcm9jZXNzQ21kUHJlZml4KQogICAgICAgICBs
YXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXggPSBTdHJpbmc6OmZyb21VVEY4KHByb2Nlc3ND
bWRQcmVmaXgpOwotI2VuZGlmIC8vIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0o
R1RLKQorI2VuZGlmIC8vIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKIH0KIAogdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Y29ubmVjdCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dl
Ykluc3BlY3RvclNlcnZlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNl
cnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaAppbmRleCA5MzlhN2UyMWI3OC4uMDc0ODdiYTNlMGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2Vi
SW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkQ2xvc2VXZWJTb2NrZXRDb25uZWN0aW9uKFdlYlNvY2tldFNlcnZlckNvbm5l
Y3Rpb24qKSBmaW5hbDsKIAogICAgIGJvb2wgcGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3Qg
U3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpOwot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICB2b2lkIGJ1aWxkUGFnZUxpc3QoVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRU
eXBlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjY4M2UzZDcxNjAKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVy
L3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yU2VydmVyLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKKwor
I2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGdtb2R1bGUuaD4KKyNpbmNsdWRlIDxtdXRl
eD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworYm9vbCBXZWJJbnNwZWN0b3JTZXJ2ZXI6OnBsYXRmb3JtUmVzb3VyY2VG
b3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNv
bnRlbnRUeXBlKQoreworICAgIC8vIFRoZSBwYWdlIGxpc3QgY29udGFpbnMgYW4gdW5mb3JtYXRl
ZCBsaXN0IG9mIHBhZ2VzIHRoYXQgY2FuIGJlIGluc3BlY3RlZCB3aXRoIGEgbGluayB0byBvcGVu
IGEgc2Vzc2lvbi4KKyAgICBpZiAocGF0aCA9PSAiL3BhZ2VsaXN0Lmpzb24iKSB7CisgICAgICAg
IGJ1aWxkUGFnZUxpc3QoZGF0YSwgY29udGVudFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxf
b25jZShmbGFnLCBbXSB7CisgICAgICAgIEdNb2R1bGUqIHJlc291cmNlc01vZHVsZSA9IGdfbW9k
dWxlX29wZW4oImxpYldQRVdlYkluc3BlY3RvclJlc291cmNlcy5zbyIsIEdfTU9EVUxFX0JJTkRf
TEFaWSk7CisgICAgICAgIGlmICghcmVzb3VyY2VzTW9kdWxlKSB7CisgICAgICAgICAgICBXVEZM
b2dBbHdheXMoIkVycm9yIGxvYWRpbmcgbGliV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzLnNvOiAl
cyIsIGdfbW9kdWxlX2Vycm9yKCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgZ19tb2R1bGVfbWFrZV9yZXNpZGVudChyZXNvdXJjZXNNb2R1bGUpOworICAgIH0p
OworCisgICAgLy8gUG9pbnQgdGhlIGRlZmF1bHQgcGF0aCB0byBhIGZvcm1hdHRlZCBwYWdlIHRo
YXQgcXVlcmllcyB0aGUgcGFnZSBsaXN0IGFuZCBkaXNwbGF5IHRoZW0uCisgICAgQ1N0cmluZyBy
ZXNvdXJjZVBhdGggPSBtYWtlU3RyaW5nKCIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFj
ZSIsIChwYXRoID09ICIvIiA/ICIvaW5zcGVjdG9yUGFnZUluZGV4Lmh0bWwiIDogcGF0aCkpLnV0
ZjgoKTsKKyAgICBpZiAocmVzb3VyY2VQYXRoLmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdFcnJvcj4gZXJyb3I7CisgICAgR1JlZlB0cjxHQnl0
ZXM+IHJlc291cmNlQnl0ZXMgPSBhZG9wdEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocmVz
b3VyY2VQYXRoLmRhdGEoKSwgR19SRVNPVVJDRV9MT09LVVBfRkxBR1NfTk9ORSwgJmVycm9yLm91
dFB0cigpKSk7CisgICAgaWYgKCFyZXNvdXJjZUJ5dGVzKSB7CisgICAgICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI8IURPQ1RZUEUgaHRt
bD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+RXJyb3I6ICIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZE51bWJlcihlcnJvci0+Y29kZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
LCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBi
dWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvY2N1cnJlZCBkdXJpbmcgZmV0Y2hpbmcgaW5zcGVjdG9y
IHJlc291cmNlIGZpbGVzLjwvYm9keT48L2h0bWw+Iik7CisKKyAgICAgICAgQ1N0cmluZyBlcnJv
ckhUTUwgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgICAgICBkYXRhLmFwcGVuZChl
cnJvckhUTUwuZGF0YSgpLCBlcnJvckhUTUwubGVuZ3RoKCkpOworICAgICAgICBjb250ZW50VHlw
ZSA9ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygi
RXJyb3IgZmV0Y2hpbmcgd2ViaW5zcGVjdG9yIHJlc291cmNlIGZpbGVzOiAlZCwgJXMiLCBlcnJv
ci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgZ3NpemUgcmVzb3VyY2VEYXRhU2l6ZTsKKyAgICBnY29uc3Rwb2ludGVyIHJlc291cmNl
RGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVzb3VyY2VCeXRlcy5nZXQoKSwgJnJlc291cmNlRGF0
YVNpemUpOworICAgIGRhdGEuYXBwZW5kKHN0YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXNvdXJj
ZURhdGEpLCByZXNvdXJjZURhdGFTaXplKTsKKworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1pbWVU
eXBlKGdfY29udGVudF90eXBlX2d1ZXNzKHJlc291cmNlUGF0aC5kYXRhKCksIHN0YXRpY19jYXN0
PGNvbnN0IGd1Y2hhcio+KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUsIG51bGxwdHIp
KTsKKyAgICBjb250ZW50VHlwZSA9IG1pbWVUeXBlLmdldCgpOworICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIFdlYkluc3BlY3RvclNlcnZlcjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4m
IGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gY2hyb21lZGV2dG9vbHMgKGh0
dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJvbWVkZXZ0b29scykgMC4zLjggZXhwZWN0ZWQgSlNP
TiBmb3JtYXQ6CisgICAgLy8geworICAgIC8vICAidGl0bGUiOiAiRm9vIiwKKyAgICAvLyAgInVy
bCI6ICJodHRwOi8vZm9vIiwKKyAgICAvLyAgImRldnRvb2xzRnJvbnRlbmRVcmwiOiAiL01haW4u
aHRtbD93cz1sb2NhbGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiLAorICAgIC8vICAid2ViU29j
a2V0RGVidWdnZXJVcmwiOiAid3M6Ly9sb2NhbGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiCisg
ICAgLy8gfSwKKworICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlsgIik7CisgICAgQ2xpZW50TWFwOjppdGVyYXRvciBlbmQgPSBtX2NsaWVudE1h
cC5lbmQoKTsKKyAgICBmb3IgKENsaWVudE1hcDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudE1hcC5i
ZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdl
ID0gaXQtPnZhbHVlLT5pbnNwZWN0ZWRQYWdlKCk7CisgICAgICAgIGlmIChpdCAhPSBtX2NsaWVu
dE1hcC5iZWdpbigpKQorICAgICAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoInsgXCJpZFwiOiAiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgiLCBcInRpdGxlXCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBh
Z2VMb2FkU3RhdGUoKS50aXRsZSgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
IiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxv
YWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJc
IiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCIvTWFpbi5odG1sP3BhZ2U9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5r
ZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImRldnRvb2xzRnJvbnRl
bmRVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1s
P3dzPSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHBvcnQoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2Uv
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcIndlYlNvY2tldERlYnVnZ2VyVXJsXCI6IFwiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgid3M6Ly8iKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmQoYmluZEFkZHJlc3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIp
OworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiB9Iik7
CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIF0iKTsKKyAgICBDU3RyaW5nIGNz
dHIgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRmOCgpOworICAgIGRhdGEuYXBwZW5kKGNzdHIuZGF0
YSgpLCBjc3RyLmxlbmd0aCgpKTsKKyAgICBjb250ZW50VHlwZSA9ICJhcHBsaWNhdGlvbi9qc29u
OyBjaGFyc2V0PXV0Zi04IjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVu
Y2hlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hl
ci5oCmluZGV4IDM5OTUwNjk0OGVmLi5iYTc3YzJhYzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaApAQCAtNjAsNyArNjAs
NyBAQCBwdWJsaWM6CiAgICAgICAgIFByb2Nlc3NUeXBlIHByb2Nlc3NUeXBlOwogICAgICAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRyYUluaXRpYWxpemF0aW9uRGF0YTsKIAotI2lmIEVO
QUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZFTE9Q
RVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICAgICAgICAgU3Ry
aW5nIHByb2Nlc3NDbWRQcmVmaXg7CiAjZW5kaWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43MDIzYzU0MjIxMgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUv
UHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApAQCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBD
b3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RP
Uk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQ
cm9jZXNzTGF1bmNoZXIuaCIKKworI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQ
cm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4K
KyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1ob3N0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3Au
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUg
PHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklYTUU6IE1lcmdlIHdpdGggUHJvY2Vzc0xh
dW5jaGVyR3RrPworCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3N0YXRpYyB2b2lkIGNoaWxkU2V0dXBGdW5jdGlvbihncG9pbnRlciB1c2VyRGF0YSkK
K3sKKyAgICBpbnQgc29ja2V0ID0gR1BPSU5URVJfVE9fSU5UKHVzZXJEYXRhKTsKKyAgICBjbG9z
ZShzb2NrZXQpOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7
CisgICAgR1BpZCBwaWQgPSAwOworCisgICAgSVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQYWlyIHNv
Y2tldFBhaXIgPSBJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbihJUEM6
OkNvbm5lY3Rpb246OkNvbm5lY3Rpb25PcHRpb25zOjpTZXRDbG9leGVjT25TZXJ2ZXIpOworCisg
ICAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoOworICAgIENTdHJpbmcgcmVhbEV4ZWN1dGFibGVQYXRo
OworICAgIHN3aXRjaCAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSB7CisgICAgY2FzZSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWI6CisgICAgICAgIGV4ZWN1dGFibGVQYXRo
ID0gZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpOZXR3b3JrOgorICAgICAgICBleGVjdXRh
YmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZOZXR3b3JrUHJvY2VzcygpOworICAgICAgICBicmVh
azsKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hl
cjo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1
dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAg
ICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIHJlYWxFeGVjdXRhYmxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihleGVjdXRhYmxlUGF0aCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gd2tTb2NrZXQoZ19z
dHJkdXBfcHJpbnRmKCIlZCIsIHNvY2tldFBhaXIuY2xpZW50KSk7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gd3BlU29ja2V0OworCisgICAgdW5zaWduZWQgbmFyZ3MgPSA0OyAvLyBzaXplIG9mIHRo
ZSBhcmd2IGFycmF5IGZvciBnX3NwYXduX2FzeW5jKCkKKyAgICBpZiAobV9sYXVuY2hPcHRpb25z
LnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYikgeworICAg
ICAgICB3cGVTb2NrZXQgPSBHVW5pcXVlUHRyPGdjaGFyPihnX3N0cmR1cF9wcmludGYoIiVkIiwg
d3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2NsaWVudCgpKSk7CisgICAgICAgIG5hcmdzID0gNTsK
KyAgICB9CisKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisgICAgVmVjdG9yPENTdHJpbmc+
IHByZWZpeEFyZ3M7CisgICAgaWYgKCFtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5p
c051bGwoKSkgeworICAgICAgICBWZWN0b3I8U3RyaW5nPiBzcGxpdEFyZ3M7CisgICAgICAgIG1f
bGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4LnNwbGl0KCcgJywgc3BsaXRBcmdzKTsKKyAg
ICAgICAgZm9yIChhdXRvIGl0ID0gc3BsaXRBcmdzLmJlZ2luKCk7IGl0ICE9IHNwbGl0QXJncy5l
bmQoKTsgaXQrKykKKyAgICAgICAgICAgIHByZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOwor
ICAgICAgICBuYXJncyArPSBwcmVmaXhBcmdzLnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAg
IGNoYXIqKiBhcmd2ID0gZ19uZXdhKGNoYXIqLCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7
CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKQorICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXgg
Y29tbWFuZCwgcHV0IGl0IGJlZm9yZSB0aGUgcmVzdCBvZiB0aGUgYXJncy4KKyAgICBmb3IgKGF1
dG8gaXQgPSBwcmVmaXhBcmdzLmJlZ2luKCk7IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0Kysp
CisgICAgICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworI2Vu
ZGlmCisgICAgYXJndltpKytdID0gY29uc3RfY2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRo
LmRhdGEoKSk7CisgICAgYXJndltpKytdID0gd2tTb2NrZXQuZ2V0KCk7CisgICAgaWYgKG1fbGF1
bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpX
ZWIpCisgICAgICAgIGFyZ3ZbaSsrXSA9IHdwZVNvY2tldC5nZXQoKTsKKyAgICBhcmd2W2krK10g
PSBudWxscHRyOworCisgICAgR1VuaXF1ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIGlmICgh
Z19zcGF3bl9hc3luYygwLCBhcmd2LCAwLCBHX1NQQVdOX0xFQVZFX0RFU0NSSVBUT1JTX09QRU4s
IGNoaWxkU2V0dXBGdW5jdGlvbiwgR0lOVF9UT19QT0lOVEVSKHNvY2tldFBhaXIuc2VydmVyKSwg
JnBpZCwgJmVycm9yLm91dFB0cigpKSkgeworICAgICAgICBnX3ByaW50ZXJyKCJVbmFibGUgdG8g
Zm9yayBhIG5ldyBXZWJQcm9jZXNzOiAlcy5cbiIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBw
YXJlbnQgc29ja2V0IHRvIHBvdGVudGlhbCBmdXR1cmUgY2hpbGRyZW4uCisgICAgd2hpbGUgKGZj
bnRsKHNvY2tldFBhaXIuY2xpZW50LCBGX1NFVEZELCBGRF9DTE9FWEVDKSA9PSAtMSkKKyAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoZXJybm8gIT0gRUlOVFIpOworCisgICAgY2xvc2Uoc29ja2V0UGFp
ci5jbGllbnQpOworICAgIG1fcHJvY2Vzc0lkZW50aWZpZXIgPSBwaWQ7CisKKyAgICAvLyBXZSd2
ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHByb2Nlc3MsIG1lc3NhZ2UgYmFjayB0byB0aGUgbWFp
biBydW4gbG9vcC4KKyAgICBSZWZQdHI8UHJvY2Vzc0xhdW5jaGVyPiBwcm90ZWN0b3IodGhpcyk7
CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVudGlmaWVyIHNlcnZlclNvY2tldCA9IHNvY2tldFBh
aXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdG9yLCBwaWQs
IHNlcnZlclNvY2tldF0geworICAgICAgICBwcm90ZWN0b3ItPmRpZEZpbmlzaExhdW5jaGluZ1By
b2Nlc3MocGlkLCBzZXJ2ZXJTb2NrZXQpOworICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NMYXVu
Y2hlcjo6dGVybWluYXRlUHJvY2VzcygpCit7CisgICAgaWYgKG1faXNMYXVuY2hpbmcpIHsKKyAg
ICAgICAgaW52YWxpZGF0ZSgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFt
X3Byb2Nlc3NJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisKKyAgICBraWxsKG1fcHJvY2Vz
c0lkZW50aWZpZXIsIFNJR0tJTEwpOworICAgIG1fcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworfQor
Cit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5oCmluZGV4IDFjOGVmNDYzY2MyLi44NDdmYjVjMzIyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKQEAgLTIyNCw3ICsyMjQsNyBAQCBw
cml2YXRlOgogCiAgICAgV2ViUHJlZmVyZW5jZXMmIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygp
IGNvbnN0OwogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CiAgICAgdm9pZCB1cGRh
dGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNvbnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKaW5kZXggMjY1NTczNjFmNTUuLjc3MmUx
MDkxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oCkBAIC05NCw2ICs5NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkU3Ry
aW5nRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwog
ICAgIHZvaWQgc2V0UGFzdGVib2FyZEJ1ZmZlckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU2hhcmVkTWVtb3J5
OjpIYW5kbGUmLCB1aW50NjRfdCBzaXplLCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogI2Vu
ZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYlNlbGVjdGlvbkRhdGEmKTsKICAgICB2
b2lkIHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYlNl
bGVjdGlvbkRhdGEmKTsKQEAgLTEwMSw3ICsxMDIsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJGcmFt
ZVByb3h5KiBtX3ByaW1hcnlTZWxlY3Rpb25Pd25lciB7IG51bGxwdHIgfTsKICAgICBXZWJGcmFt
ZVByb3h5KiBtX2ZyYW1lV3JpdGluZ1RvQ2xpcGJvYXJkIHsgbnVsbHB0ciB9OwogI2VuZGlmIC8v
IFBMQVRGT1JNKEdUSykKLSAgICAKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGdldFBh
c3RlYm9hcmRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKTsKKyAgICB2b2lk
IHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcmKTsKKyAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRv
UGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHZv
aWQgd3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwogICAgIFdlYlByb2Nlc3NQcm94eUxpc3QgbV93ZWJQ
cm9jZXNzUHJveHlMaXN0OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNzM2YTBhZDQ1MWMuLjcw
MTU0NDNlYThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVi
b2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KQEAgLTU1LDQgKzU1LDExIEBAIG1lc3NhZ2VzIC0+
IFdlYlBhc3RlYm9hcmRQcm94eSB7CiAgICAgV3JpdGVUb0NsaXBib2FyZChTdHJpbmcgcGFzdGVi
b2FyZE5hbWUsIHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRl
bnQpCiAgICAgUmVhZEZyb21DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3Ry
dWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICNlbmRpZgor
CisjaWYgUExBVEZPUk0oV1BFKQorICAgIEdldFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8
U3RyaW5nPiB0eXBlcykKKyAgICBSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5k
ZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkgLT4gKFN0cmluZyBzdHJpbmcpCisgICAgV3JpdGVX
ZWJDb250ZW50VG9QYXN0ZWJvYXJkKHN0cnVjdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVu
dCBjb250ZW50KQorICAgIFdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJk
VHlwZSwgU3RyaW5nIHRleHQpCisjZW5kaWYKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDBkMzAyZGRhYjEzLi40ZDMyOWI0MGYzNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0yODMsNyArMjgz
LDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlByb2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25m
aWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQogICAgIG5vdGlmeVRoaXNXZWJQcm9jZXNzUG9vbFdh
c0NyZWF0ZWQoKTsKIH0KIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09D
T0EpICYmICFQTEFURk9STShXUEUpCiB2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9U
ZXh0Q2hlY2tlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVj
a2VyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM3MGZm
MmJhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1Rl
eHRDaGVja2VyV1BFLmNwcApAQCAtMCwwICsxLDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVGV4dENoZWNrZXIuaCIKKworI2luY2x1ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENo
ZWNrZXJTdGF0ZTsKKworY29uc3QgVGV4dENoZWNrZXJTdGF0ZSYgVGV4dENoZWNrZXI6OnN0YXRl
KCkKK3sKKyAgICByZXR1cm4gdGV4dENoZWNrZXJTdGF0ZTsKK30KKwordm9pZCBUZXh0Q2hlY2tl
cjo6c2V0VGVzdGluZ01vZGUoYm9vbCkKK3sKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNUZXN0
aW5nTW9kZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBU
ZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNo
ZWNraW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
VGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChi
b29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6Omdy
YW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCitpbnQ2NF90IFRleHRDaGVja2VyOjp1bmlxdWVTcGVsbERvY3VtZW50VGFn
KFdlYlBhZ2VQcm94eSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNsb3NlU3BlbGxEb2N1bWVudFdpdGhUYWcoaW50
NjRfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpj
aGVja1NwZWxsaW5nT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywgaW50MzJfdCYsIGludDMy
X3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNo
ZWNrR3JhbW1hck9mU3RyaW5nKGludDY0X3QsIFN0cmluZ1ZpZXcsIFZlY3RvcjxXZWJDb3JlOjpH
cmFtbWFyRGV0YWlsPiYsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCitib29sIFRleHRDaGVja2VyOjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVk
V29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhp
bnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25zdCBHcmFtbWFyRGV0YWlsJikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpnZXRHdWVzc2VzRm9yV29yZChp
bnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBpbnQzMl90LCBWZWN0b3I8U3Ry
aW5nPiYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlcjo6bGVhcm5Xb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6aWdub3JlV29yZChpbnQ2NF90LCBjb25z
dCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNr
ZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5nKFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0
aW9uPiwgaW50MzJfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2Vi
SW5zcGVjdG9yUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJ
bnNwZWN0b3JQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjViYWVlZTNjMTdmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisK
K25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUlu
c3BlY3RvcldpbmRvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURp
ZENsb3NlRm9yQ3Jhc2goKQoreworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUludmFsaWRhdGUoKQoreworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUhp
ZGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJv
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtSXNGcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVk
VVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVVSTCgpCit7CisgICAgcmV0
dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9N
YWluLmh0bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JUZXN0
UGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNw
ZWN0b3IvVXNlckludGVyZmFjZS9UZXN0Lmh0bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3Rv
clByb3h5OjppbnNwZWN0b3JCYXNlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJj
ZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlLyIpOworfQorCit1bnNpZ25lZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3Vuc2lnbmVkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUF0dGFjaCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EZXRhY2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgYm9vbCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtQXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YTIwMmFiZWI0ZgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcApAQCAtMCww
ICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKworI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2Vi
UGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2VudChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVy
biAiTW96aWxsYS81LjAgKExpbnV4OyB4ODZfNjQgR05VL0xpbnV4KSBBcHBsZVdlYktpdC82MDEu
MSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNpb24vOC4wIFNhZmFyaS82MDEuMSI7Cit9CisKK3Zv
aWQgV2ViUGFnZVByb3h5OjpzYXZlUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojpsb2FkUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5n
JiwgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6cGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFy
Y2hlcyhzdGQ6OmNocm9ubzo6c3lzdGVtX2Nsb2NrOjp0aW1lX3BvaW50KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQo
Y29uc3QgRWRpdG9yU3RhdGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44ZDNkMGViNDZkNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcApAQCAtMCwwICsxLDU1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYXN0ZWJvYXJkUHJveHkuaCIKKworI2luY2x1
ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5OjpnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0
cmluZz4mIHBhc3RlYm9hcmRUeXBlcykKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5nZXRU
eXBlcyhwYXN0ZWJvYXJkVHlwZXMpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVh
ZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlLCBXVEY6OlN0cmluZyYgdmFsdWUpCit7CisgICAgdmFsdWUgPSBQbGF0Zm9ybVBh
c3RlYm9hcmQoKS5yZWFkU3RyaW5nKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSk7Cit9CisKK3ZvaWQg
V2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2Vi
Q29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgUGxhdGZvcm1QYXN0
ZWJvYXJkKCkud3JpdGUoY29udGVudCk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25z
dCBTdHJpbmcmIHRleHQpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUocGFzdGVi
b2FyZFR5cGUsIHRleHQpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZmODFmY2RhMWNmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAK
QEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMu
aCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtSW5pdGlhbGl6ZVN0b3JlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0
Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxh
dGZvcm1VcGRhdGVCb29sVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0
ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90KQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRG91
YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZG91YmxlKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRmxvYXRWYWx1
ZUZvcktleShjb25zdCBTdHJpbmcmLCBmbG9hdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldFN0cmluZ1VzZXJWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmLCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldEJvb2xV
c2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgYm9vbCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtR2V0VUludDMyVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90JikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXREb3VibGVVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgZG91YmxlJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mZGU0ZjMxNzI0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCkBAIC0wLDAgKzEsMTYzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiQVBJUHJv
Y2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUg
Ik5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJv
eHkuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNs
dWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklY
TUU6IE1lcmdlIHdpdGggV2ViUHJvY2Vzc1Bvb2xHdGs/IEFic3RyYWN0IHRoZSBjb21tb24gcGFy
dHM/CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIp
CitzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9yU2VydmVyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBp
bml0aWFsaXplZCA9IGZhbHNlOworICAgIGlmIChpbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgaW5pdGlhbGl6ZWQgPSB0cnVlOworICAgIFN0cmluZyBzZXJ2ZXJBZGRyZXNzKGdf
Z2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NFUlZFUiIpKTsKKworICAgIGlmICghc2VydmVyQWRk
cmVzcy5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcgYmluZEFkZHJlc3MgPSAiMTI3LjAuMC4x
IjsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQgcG9ydCA9IDI5OTk7CisKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gcmVzdWx0OworICAgICAgICBzZXJ2ZXJBZGRyZXNzLnNwbGl0KCc6JywgcmVzdWx0
KTsKKworICAgICAgICBpZiAocmVzdWx0LnNpemUoKSA9PSAyKSB7CisgICAgICAgICAgICBiaW5k
QWRkcmVzcyA9IHJlc3VsdFswXTsKKyAgICAgICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAg
ICAgICAgIHBvcnQgPSByZXN1bHRbMV0udG9JbnQoJm9rKTsKKyAgICAgICAgICAgIGlmICghb2sp
IHsKKyAgICAgICAgICAgICAgICBwb3J0ID0gMjk5OTsKKyAgICAgICAgICAgICAgICBMT0dfRVJS
T1IoIkNvdWxkbid0IHBhcnNlIHRoZSBwb3J0LiBVc2UgMjk5OSBpbnN0ZWFkLiIpOworICAgICAg
ICAgICAgfQorICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qg
cGFyc2UgJXMsIHdyb25nIGZvcm1hdD8gVXNlIDEyNy4wLjAuMToyOTk5IGluc3RlYWQuIiwgc2Vy
dmVyQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsKKworICAgICAgICBpZiAoIVdlYkluc3BlY3RvclNl
cnZlcjo6c2luZ2xldG9uKCkubGlzdGVuKGJpbmRBZGRyZXNzLCBwb3J0KSkKKyAgICAgICAgICAg
IExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQgbGlzdGVuaW5nIG9uOiBJUCBhZGRyZXNzPSVzLCBw
b3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0ZjgoKS5kYXRhKCksIHBvcnQpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgTE9HKEluc3BlY3RvclNlcnZlciwgIlRvIHN0YXJ0IGluc3BlY3Rv
ciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQRUNUT1JfU0VSVkVSIHRvIDEyNy4wLjAuMToyOTk5IGZv
ciBleGFtcGxlLiIpOworfQorI2VuZGlmCisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBsaWNhdGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3Vz
ZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiYXBwY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJu
IFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3Rv
cnkuZ2V0KCkpOworfQorCitXVEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZv
cm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
Y2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAi
d3BlIiwgIm1lZGlhY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmlu
Z0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQor
Cit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIGlmICht
X3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgIG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVnaXN0ZXJT
aGFyZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdElu
c3BlY3RvclNlcnZlcigpOworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlz
YWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9k
ZWxEb2N1bWVudFZpZXdlcjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZh
bGlkYXRlQ29udGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdl
YlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9y
eSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0
cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0
aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29s
OjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7Cisg
ICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9m
aWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4
ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisK
K1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgp
IGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIs
IG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9j
ZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUo
Z19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihz
dG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdh
Y3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUo
Z19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAg
ICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRp
YUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29s
OjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRf
dXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJl
Y3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3Jt
RGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVl
UHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1l
KGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVs
bHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViS2l0MlByZWZpeC5oIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCmluZGV4
IDU3NTA5Yjk3YTRjLi5lMmJlODA5ZDhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
S2l0MlByZWZpeC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaApAQCAtNTcs
NyArNTcsNyBAQAogCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgRU5BQkxFX1NIQVJFQUJMRV9SRVNPVVJDRSAx
CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGM5MWI0NWE5YzUxLi4wOGE2
OGQwNzk4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtMjk3LDcgKzI5Nyw3IEBAIHZv
aWQgV2ViRWRpdG9yQ2xpZW50OjpyZWRvKCkKICAgICBtX3BhZ2UtPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVkbyhzdGF0aWNfY2FzdDx1aW50MzJfdD4oV2Vi
UGFnZVByb3h5OjpSZWRvKSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkV4ZWN1dGVVbmRvUmVk
bzo6UmVwbHkocmVzdWx0KSk7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
Q09DT0EpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZP
Uk0oV1BFKQogdm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZlbnQpCiB7CiAgICAgaWYgKG1fcGFnZS0+aGFuZGxlRWRpdGluZ0tleWJvYXJk
RXZlbnQoZXZlbnQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCA1NTM3
ZjE5ZjA2ZC4uMmFjNWZkYTQxMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3Bw
CkBAIC0xNzk4LDQgKzE3OTgsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZmluaXNo
ZWRMb2FkaW5nSWNvbih1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgU2hhcmVkQnUKICAgICB9CiB9
CiAKK2Jvb2wgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnNob3VsZFBhaW50QnJva2VuSW1hZ2UoY29u
c3QgV2ViQ29yZTo6VVJMJikgY29uc3QKK3sKKyNpZiBQTEFURk9STShXUEUpCisgICAgcmV0dXJu
IGZhbHNlOworI2Vsc2UKKyAgICByZXR1cm4gdHJ1ZTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAppbmRleCAyMTJmMTBmZGRl
MS4uM2YwM2U2OTM5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTI2Miw2
ICsyNjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0TG9hZERlY2lzaW9uRm9ySWNvbihjb25z
dCBXZWJDb3JlOjpMaW5rSWNvbiYsIHVpbnQ2NF90IGNhbGxiYWNrSUQpIGZpbmFsOwogICAgIHZv
aWQgZmluaXNoZWRMb2FkaW5nSWNvbih1aW50NjRfdCBsb2FkSWRlbnRpZmllciwgV2ViQ29yZTo6
U2hhcmVkQnVmZmVyKikgZmluYWw7CiAKKyAgICBib29sIHNob3VsZFBhaW50QnJva2VuSW1hZ2Uo
Y29uc3QgV2ViQ29yZTo6VVJMJikgY29uc3Qgb3ZlcnJpZGU7CisKICAgICBXZWJGcmFtZSogbV9m
cmFtZTsKICAgICBSZWZQdHI8UGx1Z2luVmlldz4gbV9wbHVnaW5WaWV3OwogICAgIGJvb2wgbV9o
YXNTZW50UmVzcG9uc2VUb1BsdWdpblZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5jcHAKaW5kZXggMmVkZjRiNzZkNTQuLmIyNTcxNjgwZGI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0zNjAsNCArMzYwLDMxIEBAIFJlZjxTZWxlY3Rpb25EYXRh
PiBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYg
cGFzdGViCiAKICNlbmRpZiAvLyBQTEFURk9STShHVEspCiAKKyNpZiBQTEFURk9STShXUEUpCisv
LyBQYXN0ZWJvYXJkU3RyYXRlZ3kKKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFR5
cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24o
KS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVi
b2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXMoKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6R2V0UGFzdGVib2FyZFR5cGVzOjpSZXBseSh0eXBlcyksIDApOworfQorCitTdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlKQoreworICAgIFN0cmluZyB2YWx1ZTsKKyAg
ICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3RyaW5nRnJvbVBhc3RlYm9h
cmQoaW5kZXgsIHBhc3RlYm9hcmRUeXBlKSwgTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6
UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkOjpSZXBseSh2YWx1ZSksIDApOworICAgIHJldHVybiB2
YWx1ZTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0ZWJvYXJk
KGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNv
bnRlbnQpLCAwKTsKK30KKwordm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OndyaXRlVG9QYXN0
ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkK
K3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OldyaXRlU3RyaW5nVG9QYXN0ZWJv
YXJkKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KSwgMCk7Cit9CisKKyNlbmRpZiAvLyBQTEFURk9STShX
UEUpCisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmgKaW5kZXggZTQzODdjOTMwMjEuLmFlYzc5YmNmYzA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKQEAgLTg2LDEwICs4NiwxOCBAQCBwcml2YXRlOgogICAgIGxvbmcgc2V0UGF0
aG5hbWVzRm9yVHlwZShjb25zdCBWZWN0b3I8U3RyaW5nPiYsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIGxv
bmcgc2V0U3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICNlbmRpZgor
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBXZWJDb3JlOjpTZWxlY3Rpb25EYXRhJikgb3ZlcnJp
ZGU7CiAgICAgUmVmPFdlYkNvcmU6OlNlbGVjdGlvbkRhdGE+IHJlYWRGcm9tQ2xpcGJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShXUEUpCisgICAgdmlydHVhbCB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBl
cykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJk
KGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJk
KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOwor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50
V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dl
YkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVD
bGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorCisjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJDb250
ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5KFdlYkNvcmU6OkZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkNvbnRleHRNZW51Q2xpZW50Ojppc1Nw
ZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3BlYWsoY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50OjpzdG9w
U3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRFWFRfTUVOVVMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUv
V2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCkBAIC0wLDAg
KzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFZGl0b3JDbGllbnQuaCIKKwor
I2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9j
dW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vZGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9tYXAgYmVsb3cgY29tZXMgZnJvbSBCbGlu
aydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5
ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBBbHRLZXkgICA9IDEgPDwgMTsKK3N0
YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEgPDwgMjsKK3N0YXRpYyBjb25zdCB1bnNp
Z25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5cyB3aXRoIHNwZWNpYWwgbWVhbmluZy4g
VGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVkaXRvciB1c2luZworLy8gdGhlIGV4ZWND
b21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVudHJ5IHsKKyAgICB1bnNpZ25lZCB2aXJ0
dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOwor
fTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAgIHVuc2lnbmVkIGNoYXJDb2RlOworICAg
IHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKworc3RhdGlj
IGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmllc1tdID0geworICAgIHsgVktfTEVGVCwg
ICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVMZWZ0
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3Ry
bEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3Zl
V29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVJp
Z2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkUmln
aHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtl
eSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICB9
LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVXAiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNl
bGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICAwLCAgICAgICAgICAgICAg
ICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgU2hpZnRLZXksICAgICAgICAgICAi
TW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICB9LAorICAgIHsgVktfVVAs
ICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoQmFja3dhcmRBbmRNb2RpZnlT
ZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQ
YXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiAgfSwKKyAgICB7IFZLX1BSSU9SLCAg
MCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZURv
d24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIDAsICAg
ICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZSIgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdP
ZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZE
b2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5IHwgU2hp
ZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0
aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgMCwgICAg
ICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmVB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXksICAg
ICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvRW5kT2ZE
b2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJk
IiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgU2hpZnRLZXks
ICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVGb3J3YXJkIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIEN0cmxLZXksICAgICAg
ICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEZvcndhcmQiICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAgICAgICAgIEN0cmxLZXksICAgICAgICAg
ICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnSScs
ICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUl0YWxpYyIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9n
Z2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRVNDQVBF
LCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBDdHJsS2V5LCAgICAgICAgIkNhbmNlbCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgMCwg
ICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFi
IiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIDAsICAgICAg
ICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXksICAgICAg
ICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgU2hpZnRLZXksICAgICAgICAg
ICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIC8vIFRo
ZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdoZXJlIGVsc2Ugc28gZG8gbm90IGV4ZWN1
dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFuZCBpcyByZW1vdmluZyB0ZXh0IHNvIGxl
dCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3NpbmcgZGF0YQorICAgIC8vIHVudGlsIHdlIGlt
cGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZlciBpdCBzaG91bGQgYmUuCisgICAgeyBW
S19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgU2hpZnRLZXksICAgICAgICAgICAi
UGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVM
RVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIkNvcHki
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdWJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIlBhc3RlQW5k
TWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnWCcsICAgICAgICAgQ3Ry
bEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiU2VsZWN0QWxsIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiUmVkbyIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZJywgICAgICAgICBDdHJsS2V5LCAgICAg
ICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJPdmVyV3JpdGUiICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMgY29uc3QgS2V5UHJlc3NFbnRyeSBrZXlQ
cmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAgMCwgICAgICAgICAgICAgICAgICAiSW5z
ZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1x0Jywg
ICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5l
d2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQ3Ry
bEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRMaW5lQnJl
YWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFsdEtleSwg
ICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRLZXksICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3RhdGljIGNvbnN0IGNoYXIqIGlu
dGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZlbnQmIGV2ZW50KQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlEb3duQ29tbWFu
ZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8aW50LCBjb25zdCBjaGFy
Kj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBpZiAoa2V5RG93bkNvbW1hbmRzTWFwLmdl
dCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FS
UkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleURvd25Db21t
YW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNbaV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5
RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93bkVudHJpZXNbaV0ubmFtZSk7CisgICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleVByZXNzRW50
cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNzQ29tbWFuZHNNYXAuZ2V0KCkuc2V0KGtl
eVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlQcmVzc0VudHJpZXNbaV0uY2hh
ckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsKKyAgICB9CisKKyAgICB1bnNpZ25lZCBt
b2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlmdEtleSgpKQorICAgICAgICBtb2RpZmll
cnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFsdEtleSgpKQorICAgICAgICBtb2RpZmll
cnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJsS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRhS2V5KCkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVu
dC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBLZXkgPyBrZXlEb3duQ29tbWFuZHNNYXAu
Z2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAgIH0KKworICAgIGludCBtYXBLZXkgPSBt
b2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgpOworICAgIHJldHVybiBtYXBLZXkgPyBr
ZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDogbnVsbHB0cjsKK30KKworc3Rh
dGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZyYW1lLCBLZXlib2FyZEV2ZW50JiBldmVu
dCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBwbGF0Zm9ybUV2ZW50KQoreworICAgIFN0
cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2ZW50KTsKKworICAgIGlmICgh
Y29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLmNvbW1hbmQo
Y29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIERvbid0IGluc2VydCBudWxsIG9y
IGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiByZXN1bHQgaW4gdW5leHBlY3RlZCBiZWhh
dmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8ICcgJykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlmIGEgbW9kaWZpZXIgaXMgcHJlc3NlZCBh
bmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0CisgICAgaWYgKHBsYXRmb3JtRXZlbnQuY3Ry
bEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkpCisgICAgICAgIHJldHVybjsKKworICAg
IGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBsYXRmb3JtRXZlbnQudGV4dCgpLCAmZXZl
bnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCitzdGF0aWMgdm9p
ZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAgU3RyaW5nIGNvbW1hbmROYW1lID0gaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChjb21tYW5kTmFtZS5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3VsZG4ndCBpbnNlcnQgdGV4dCB0aHJvdWdo
IHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQorICAgIC8vIGhvdyB0byBoYW5kbGUgdGhh
dCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUgdXNlZCB0bworICAgIC8vIGNoYW5nZSBm
b2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1hbmQgPSBmcmFtZS5lZGl0b3IoKS5jb21t
YW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFuZC5pc1RleHRJbnNlcnRpb24oKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVjdXRlKCk7CisgICAgZXZlbnQuc2V0RGVm
YXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJk
RXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgTm9kZSogbm9kZSA9
IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgQVNTRVJUKG5vZGUpOworICAgIEZyYW1l
KiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUoKTsKKyAgICBBU1NFUlQoZnJhbWUpOwor
CisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNrcyBpbiBhIG1vcmUgc2Vuc2libGUgd2F5
LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZl
bnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9ybUV2ZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZlbnQgZG9uJ3QgZG8gYW55dGhpbmcuCisg
ICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX1BST0NF
U1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGFsbG93IHRleHQgaW5zZXJ0
aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0LgorICAgIGlmICghZnJhbWUtPmVkaXRvcigp
LmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gVGhpcyBpcyBqdXN0IGEgbm9y
bWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4ZWN1dGUgdGhlIGluc2VydGlvbgorICAg
IC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVucy4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0
IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBiZSByZWZsZWN0ZWQgaW4gdGhlIGNvbnRl
bnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAgRE9NIGV2ZW50LgorICAgIGlmIChldmVu
dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVzc0V2ZW50KQorICAgICAgICByZXR1cm4g
aGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAo
ZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KQorICAgICAgICByZXR1
cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwgKnBsYXRmb3JtRXZlbnQpOworfQorCit2
b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCog
cGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAgIGlmIChwbGF0Zm9ybUV2ZW50
ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFsS2V5Q29kZSgpID09IFZLX1BST0NFU1NL
RVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVsdCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0ZAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQ
RS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUG9wdXBN
ZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6c2V0VXBQbGF0Zm9ybURhdGEoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBNZW51RGF0YSYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVl
SG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0NmExODdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAgVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0KFdlYlBhZ2UmIHdlYlAK
ICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMgd2hlbiByZW5kZXJpbmcgb2Zmc2NyZWVu
IGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhhdCBTd2FwQnVmZmVycyBuZXZlciBibG9j
a3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUgYWN0dWFsIHNjcmVlbiB3aWxsIGhhcHBl
biBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nlc3Mgc2NoZWR1bGVzIGEgcmVkcmF3IGZv
ciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBjb21wb3NpdG9yIHdpbGwgdGFrZSBjYXJl
IG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNjYWxlZFNpemUsIHNjYWxlRmFj
dG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJh
bWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRl
ZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNp
emUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRlZENvbXBvc2l0b3I6
OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOwogICAgICAgICBtX2xheWVyVHJl
ZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5zdXJmYWNlSUQoKTsKICAgICB9IGVsc2UK
LSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21w
b3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7CisgICAgICAgIG1fY29tcG9z
aXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgd2Vi
UGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwogCiAgICAgZGlkQ2hhbmdlVmlld3BvcnQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2FjN2I1NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCkBAIC0zNyw2ICszNyw4
IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oIgorI2Vs
aWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdpbmdBcmVhV1BFLmgiCiAjZWxzZQogI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlmCkBAIC01NSw2ICs1Nyw5IEBAIHN0ZDo6
dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0FyZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQ
YWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZVJlbW90
ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOworI2VsaWYgUExBVEZPUk0oV1BF
KQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgorICAgICAgICByZXR1cm4gc3RkOjptYWtl
X3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwgcGFyYW1ldGVycyk7CiAjZWxzZQogICAg
IGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlx
dWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAyMWIxMmNkYmUyMy4uZTUx
MmJiYjY3ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIE5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hCiAgICAg
cmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmdldCgpOwogfQog
Ci0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShH
VEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIGJvb2wgV2ViUGFnZTo6
aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9hcmRFdmVudCogZXZ0KQogewogICAgIE5v
ZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDBiMDU2MWJiMTY3Li4yMzQxYzEzODA1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDE4
LDcgKzEwMTgsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAjZW5kaWYKIAotI2lmICFQTEFURk9STShD
T0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiAgICAgc3RhdGlj
IGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZl
bnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3Bw
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFu
YWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgor
I2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0NvbXBvc2l0aW5n
TWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7CisgICAgQVNTRVJUKG1fY29ubmVjdGlv
bkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXI6OmVzdGFibGlzaENvbm5l
Y3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJUEM6OkF0dGFjaG1lbnQgY29ubmVjdGlv
bkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFn
ZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAorICAgICAgICBNZXNzYWdlczo6Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb246OlJlcGx5KGNvbm5lY3Rpb25I
YW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0gY29ubmVjdGlvbkhhbmRsZS5yZWxlYXNl
RmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjYzMWEzMWM5
OTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb21wb3NpdGluZ01h
bmFnZXJfaAorI2RlZmluZSBDb21wb3NpdGluZ01hbmFnZXJfaAorCisjaW5jbHVkZSA8d3RmL05v
bmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlOworCitj
bGFzcyBDb21wb3NpdGluZ01hbmFnZXIgZmluYWwgeworICAgIFdURl9NQUtFX05PTkNPUFlBQkxF
KENvbXBvc2l0aW5nTWFuYWdlcik7CitwdWJsaWM6CisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyKCkg
PSBkZWZhdWx0OworICAgIH5Db21wb3NpdGluZ01hbmFnZXIoKTsKKworICAgIHZvaWQgZXN0YWJs
aXNoQ29ubmVjdGlvbihXZWJQYWdlJik7CisgICAgaW50IHJlbGVhc2VDb25uZWN0aW9uRmQoKSB7
IHJldHVybiBzdGQ6OmV4Y2hhbmdlKG1fY29ubmVjdGlvbkZkLCAtMSk7IH07CisKK3ByaXZhdGU6
CisgICAgaW50IG1fY29ubmVjdGlvbkZkIHsgLTEgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdAorCisjZW5kaWYgLy8gQ29tcG9zaXRpbmdNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0Fy
ZWFXUEUuY3BwCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2lu
Y2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitE
cmF3aW5nQXJlYVdQRTo6RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5
cGVXUEUsIHdlYlBhZ2UpCit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygpLnNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoMCk7Cit9CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQorewor
fQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7Cisg
ICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250ZXh0
KCkpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sKKyAg
ICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNv
bXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFTU0VS
VChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRl
ZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikKK3sK
KyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNjcm9s
bE5vbkNvbXBvc2l0ZWRDb250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVdQRTo6cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAobV9s
YXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5kVHJh
bnNwYXJlbmN5Q2hhbmdlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFp
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFXUEU6
OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJuIG1f
bGF5ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNhbGxi
YWNrSUQpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlzRnJv
emVuKGJvb2wgZnJvemVuKQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZyb3pl
bjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRl
UHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbV93
ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoc3Rv
cmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0aW5n
TW9kZUtleSgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRlbnRT
aXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmIChtX2xh
eWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hhbmdl
ZChzaXplKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpncmFw
aGljc0xheWVyRmFjdG9yeSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAg
cmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9sYXll
clRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xheWVy
KGdyYXBoaWNzTGF5ZXIpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBv
c2l0aW5nTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7Cisg
ICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFVRVNU
X0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25p
dG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRyZWVI
b3N0KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IoZGlzcGxheUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihXZWJD
b3JlOjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5Um9v
dExheWVyKQoreworICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVy
bjsKKworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQRTo6
ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYm
KQoreworfQorI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShU
RVhUVVJFX01BUFBFUikKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpCit7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBz
Y3JvbGxPZmZzZXQpCit7CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dlYlBh
Z2UubGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZOb3RB
dE1heFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXllclRy
ZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNp
emUoKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3JhcGhp
Y3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9zdCk7
CisgICAgbV9sYXllclRyZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFnZSk7
CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xh
eWVyKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNjaGVk
dWxlZExheWVyRmx1c2godHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdl
KG1fd2ViUGFnZS5zaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNDZjNTM1NGU0ZmQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0Ry
YXdpbmdBcmVhV1BFLmgKQEAgLTAsMCArMSw5MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdpbmdBcmVhV1BFX2gKKyNkZWZp
bmUgRHJhd2luZ0FyZWFXUEVfaAorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWEuaCIKKworI2luY2x1
ZGUgIkxheWVyVHJlZUhvc3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIERyYXdp
bmdBcmVhV1BFIDogcHVibGljIERyYXdpbmdBcmVhIHsKK3B1YmxpYzoKKyAgICBEcmF3aW5nQXJl
YVdQRShXZWJQYWdlJiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOworICAgIHZp
cnR1YWwgfkRyYXdpbmdBcmVhV1BFKCk7CisKKyAgICB2b2lkIGxheWVySG9zdERpZEZsdXNoTGF5
ZXJzKCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgLy8gRHJhd2luZ0FyZWEKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSkgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIHZvaWQgcGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
Ym9vbCBmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBjYWxsYmFja0lEKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAgIHZpcnR1YWwgTGF5ZXJU
cmVlSG9zdCogbGF5ZXJUcmVlSG9zdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJU
cmVlSG9zdC5nZXQoKTsgfQorCisgICAgdmlydHVhbCB2b2lkIHNldFBhaW50aW5nRW5hYmxlZChi
b29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3Qg
V2ViUHJlZmVyZW5jZXNTdG9yZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBtYWluRnJh
bWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOwor
CisgICAgdmlydHVhbCBXZWJDb3JlOjpHcmFwaGljc0xheWVyRmFjdG9yeSogZ3JhcGhpY3NMYXll
ckZhY3RvcnkoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Um9vdENvbXBvc2l0aW5n
TGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVzaEltbWVkaWF0ZWx5KCkgb3ZlcnJpZGU7
CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQorICAg
IHZpcnR1YWwgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXll
cihXZWJDb3JlOjpGcmFtZSosIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKwor
I2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYm
KSBvdmVycmlkZTsKKyNlbmRpZgorCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBV
U0UoVEVYVFVSRV9NQVBQRVIpCisgICAgdmlydHVhbCB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFj
dG9yQ2hhbmdlZCgpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0LCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwg
dm9pZCBkaWRVcGRhdGUoKSBvdmVycmlkZTsKKworICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShXZWJDb3JlOjpHcmFwaGljc0xheWVyKik7CisKKyAgICAvLyBXaGVuIHRy
dWUsIHdlIG1haW50YWluIHRoZSBsYXllciB0cmVlIGluIGl0cyBjdXJyZW50IHN0YXRlIGJ5IG5v
dCBsZWF2aW5nIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIG1vZGUKKyAgICAvLyBhbmQgbm90IHNj
aGVkdWxpbmcgbGF5ZXIgZmx1c2hlcy4KKyAgICBib29sIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3pl
biB7IGZhbHNlIH07CisKKyAgICAvLyBUaGUgbGF5ZXIgdHJlZSBob3N0IHRoYXQgaGFuZGxlcyBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZy4KKyAgICBSZWZQdHI8TGF5ZXJUcmVlSG9zdD4gbV9sYXll
clRyZWVIb3N0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBEcmF3
aW5nQXJlYVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi43NGM4NDRiY2JhOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCkBAIC0w
LDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclVJLmgiCisK
KyNpbmNsdWRlICJSZW1vdGVXZWJJbnNwZWN0b3JVSS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworYm9vbCBXZWJJbnNwZWN0b3JVSTo6Y2FuU2F2ZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitTdHJpbmcgV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAg
IHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIFJlbW90ZVdlYkluc3BlY3RvclVJOjpsb2Nh
bGl6ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5jNGUwYzY1ZTBlZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNwcApAQCAtMCwwICsx
LDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3IuaCIKKworI2lmIEVO
QUJMRShJTlNQRUNUT1IpCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rv
cjo6Y2FuU2F2ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2Vi
SW5zcGVjdG9yOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkgY29uc3QKK3sKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKElO
U1BFQ1RPUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93
cGUvV2ViUGFnZVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L1dlYlBhZ2VXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5m
ZWYyNGU1ZGVmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKQEAgLTAsMCArMSw5OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNLZXlz
LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1J
bml0aWFsaXplKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybURldGFjaCgpCit7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1FZGl0b3JTdGF0ZShGcmFtZSYsIEVkaXRvclN0YXRl
JiwgSW5jbHVkZVBvc3RMYXlvdXREYXRhSGludCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2UoY29u
c3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29u
c3QgV2ViS2V5Ym9hcmRFdmVudCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGxhdGZvcm1IYXNMb2NhbERhdGFGb3JVUkwo
Y29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworU3RyaW5nIFdlYlBhZ2U6OmNhY2hlZFJlc3BvbnNlTUlNRVR5cGVGb3JVUkwoY29uc3Qg
VVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30K
KworYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybUNhbkhhbmRsZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworU3RyaW5nIFdlYlBhZ2U6OmNhY2hlZFN1Z2dlc3RlZEZpbGVuYW1lRm9yVVJMKGNvbnN0IFVS
TCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisK
K1JlZlB0cjxTaGFyZWRCdWZmZXI+IFdlYlBhZ2U6OmNhY2hlZFJlc3BvbnNlRGF0YUZvclVSTChj
b25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1N0cmluZyBXZWJQYWdlOjpwbGF0Zm9ybVVzZXJBZ2VudChjb25zdCBVUkwmKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
d3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uYzQ2MTA3M2JlM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKQEAgLTAsMCArMSw3OSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXZWJQcm9jZXNzTWFpblVuaXguaCIKKworI2luY2x1ZGUgIkNoaWxkUHJvY2Vzc01haW4u
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURp
c3BsYXlXUEUuaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8bGlic291cC9zb3VwLmg+
CisKKyNpbmNsdWRlIDxpb3N0cmVhbT4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENo
aWxkUHJvY2Vzc01haW5CYXNlIHsKK3B1YmxpYzoKKyAgICBib29sIHBsYXRmb3JtSW5pdGlhbGl6
ZSgpIG92ZXJyaWRlCisgICAgeworICAgICAgICAvLyBUT0RPOiBXcmFwIHdpdGggI2lmbmRlZiBO
REVCVUcKKyAgICAgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVQyX1BBVVNFX1dFQl9QUk9DRVNTX09O
X0xBVU5DSCIpKSB7CisgICAgICAgICAgICBnX3ByaW50ZXJyKCJXZWJQcm9jZXNzIFBJRDogJWRc
biIsIGdldHBpZCgpKTsKKyAgICAgICAgICAgIFdURjo6c2xlZXAoMzApOworICAgICAgICB9CisK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgYm9vbCBwYXJzZUNvbW1hbmRMaW5l
KGludCBhcmdjLCBjaGFyKiogYXJndikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChh
cmdjID09IDMpOworICAgICAgICBpZiAoYXJnYyA8IDMpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisKKyAgICAgICAgaWYgKCFDaGlsZFByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5kTGlu
ZShhcmdjLCBhcmd2KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnQg
d3BlRmQgPSBhdG9pKGFyZ3ZbMl0pOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
CisgICAgICAgICAgICBbd3BlRmRdIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChp
czxQbGF0Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSk7
CisgICAgICAgICAgICAgICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihQbGF0Zm9ybURp
c3BsYXk6OnNoYXJlZERpc3BsYXkoKSkuaW5pdGlhbGl6ZSh3cGVGZCk7CisgICAgICAgICAgICB9
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorfTsKKworaW50IFdlYlByb2Nlc3NNYWlu
VW5peChpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIENoaWxkUHJvY2Vzc01h
aW48V2ViUHJvY2VzcywgV2ViUHJvY2Vzc01haW4+KGFyZ2MsIGFyZ3YpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5oIGIvU291
cmNlL1dlYktpdDIvY29uZmlnLmgKaW5kZXggYzYzZDFhMjZmNzkuLjM0NzliMWVkMzMwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9jb25m
aWcuaApAQCAtNTgsNyArNTgsNyBAQAogI2RlZmluZSBQTFVHSU5fQVJDSElURUNUVVJFKEFSQ0gp
IChkZWZpbmVkIFBMVUdJTl9BUkNISVRFQ1RVUkVfIyNBUkNIICYmIFBMVUdJTl9BUkNISVRFQ1RV
UkVfIyNBUkNIKQogCiAjaWZuZGVmIEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSCi0jaWYgRU5BQkxF
KFdFQl9TT0NLRVRTKSAmJiBQTEFURk9STShHVEspCisjaWYgRU5BQkxFKFdFQl9TT0NLRVRTKSAm
JiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogI2RlZmluZSBFTkFCTEVfSU5TUEVD
VE9SX1NFUlZFUiAxCiAjZW5kaWYKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
d3BlL3dwZS13ZWJraXQucGMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk5YzAyNTE4MTQKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbgpAQCAt
MCwwICsxLDExIEBACitwcmVmaXg9QENNQUtFX0lOU1RBTExfUFJFRklYQAorZXhlY19wcmVmaXg9
JHtwcmVmaXh9CitsaWJkaXI9QExJQl9JTlNUQUxMX0RJUkAKK2luY2x1ZGVkaXI9JHtwcmVmaXh9
L2luY2x1ZGUKKworTmFtZTogV2ViS2l0MgorRGVzY3JpcHRpb246IFdQRS1mbGF2b3JlZCBXZWIg
ZW5naW5lCitWZXJzaW9uOiBAUFJPSkVDVF9WRVJTSU9OQAorUmVxdWlyZXMucHJpdmF0ZTogZ2xp
Yi0yLjAgbGlic291cC0yLjQKK0xpYnM6IC1MJHtsaWJkaXJ9IC1sV1BFV2ViS2l0IC1sV1BFCitD
ZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAgLUkke2luY2x1ZGVk
aXJ9L3dwZS1AV1BFX0FQSV9WRVJTSU9OQC9XUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9G
aW5kTGliR0JNLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQyMDkxY2JmYjQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UKQEAgLTAsMCArMSw0NiBAQAorIyAt
IFRyeSB0byBmaW5kIGdibS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBM
SUJHQk1fSU5DTFVERV9ESVJTIC0gdGhlIGdibSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBMSUJH
Qk1fTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgZ2JtLgorIworIyBDb3B5cmlnaHQgKEMp
IDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0
OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtn
X2NoZWNrX21vZHVsZXMoUENfTElCR0JNIGdibSkKKworZmluZF9wYXRoKExJQkdCTV9JTkNMVURF
X0RJUlMKKyAgICBOQU1FUyBnYm0uaAorICAgIEhJTlRTICR7UENfTElCR0JNX0lOQ0xVREVfRElS
U30gJHtQQ19MSUJHQk1fSU5DVURFRElSfQorKQorCitmaW5kX2xpYnJhcnkoTElCR0JNX0xJQlJB
UklFUworICAgIE5BTUVTIGdibQorICAgIEhJTlRTICR7UENfTElCR0JNX0xJQlJBUllfRElSU30g
JHtQQ19MSUJHQk1fTElCRElSfQorKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRh
cmRBcmdzKQorRklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKExJQkdCTSBERUZBVUxU
X01TRyBMSUJHQk1fTElCUkFSSUVTKQorCittYXJrX2FzX2FkdmFuY2VkKExJQkdCTV9JTkNMVURF
X0RJUlMgTElCR0JNX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1tZXNhLmNtYWtlIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYxNjE1NGU2MTE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UK
QEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS1tZXNhLgorIyBPbmNlIGRvbmUs
IHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFdQRV9NRVNBX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUt
bWVzYS4KKyMgIFdQRV9NRVNBX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUtbWVzYSBpbmNsdWRlIGRp
cmVjdG9yaWVzCisjICBXUEVfTUVTQV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUt
bWVzYS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMg
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBI
T0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmlu
ZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRV9NRVNBIFFVSUVU
IHdwZS1tZXNhKQorCitmaW5kX3BhdGgoV1BFX01FU0FfSU5DTFVERV9ESVJTCisgICAgTkFNRVMg
d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1hLWJ1Zi5oCisgICAgSElOVFMgJHtQ
Q19XUEVfTUVTQV9JTkNMVURFRElSfSAke1BDX1dQRV9NRVNBX0lOQ0xVREVfRElSU30KKykKKwor
ZmluZF9saWJyYXJ5KFdQRV9NRVNBX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQtbWVz
YQorICAgIEhJTlRTICR7UENfV1BFX01FU0FfTElCRElSfSAke1BDX1dQRV9NRVNBX0xJQlJBUllf
RElSU30KKykKKworbWFya19hc19hZHZhbmNlZChXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01F
U0FfTElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQor
RklORF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRV9NRVNBIFJFUVVJUkVEX1ZBUlMg
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFj
a2VuZC5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzdhOTNk
MDA1MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UKQEAgLTAsMCArMSw0NyBAQAorIyAtIFRyeSB0byBmaW5kIFdQRS4KKyMgT25jZSBkb25lLCB0
aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS4KKyMgIFdQ
RV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9MSUJS
QVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVzZSBXUEUuCisjCisjIENvcHlyaWdodCAoQykgMjAxNiBJ
Z2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMg
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENP
UFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tf
bW9kdWxlcyhQQ19XUEUgUVVJRVQgd3BlKQorCitmaW5kX3BhdGgoV1BFX0lOQ0xVREVfRElSUwor
ICAgIE5BTUVTIHdwZS9sb2FkZXIuaAorICAgIEhJTlRTICR7UENfV1BFX0lOQ0xVREVESVJ9ICR7
UENfV1BFX0lOQ0xVREVfRElSU30KKykKKworZmluZF9saWJyYXJ5KFdQRV9MSUJSQVJJRVMKKyAg
ICBOQU1FUyBXUEVCYWNrZW5kCisgICAgSElOVFMgJHtQQ19XUEVfTElCRElSfSAke1BDX1dQRV9M
SUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQoV1BFX0lOQ0xVREVfRElSUyBXUEVf
TElCUkFSSUVTKQorCitpbmNsdWRlKEZpbmRQYWNrYWdlSGFuZGxlU3RhbmRhcmRBcmdzKQorRklO
RF9QQUNLQUdFX0hBTkRMRV9TVEFOREFSRF9BUkdTKFdQRSBSRVFVSVJFRF9WQVJTIFdQRV9JTkNM
VURFX0RJUlMgV1BFX0xJQlJBUklFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9jbWFrZS9PcHRpb25z
V1BFLmNtYWtlIGIvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmEyODcwNjNlMTIwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UKQEAgLTAsMCArMSwxMzggQEAKK2luY2x1ZGUo
R05VSW5zdGFsbERpcnMpCisKK3NldChQUk9KRUNUX1ZFUlNJT05fTUFKT1IgMCkKK3NldChQUk9K
RUNUX1ZFUlNJT05fTUlOT1IgMCkKK3NldChQUk9KRUNUX1ZFUlNJT05fUEFUQ0ggMjAxNzAzMzAp
CitzZXQoUFJPSkVDVF9WRVJTSU9OICR7UFJPSkVDVF9WRVJTSU9OX01BSk9SfS4ke1BST0pFQ1Rf
VkVSU0lPTl9NSU5PUn0uJHtQUk9KRUNUX1ZFUlNJT05fUEFUQ0h9KQorc2V0KFdQRV9BUElfVkVS
U0lPTiAwLjEpCisKK2lmIChXVEZfQ1BVX1g4Nl82NCkKKyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZB
VUxUIE9OKQorZWxzZSAoKQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT0ZGKQorZW5kaWYg
KCkKKworV0VCS0lUX09QVElPTl9CRUdJTigpCisKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV8zRF9UUkFOU0ZPUk1TIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMgUFVCTElDIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9DU1NfUkVHSU9OUyBQVUJM
SUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1NFTEVD
VE9SU19MRVZFTDQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0RBVEFCQVNFX1BST0NFU1MgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04gUFVCTElDIE9GRikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9MRUdBQ1lfRU5DUllQVEVEX01FRElB
IFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfRlRM
X0pJVCBQUklWQVRFICR7RU5BQkxFX0ZUTF9ERUZBVUxUfSkKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9HQU1FUEFEIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0VPTE9DQVRJT04gUFVCTElDIE9GRikKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFIFBSSVZBVEUg
T04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRB
QkFTRV9JTl9XT1JLRVJTIFBSSVZBVEUgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX01FRElBX0NPTlRST0xTX1NDUklQVCBQVUJMSUMgT04pCitXRUJLSVRfT1BU
SU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfU09VUkNFIFBVQkxJQyBPRkYpCitX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUhUTUwgUFJJVkFURSBPTikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5f
QVBJIFBSSVZBVEUgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1RPVUNIX0VWRU5UUyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxV
RShFTkFCTEVfVklERU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX1ZJREVPX1RSQUNLIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBIFBVQkxJQyBPTikKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQU5JTUFUSU9OUyBQUklWQVRFIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9BVURJTyBQVUJM
SUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfV0VCR0wgUFVC
TElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQl9USU1J
TkcgUFVCTElDIE9OKQorCitXRUJLSVRfT1BUSU9OX0RFRklORShVU0VfR1NUUkVBTUVSX0dMICJX
aGV0aGVyIHRvIGVuYWJsZSBzdXBwb3J0IGZvciBHU3RyZWFtZXIgR0wiIFBSSVZBVEUgT0ZGKQor
CitXRUJLSVRfT1BUSU9OX0VORCgpCisKK3NldChFTkFCTEVfV0VCQ09SRSBPTikKK3NldChFTkFC
TEVfV0VCS0lUIE9GRikKK3NldChFTkFCTEVfV0VCS0lUMiBPTikKK3NldChFTkFCTEVfQVBJX1RF
U1RTICR7REVWRUxPUEVSX01PREV9KQorc2V0KEVOQUJMRV9UT09MUyBPTikKKworc2V0KFdURl9M
SUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KEphdmFTY3JpcHRDb3JlX0xJQlJBUllfVFlQRSBTVEFU
SUMpCitzZXQoV2ViQ29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYktpdDJfT1VUUFVU
X05BTUUgV1BFV2ViS2l0KQorc2V0KFdlYktpdDJfV2ViUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVX
ZWJQcm9jZXNzKQorc2V0KFdlYktpdDJfTmV0d29ya1Byb2Nlc3NfT1VUUFVUX05BTUUgV1BFTmV0
d29ya1Byb2Nlc3MpCitzZXQoV2ViS2l0Ml9EYXRhYmFzZVByb2Nlc3NfT1VUUFVUX05BTUUgV1BF
RGF0YWJhc2VQcm9jZXNzKQorCitmaW5kX3BhY2thZ2UoSUNVIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKFRocmVhZHMgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoWkxJQiBSRVFVSVJFRCkKK2ZpbmRf
cGFja2FnZShHTElCIDIuNDAuMCBSRVFVSVJFRCBDT01QT05FTlRTIGdpbyBnaW8tdW5peCBnb2Jq
ZWN0IGd0aHJlYWQgZ21vZHVsZSkKK2ZpbmRfcGFja2FnZShHbnVUTFMgMy4wLjAgUkVRVUlSRUQp
CisKK2ZpbmRfcGFja2FnZShDYWlybyAxLjEwLjIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRm9u
dGNvbmZpZyAyLjguMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGcmVldHlwZTIgMi40LjIgUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoSGFyZkJ1enogMC45LjE4IFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKEpQRUcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliR2NyeXB0IDEuNi4wIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKExpYlNvdXAgMi40Mi4wIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKExp
YlhtbDIgMi44LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliWHNsdCAxLjEuNyBSRVFVSVJF
RCkKK2ZpbmRfcGFja2FnZShQTkcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoU3FsaXRlIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKFdlYlAgUkVRVUlSRUQpCisKK2ZpbmRfcGFja2FnZShPcGVuR0xF
UzIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoRUdMIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2Uo
V1BFQmFja2VuZCBSRVFVSVJFRCkKKworc2V0KFVTRV9YREdNSU1FIE9OKQorCitpZiAoRU5BQkxF
X1ZJREVPIE9SIEVOQUJMRV9XRUJfQVVESU8pCisgICAgc2V0KEdTVFJFQU1FUl9DT01QT05FTlRT
IGFwcCBhdWRpbyBwYnV0aWxzKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9HU1RS
RUFNRVIgVFJVRSkKKyAgICBpZiAoRU5BQkxFX1ZJREVPKQorICAgICAgICBsaXN0KEFQUEVORCBH
U1RSRUFNRVJfQ09NUE9ORU5UUyB2aWRlbyB0YWcpCisgICAgZW5kaWYgKCkKKworICAgIGlmIChF
TkFCTEVfV0VCX0FVRElPKQorICAgICAgICBsaXN0KEFQUEVORCBHU1RSRUFNRVJfQ09NUE9ORU5U
UyBmZnQpCisgICAgICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9XRUJBVURJT19HU1RS
RUFNRVIgVFJVRSkKKyAgICBlbmRpZiAoKQorCisgICAgZmluZF9wYWNrYWdlKEdTdHJlYW1lciAx
LjIuMyBSRVFVSVJFRCBDT01QT05FTlRTICR7R1NUUkVBTUVSX0NPTVBPTkVOVFN9KQorCisgICAg
IyBGSVhNRTogV2hhdCBhYm91dCBNUEVHVFMgc3VwcG9ydD8gVVNFX0dTVFJFQU1FUl9NUEVHVFM/
CitlbmRpZiAoKQorCitpZiAoRU5BQkxFX01FRElBX1NUUkVBTSBPUiBFTkFCTEVfV0VCX1JUQykK
KyAgICBmaW5kX3BhY2thZ2UoT3BlbldlYlJUQykKKyAgICBpZiAoTk9UIE9QRU5XRUJSVENfRk9V
TkQpCisgICAgICAgIG1lc3NhZ2UoRkFUQUxfRVJST1IgIk9wZW5XZWJSVEMgaXMgbmVlZGVkIGZv
ciBFTkFCTEVfTUVESUFfU1RSRUFNIGFuZCBFTkFCTEVfV0VCX1JUQy4iKQorICAgIGVuZGlmICgp
CisgICAgU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX09QRU5XRUJSVEMgVFJVRSkKK2VuZGlm
ICgpCisKK2lmIChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKQorICAgIGZpbmRfcGFja2Fn
ZShDYWlyb0dMIDEuMTAuMiBSRVFVSVJFRCBDT01QT05FTlRTIGNhaXJvLWVnbCkKK2VuZGlmICgp
CisKK2FkZF9kZWZpbml0aW9ucygtREJVSUxESU5HX1dQRV9fPTEpCithZGRfZGVmaW5pdGlvbnMo
LUREQVRBX0RJUj0iJHtDTUFLRV9JTlNUQUxMX0RBVEFESVJ9IikKKworc2V0KFVTRV9VRElTODYg
MSkKKworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX09QRU5HTF9FU18yIFRSVUUpCitTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfRUdMIFRSVUUpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JV
SUxEKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNEIFRSVUUpCisKK1NFVF9BTkRfRVhQT1NFX1RP
X0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQo
VVNFX1RFWFRVUkVfTUFQUEVSX0dMIFRSVUUpCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0Vf
VElMRURfQkFDS0lOR19TVE9SRSBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NP
T1JESU5BVEVEX0dSQVBISUNTIFRSVUUpCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09P
UkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQgVFJVRSkKKworc2V0KEZPUldBUkRJTkdfSEVBREVS
U19ESVIgJHtERVJJVkVEX1NPVVJDRVNfRElSfS9Gb3J3YXJkaW5nSGVhZGVycykKKworIyBCdWls
ZCB3aXRoIC1mdmlzaWJpbGl0eT1oaWRkZW4gdG8gcmVkdWNlIHRoZSBzaXplIG9mIHRoZSBzaGFy
ZWQgbGlicmFyeS4KKyMgTm90IHRvIGJlIHVzZWQgd2hlbiBidWlsZGluZyB0aGUgV2ViS2l0VGVz
dFJ1bm5lciBsaWJyYXJ5LgoraWYgKE5PVCBERVZFTE9QRVJfTU9ERSkKKyAgICBzZXQoQ01BS0Vf
Q19GTEFHU19SRUxFQVNFICIke0NNQUtFX0NfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhp
ZGRlbiIpCisgICAgc2V0KENNQUtFX0NYWF9GTEFHU19SRUxFQVNFICIke0NNQUtFX0NYWF9GTEFH
U19SRUxFQVNFfSAtZnZpc2liaWxpdHk9aGlkZGVuIC1mdmlzaWJpbGl0eS1pbmxpbmVzLWhpZGRl
biIpCitlbmRpZiAoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQt
cHJvZHVjdC1hcmNoaXZlIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1h
cmNoaXZlCmluZGV4IGQ1ODAwYTFlOWQ0Li5lYjIwZjcwZjNmMSAxMDA2NDQKLS0tIGEvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlCisrKyBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQpAQCAtMTYzLDcgKzE2Myw3IEBAIGRl
ZiBkaXJDb250YWluc2R3byhkaXJlY3RvcnkpOgogCiAKIGRlZiBhcmNoaXZlQnVpbHRQcm9kdWN0
KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBmdWxsUGxhdGZvcm0pOgotICAgIGFzc2VydCBwbGF0
Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAgIGFzc2VydCBw
bGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAnd3BlJykKIAog
ICAgICMgRklYTUU6IEltYWdlRGlmZiBzaG91bGQgYmUgYnVpbHQgd2l0aCB0aGUgaG9zdCBTREss
IDxyZGFyOi8vcHJvYmxlbS8zMDI2NjAzOD4uCiAgICAgIyBBbiBhcHByb2FjaCBzaW1pbGFyIHRv
IHRoZSBvbmUgdXNlZCBmb3IgTGF5b3V0VGVzdFJlbGF5IGluIHIxOTA1MTUgc2hvdWxkIGJlIGlt
bGVtZW50ZWQuCkBAIC0xODIsNyArMTgyLDcgQEAgZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3QoY29u
ZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6CiAKICAgICAgICAgc2h1dGlsLnJt
dHJlZSh0aGluRGlyZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0
Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09
ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICAjIE9uIEdUSysvRUZMIHdlIGRv
bid0IG5lZWQgdGhlIGludGVybWVkaWF0ZSBzdGVwIG9mIGNyZWF0aW5nIGEgdGhpbkRpcmVjdG9y
eQogICAgICAgICAjIHRvIGJlIGNvbXByZXNzZWQgaW4gYSBaSVAgZmlsZSwgYmVjYXVzZSB3ZSBj
YW4gY3JlYXRlIHRoZSBaSVAgZGlyZWN0bHkuCiAgICAgICAgICMgVGhpcyBpcyBmYXN0ZXIgYW5k
IHJlcXVpcmVzIGxlc3MgZGlzayByZXNvdXJjZXMuCkBAIC0yMTYsNyArMjE2LDcgQEAgZGVmIHVu
emlwQXJjaGl2ZShkaXJlY3RvcnlUb0V4dHJhY3RUbywgY29uZmlndXJhdGlvbik6CiAKIAogZGVm
IGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgotICAgIGFzc2Vy
dCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnKQorICAgIGFz
c2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICdpb3MnLCAnd3Bl
JykKIAogICAgIGFyY2hpdmVGaWxlID0gb3MucGF0aC5qb2luKF90b3BMZXZlbEJ1aWxkRGlyZWN0
b3J5LCBjb25maWd1cmF0aW9uICsgJy56aXAnKQogCkBAIC0yMjUsNyArMjI1LDcgQEAgZGVmIGV4
dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0pOgogCiAgICAgaWYgcGxh
dGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX3Rv
cExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24pCi0gICAgZWxpZiBwbGF0Zm9ybSA9
PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBl
bGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09
ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAgICBwcmludCAnRXh0cmFjdGluZycs
IF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3RvcnkKICAgICAgICAgcmV0dXJuIHVuemlwQXJjaGl2
ZShfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uKQogCmRpZmYgLS1n
aXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlIGIvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQppbmRleCAzYzJiMGJkN2EzNi4u
OTgwZjA3MWMxNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVz
dWx0LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJj
aGl2ZQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbigpOgogICAgIHJldHVybiBhcmNoaXZlVGVz
dFJlc3VsdHMob3B0aW9ucy5jb25maWd1cmF0aW9uLCBvcHRpb25zLnBsYXRmb3JtLCBsYXlvdXRU
ZXN0UmVzdWx0c0RpcikKIAogZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBw
bGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgotICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAo
J21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdpb3MnKQorICAgIGFzc2Vy
dCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICdp
b3MnLCAnd3BlJykKIAogICAgIHRyeToKICAgICAgICAgb3MudW5saW5rKGFyY2hpdmVGaWxlKQpA
QCAtNjYsNyArNjYsNyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24sIHBs
YXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgaWYgcGxhdGZvcm0gaW4gKCdtYWMn
LCAnaW9zJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2FsbChbImRpdHRvIiwgIi1jIiwgIi1r
IiwgIi0tc2VxdWVzdGVyUnNyYyIsICItLXpsaWJDb21wcmVzc2lvbkxldmVsIiwgIjIiLCBsYXlv
dXRUZXN0UmVzdWx0c0RpciwgYXJjaGl2ZUZpbGVdKToKICAgICAgICAgICAgIHJldHVybiAxCi0g
ICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJyk6Cisg
ICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAnZWZsJywgJ3dpbmNhaXJvJywgJ3dw
ZScpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6aXAiLCAiLXIiLCAiLTIiLCBhcmNo
aXZlRmlsZSwgIi4iXSwgY3dkPWxheW91dFRlc3RSZXN1bHRzRGlyKToKICAgICAgICAgICAgIHJl
dHVybiAxCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0IGIvVG9vbHMvQ01ha2VM
aXN0cy50eHQKaW5kZXggNGIyZWRiOGRlOTcuLjViOWNkMzliOTkyIDEwMDY0NAotLS0gYS9Ub29s
cy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxpc3RzLnR4dApAQCAtMzUsNiArMzUs
MTEgQEAgZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpTQ09ubHkiKQogICAgIGlmIChFTkFC
TEVfQVBJX1RFU1RTKQogICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFRlc3RXZWJLaXRBUEkpCiAg
ICAgZW5kaWYgKCkKK2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVRVUFMICJXUEUiKQorICAgIGlmIChE
RVZFTE9QRVJfTU9ERSkKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShJbWFnZURpZmYpCisgICAg
ICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5lcikKKyAgICBlbmRpZiAoKQogZW5k
aWYgKCkKIAogaWYgKFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3Jt
V1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBlZTUzMjhiYQotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxIEBACitpbmNs
dWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVu
ZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKaW5kZXggYzMwOWI4
MmQ5OGMuLjY5YjRkMGU0NjVkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxkLWR1bXBy
ZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKQEAgLTY2
LDcgKzY2LDcgQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0ZGlyKCJUb29scyIsICJEdW1wUmVuZGVy
VHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2ViS2l0KCkpIHsK
ICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIkR1bXBSZW5kZXJUcmVlIiwgJGNsZWFu
LCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8
IGlzQW55V2luZG93cygpKSB7Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNBbnlX
aW5kb3dzKCkgfHwgaXNXUEUoKSkgewogICAgICMgR3RrLCBFRkwsIGFuZCBXaW5kb3dzIGJ1aWxk
IGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVyZS4K
ICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IGFiMjUyYWM2NTBm
Li5mZjRjYjBjNGYzMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKKysr
IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTEwMSw2ICsxMDEsNyBAQCBVc2FnZTog
JHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRvIGJ1aWxkIHN5c3RlbV0K
IAogICAtLWVmbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEVGTCBwb3J0
CiAgIC0tZ3RrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgR1RLKyBwb3J0
CisgIC0td3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUgV1BFIHBvcnQK
ICAgLS13aW5jYWlybyAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHVzaW5nIENhaXJvIChy
YXRoZXIgdGhhbiBDb3JlR3JhcGhpY3MpIG9uIFdpbmRvd3MKIAogICAtLWluc3BlY3Rvci1mcm9u
dGVuZCAgICAgICAgICAgICAgQ29weSBXZWIgSW5zcGVjdG9yIHVzZXIgaW50ZXJmYWNlIHJlc291
cmNlcyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLXdlYmtpdHRlc3RydW5uZXIgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5u
ZXIKaW5kZXggNDRlMjVhMzg1MTguLjBmZTUxZTA4MjM0IDEwMDc1NQotLS0gYS9Ub29scy9TY3Jp
cHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJr
aXR0ZXN0cnVubmVyCkBAIC02MSw3ICs2MSw3IEBAIGNoZGlyICJUb29scy9XZWJLaXRUZXN0UnVu
bmVyIiBvciBkaWU7CiBteSAkcmVzdWx0OwogaWYgKGlzQXBwbGVDb2NvYVdlYktpdCgpKSB7CiAg
ICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVyIiwgJGNsZWFu
LCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBpc0VmbCgpKSB7
Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSkgewogICAgICMgR1RLKyBh
bmQgRUZMIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55
dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIGIvVG9vbHMvU2NyaXB0cy91cGRh
dGUtd2Via2l0LWxpYnMtamhidWlsZAppbmRleCAzODkzZGFmZDhlZS4uZWVkNWY2YmRlYTEgMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQKKysrIGIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAtMjUsOSArMjUsMTAg
QEAgdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiBteSAkcGxhdGZv
cm0gPSAiIjsKICRwbGF0Zm9ybSA9ICJlZmwiIGlmIGlzRWZsKCk7CiAkcGxhdGZvcm0gPSAiZ3Rr
IiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIgaWYgaXNXUEUoKTsKIAogaWYgKCEkcGxh
dGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1l
KCQwKSAuIi4gVXNlIC0tZ3RrIG9yIC0tZWZsLlxuIjsKKyAgICBkaWUgIk5vIHBsYXRmb3JtIHNw
ZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLCAtLWVmbCBvciAtLXdw
ZS5cbiI7CiB9CiAKIG15ICR3aXBlT25DaGFuZ2UgPSAkRU5We0pIQlVJTERfV0lQRV9PTl9DSEFO
R0V9IC8vIDE7CkBAIC0xMzMsNyArMTM0LDcgQEAgZGVsZXRlICRFTlZ7QVJfRkxBR1N9IGlmIGV4
aXN0cyAkRU5We0FSX0ZMQUdTfTsKIAogY2hkaXIocmVsYXRpdmVTY3JpcHRzRGlyKCkgLiAiLy4u
L2poYnVpbGQiKSBvciBkaWUgJCE7CiAKLW15ICVwcmV0dHlQbGF0Zm9ybSA9ICggImVmbCIgPT4g
IkVGTCIsICJndGsiID0+ICJHVEsrIiApOworbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZWZsIiA9
PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiLCAid3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3Jj
ZSAmJiAhamhidWlsZENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5
UGxhdGZvcm17JHBsYXRmb3JtfSAuICIgcG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAg
dG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1s
aWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEv
dXNyL2Jpbi9wZXJsIC13CisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5
cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZy
ZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vu
c2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgor
IyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0
aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExp
Y2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUg
U29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxp
YiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVs
YXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdl
YmtpdC1saWJzLWpoYnVpbGQiLCAiLS13cGUiLCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYg
LS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0KaW5kZXggYzQwYWZmNmY4MjguLmJjYjFkM2VjMDJlIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBt
CkBAIC0xMDgsNiArMTA4LDcgQEAgdXNlIGNvbnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFj
IiwKICAgICBKU0NPbmx5ICA9PiAiSlNDT25seSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJv
IiwKKyAgICBXUEUgICAgICA9PiAiV1BFIiwKICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07
CiAKQEAgLTQ0Nyw2ICs0NDgsNyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAg
ICAgcHVzaChAYXJncywgJy0tNjQtYml0JykgaWYgKGlzV2luNjQoKSk7CiAgICAgcHVzaChAYXJn
cywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1lZmwnKSBpZiBpc0Vm
bCgpOworICAgIHB1c2goQGFyZ3MsICctLXdwZScpIGlmIGlzV1BFKCk7CiAgICAgcHVzaChAYXJn
cywgJy0tanNjLW9ubHknKSBpZiBpc0pTQ09ubHkoKTsKICAgICBwdXNoKEBhcmdzLCAnLS13aW5j
YWlybycpIGlmIGlzV2luQ2Fpcm8oKTsKICAgICBwdXNoKEBhcmdzLCAnLS1pbnNwZWN0b3ItZnJv
bnRlbmQnKSBpZiBpc0luc3BlY3RvckZyb250ZW5kKCk7CkBAIC02ODIsNyArNjg0LDcgQEAgc3Vi
IGV4ZWN1dGFibGVQcm9kdWN0RGlyCiAgICAgbXkgJHByb2R1Y3REaXJlY3RvcnkgPSBwcm9kdWN0
RGlyKCk7CiAKICAgICBteSAkYmluYXJ5RGlyZWN0b3J5OwotICAgIGlmIChpc0VmbCgpIHx8IGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlz
SlNDT25seSgpIHx8IGlzV1BFKCkpIHsKICAgICAgICAgJGJpbmFyeURpcmVjdG9yeSA9ICJiaW4i
OwogICAgIH0gZWxzaWYgKGlzQW55V2luZG93cygpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3Rv
cnkgPSBpc1dpbjY0KCkgPyAiYmluNjQiIDogImJpbjMyIjsKQEAgLTk0Myw2ICs5NDUsOSBAQCBz
dWIgYnVpbHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgICAgICByZXR1cm4gIiRiYXNlUHJvZHVj
dERpci8kbGlicmFyeU5hbWUuaW50ZXJtZWRpYXRlLyRjb25maWd1cmF0aW9uLyRsaWJyYXJ5TmFt
ZS5pbnRlcm1lZGlhdGUvJGxpYnJhcnlOYW1lLmxpYiI7CiAgICAgICAgIH0KICAgICB9CisgICAg
aWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkY29uZmlndXJhdGlvblByb2R1Y3REaXIv
bGliL2xpYldQRVdlYktpdC5zbyI7CisgICAgfQogCiAgICAgZGllICJVbnN1cHBvcnRlZCBwbGF0
Zm9ybSwgY2FuJ3QgZGV0ZXJtaW5lIGJ1aWx0IGxpYnJhcnkgbG9jYXRpb25zLlxuVHJ5IGBidWls
ZC13ZWJraXQgLS1oZWxwYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiI7CiB9CkBAIC0xMDU4LDcg
KzEwNjMsOCBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUoKQogICAgICAgICBlZmwgPT4gRWZsLAog
ICAgICAgICBndGsgPT4gR1RLLAogICAgICAgICAnanNjLW9ubHknID0+IEpTQ09ubHksCi0gICAg
ICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvCisgICAgICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvLAor
ICAgICAgICB3cGUgPT4gV1BFCiAgICAgKTsKIAogICAgIGZvciBteSAkYXJnIChzb3J0IGtleXMg
JWFyZ1RvUG9ydE5hbWUpIHsKQEAgLTEwOTMsNiArMTA5OSw3IEBAIHN1YiBkZXRlcm1pbmVQb3J0
TmFtZSgpCiAgICAgICAgICAgICAgICAgLS1lZmwKICAgICAgICAgICAgICAgICAtLWd0awogICAg
ICAgICAgICAgICAgIC0tanNjLW9ubHkKKyAgICAgICAgICAgICAgICAtLXdwZQogICAgICAgICAg
ICAgKTsKICAgICAgICAgICAgIGRpZSAiUGxlYXNlIHNwZWNpZnkgd2hpY2ggV2ViS2l0IHBvcnQg
dG8gYnVpbGQgdXNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoiCiAgICAgICAgICAg
ICAgICAgLiAiXG5cdCRwb3J0c0Nob2ljZVxuIjsKQEAgLTExMjUsNiArMTEzMiwxMSBAQCBzdWIg
aXNKU0NPbmx5KCkKICAgICByZXR1cm4gcG9ydE5hbWUoKSBlcSBKU0NPbmx5OwogfQogCitzdWIg
aXNXUEUoKQoreworICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIFdQRTsKK30KKwogIyBEZXRlcm1p
bmUgaWYgdGhpcyBpcyBkZWJpYW4sIHVidW50dSwgbGluc3BpcmUsIG9yIHNvbWV0aGluZyBzaW1p
bGFyLgogc3ViIGlzRGViaWFuQmFzZWQoKQogewpAQCAtMTUyOCw2ICsxNTQwLDggQEAgc3ViIGxh
dW5jaGVyUGF0aCgpCiAgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLW1p
bmlicm93c2VyIjsKICAgICB9IGVsc2lmIChpc0FwcGxlV2ViS2l0KCkpIHsKICAgICAgICAgcmV0
dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tc2FmYXJpIjsKKyAgICB9IGVsc2lmIChpc1dQ
RSgpKSB7CisgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVuLXdwZSI7CiAg
ICAgfQogfQogCkBAIC0xNTM5LDYgKzE1NTMsOCBAQCBzdWIgbGF1bmNoZXJOYW1lKCkKICAgICAg
ICAgcmV0dXJuICJTYWZhcmkiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJLaXQoKSkgewog
ICAgICAgICByZXR1cm4gIk1pbmlCcm93c2VyIjsKKyAgICB9IGVsc2lmIChpc1dQRSgpKSB7Cisg
ICAgICAgIHJldHVybiAiV1BFTGF1bmNoZXIiOwogICAgIH0KIH0KIApAQCAtMTg0MCw2ICsxODU2
LDggQEAgc3ViIGdldEpoYnVpbGRQYXRoKCkKICAgICAgICAgcHVzaChAamhidWlsZFBhdGgsICJE
ZXBlbmRlbmNpZXNFRkwiKTsKICAgICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAgICAgIHB1c2go
QGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzR1RLIik7CisgICAgfSBlbHNpZiAoaXNXUEUoKSkg
eworICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc1dQRSIpOwogICAgIH0g
ZWxzZSB7CiAgICAgICAgIGRpZSAiQ2Fubm90IGdldCBKSEJ1aWxkIHBhdGggZm9yIHBsYXRmb3Jt
IHRoYXQgaXNuJ3QgR1RLKyBvciBFRkwuXG4iOwogICAgIH0KQEAgLTE4ODIsNiArMTkwMCw4IEBA
IHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQogICAgICAgICAgICAgcHVzaChAcHJlZml4LCAi
LS1lZmwiKTsKICAgICAgICAgfSBlbHNpZiAoaXNHdGsoKSkgewogICAgICAgICAgICAgcHVzaChA
cHJlZml4LCAiLS1ndGsiKTsKKyAgICAgICAgfSBlbHNpZiAoaXNXUEUoKSkgeworICAgICAgICAg
ICAgcHVzaChAcHJlZml4LCAiLS13cGUiKTsKICAgICAgICAgfQogICAgICAgICBwdXNoKEBwcmVm
aXgsICJydW4iKTsKIApAQCAtMjA0MCw3ICsyMDYwLDcgQEAgc3ViIGdlbmVyYXRlQnVpbGRTeXN0
ZW1Gcm9tQ01ha2VQcm9qZWN0CiAgICAgcHVzaCBAYXJncywgJy1EU0hPV19CSU5ESU5HU19HRU5F
UkFUSU9OX1BST0dSRVNTPTEnIHVubGVzcyAoJHdpbGxVc2VOaW5qYSAmJiAtdCBTVERPVVQpOwog
CiAgICAgIyBTb21lIHBvcnRzIGhhdmUgcHJvZHVjdGlvbiBtb2RlLCBidXQgYnVpbGQtd2Via2l0
IHNob3VsZCBhbHdheXMgdXNlIGRldmVsb3BlciBtb2RlLgotICAgIHB1c2ggQGFyZ3MsICItRERF
VkVMT1BFUl9NT0RFPU9OIiBpZiBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NPbmx5KCk7Cisg
ICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkgfHwgaXNHdGso
KSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJuIHZhcmlhYmxl
cyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBhcmdzLCAiLS1u
by13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEyMSw2ICsyMTQxLDEwIEBAIHN1YiBidWlsZENNYWtl
UHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURpci9U
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGllICQhOwogICAg
IH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJH
VigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKKyAg
ICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWlsZFN5c3RlbUZy
b21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBleGl0KCRyZXR1
cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtCmluZGV4IGI3N2UyYTBkZjJjLi40Yzc0ZDljNDBlMSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJvaGliaXRVbmtu
b3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIjNkLXJlbmRl
cmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBc
JHRocmVlRFRyYW5zZm9ybXNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9U
UkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNJT1NXZWJL
aXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdGhyZWVE
VHJhbnNmb3Jtc1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJhY2NlbGVyYXRlZC0yZC1j
YW52YXMiLCBkZXNjID0+ICJUb2dnbGUgQWNjZWxlcmF0ZWQgMkQgQ2FudmFzIHN1cHBvcnQiLAot
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMkRDYW52YXNTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IGlzV1BFKCks
IHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJhbGxpbm9uZS1idWlsZCIsIGRlc2MgPT4gIlRvZ2dsZSBhbGwtaW4tb25lIGJ1aWxkIiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FMTElOT05FX0JVSUxEIiwgZGVmYXVsdCA9PiBpc1dp
bmRvd3MoKSwgdmFsdWUgPT4gXCRhbGxJbk9uZUJ1aWxkIH0sCkBAIC0xODMsNyArMTgzLDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1JFU09M
VVRJT04iLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkY3NzSW1hZ2VSZXNvbHV0aW9u
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImNzcy1pbWFnZS1zZXQiLCBkZXNjID0+ICJU
b2dnbGUgQ1NTIGltYWdlLXNldCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NT
U19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBc
JGNzc0ltYWdlU2V0U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdF
X1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJjc3MtcmVnaW9u
cyIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgUmVnaW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0NTU19SRUdJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGNzc1JlZ2lv
bnNTdXBwb3J0IH0sCkBAIC0yMDcsNyArMjA3LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCIsIGRlZmF1bHQgPT4gaXNFZmwoKSwg
dmFsdWUgPT4gXCRkYXRhbGlzdEVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
ZGV2aWNlLW9yaWVudGF0aW9uIiwgZGVzYyA9PiAiVG9nZ2xlIERldmljZSBPcmllbnRhdGlvbiBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRl
ZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRkZXZpY2VPcmllbnRhdGlvblN1cHBv
cnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTiIsIGRlZmF1
bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkZGV2aWNlT3JpZW50
YXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZG9tNC1ldmVudHMtY29uc3RydWN0
b3IiLCBkZXNjID0+ICJFeHBvc2UgRE9NNCBFdmVudHMgY29uc3RydWN0b3JzIiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SIiwgZGVmYXVsdCA9PiAoaXNB
cHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkZG9tNEV2ZW50
c0NvbnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFs
dWUgPT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJmdGwt
aml0IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlz
SlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8
IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0b3J5
IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9PiAx
LCB2YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBAZmVh
dHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9j
YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8
fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkZ2VvbG9j
YXRpb25TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRl
ZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJoaWdoLWRwaS1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgSGlnaCBE
UEkgQ2FudmFzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSElHSF9EUElfQ0FO
VkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpKSwgdmFsdWUgPT4gXCRoaWdoRFBJQ2Fu
dmFzU3VwcG9ydCB9LApAQCAtMjQ2LDcgKzI0Niw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0
KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUgSW5kZXhlZCBEYXRhYmFzZSBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0
ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9
PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lO
REVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0Vm
bCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2MgPT4gIlRvZ2ds
ZSBJbnB1dCBTcGVlY2ggc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9JTlBVVF9T
UEVFQ0giLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBwb3J0IH0sCkBA
IC0zMTIsNyArMzEyLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfTUVURVJfRUxFTUVOVCIsIGRlZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQoKSwgdmFsdWUg
PT4gXCRtZXRlckVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAibWh0bWwiLCBk
ZXNjID0+ICJUb2dnbGUgTUhUTUwgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9N
SFRNTCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkbWh0bWxT
dXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlz
R3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRtaHRtbFN1cHBvcnQgfSwK
IAogICAgIHsgb3B0aW9uID0+ICJtb3VzZS1jdXJzb3Itc2NhbGUiLCBkZXNjID0+ICJUb2dnbGUg
U2NhbGVkIG1vdXNlIGN1cnNvciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01P
VVNFX0NVUlNPUl9TQ0FMRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRtb3VzZUN1
cnNvclNjYWxlU3VwcG9ydCB9LApAQCAtMzI0LDcgKzMyNCw3IEBAIG15IEBmZWF0dXJlcyA9ICgK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZIiwgZGVmYXVs
dCA9PiAxLCB2YWx1ZSA9PiBcJGhhcmR3YXJlQ29uY3VycmVuY3lTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAibmV0c2NhcGUtcGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2dsZSBOZXRzY2Fw
ZSBQbHVnaW4gQVBJIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVf
UExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwkbmV0c2Nh
cGVQbHVnaW5BUElTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9Q
TFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAoIWlzSU9TV2ViS2l0KCkgJiYgIWlzV1BFKCkpLCB2YWx1
ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5v
c25pZmYiLCBkZXNjID0+ICJUb2dnbGUgc3VwcG9ydCBmb3IgJ1gtQ29udGVudC1UeXBlLU9wdGlv
bnM6IG5vc25pZmYnIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PU05JRkYiLCBkZWZhdWx0
ID0+IGlzRWZsKCksIHZhbHVlID0+IFwkbm9zbmlmZlN1cHBvcnQgfSwKQEAgLTMzNiw3ICszMzYs
NyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9PUklFTlRBVElP
Tl9FVkVOVFMiLCBkZWZhdWx0ID0+IGlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwkb3JpZW50YXRp
b25FdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicGVyZm9ybWFuY2UtdGltZWxp
bmUiLCBkZXNjID0+ICJUb2dnbGUgUGVyZm9ybWFuY2UgVGltZWxpbmUgc3VwcG9ydCIsCi0gICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1bHQgPT4gaXNH
dGsoKSwgdmFsdWUgPT4gXCRwZXJmb3JtYW5jZVRpbWVsaW5lU3VwcG9ydCB9LAorICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUiLCBkZWZhdWx0ID0+IChpc0d0aygp
IHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0IH0sCiAK
ICAgICB7IG9wdGlvbiA9PiAicHJveGltaXR5LWV2ZW50cyIsIGRlc2MgPT4gIlRvZ2dsZSBQcm94
aW1pdHkgRXZlbnRzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUFJPWElNSVRZ
X0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRwcm94aW1pdHlFdmVudHNTdXBwb3J0
IH0sCkBAIC0zNjYsNyArMzY2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+
ICJVU0VfU1lTVEVNX01BTExPQyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRzeXN0ZW1NYWxs
b2NTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtZXZlbnRzIiwgZGVzYyA9PiAi
VG9nZ2xlIFRvdWNoIEV2ZW50cyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1RP
VUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNFZmwoKSB8fCBpc0d0
aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNFZmwo
KSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRzU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gInRvdWNoLWljb24tbG9hZGluZyIsIGRlc2MgPT4gIlRvZ2ds
ZSBUb3VjaCBJY29uIExvYWRpbmcgU3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9U
T1VDSF9JQ09OX0xPQURJTkciLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdG91Y2hJY29uTG9h
ZGluZ1N1cHBvcnQgfSwKQEAgLTM3OCwxNiArMzc4LDE2IEBAIG15IEBmZWF0dXJlcyA9ICgKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJQlJBVElPTiIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFs
dWUgPT4gXCR2aWJyYXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidmlkZW8iLCBk
ZXNjID0+ICJUb2dnbGUgVmlkZW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9W
SURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkp
LCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklE
RU8iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8
IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
InZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZpZGVvIFRyYWNrIHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChpc0FwcGxlV2Vi
S2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR2aWRlb1RyYWNrU3VwcG9y
dCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChp
c0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9
PiBcJHZpZGVvVHJhY2tTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWFuaW1hdGlv
bnMiLCBkZXNjID0+ICJUb2dnbGUgV2ViIEFuaW1hdGlvbnMgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9XRUJfQU5JTUFUSU9OUyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3
ZWJBbmltYXRpb25zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1hdWRpbyIsIGRl
c2MgPT4gIlRvZ2dsZSBXZWIgQXVkaW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBc
JHdlYkF1ZGlvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX0FVRElPIiwg
ZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdl
YkF1ZGlvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1yZXBsYXkiLCBkZXNjID0+
ICJUb2dnbGUgV2ViIFJlcGxheSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dF
Ql9SRVBMQVkiLCBkZWZhdWx0ID0+IGlzQXBwbGVDb2NvYVdlYktpdCgpLCB2YWx1ZSA9PiBcJHdl
YlJlcGxheVN1cHBvcnQgfSwKQEAgLTQwMiwxMCArNDAyLDEwIEBAIG15IEBmZWF0dXJlcyA9ICgK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9USU1JTkciLCBkZWZhdWx0ID0+IDEsIHZhbHVl
ID0+IFwkd2ViVGltaW5nU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYmFzc2VtYmx5
IiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkFzc2VtYmx5IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygp
IHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJHdlYkFzc2VtYmx5U3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgp
ICYmIChpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkd2Vi
QXNzZW1ibHlTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViZ2wiLCBkZXNjID0+ICJU
b2dnbGUgV2ViR0wgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRl
ZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZh
bHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJHTCIs
IGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8
fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJ3cml0YWJsZVN0cmVhbUFQSSIsIGRlc2MgPT4gIlRvZ2dsZSBXcml0YWJsZVN0cmVhbSBBUEkg
c3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XUklUQUJMRV9TVFJFQU1fQVBJIiwg
ZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdyaXRhYmxlU3RyZWFtQVBJU3VwcG9ydCB9LApkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90
ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKaW5kZXggN2M2ZGRjODM5ZjMuLjU3MmU4YTVlNzdkIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5CisrKyBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHkK
QEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgX3NldF91cF9kZXJpdmVkX29wdGlvbnMocG9ydCwgb3B0
aW9ucyk6CiAgICAgICAgIG9wdGlvbnMudmVyYm9zZSA9IFRydWUKIAogICAgICMgVGhlIEdUSysg
YW5kIEVGTCBwb3J0cyBvbmx5IHN1cHBvcnQgV2ViS2l0MiBzbyB0aGV5IGFsd2F5cyB1c2UgV0tU
Ui4KLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtID09ICJndGsiIG9yIG9wdGlvbnMucGxhdGZvcm0g
PT0gImVmbCI6CisgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSBpbiBbImVmbCIsICJndGsiLCAid3Bl
Il06CiAgICAgICAgIG9wdGlvbnMud2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQogCiAKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKaW5kZXggYzYxZDE3ZjY1MzQuLmE3MTY0OTli
MzI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAtNTYsNiArNTYs
OSBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAgICAgICBvcHRw
YXJzZS5tYWtlX29wdGlvbignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgZGVzdD0ncGxh
dGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnZ3Rr
JyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrKicgaWYgdXNl
X2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oJy0td3BlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRlc3Q9J3BsYXRm
b3JtJywKKyAgICAgICAgICAgIGNvbnN0PSgnd3BlKicgaWYgdXNlX2dsb2JzIGVsc2UgJ3dwZScp
LAorICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPXdwZScpKSwKICAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8taW5zdGFsbCcsIGFjdGlvbj0nc3RvcmVfY29u
c3QnLAogICAgICAgICAgICAgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwgZGVzdD0naW5zdGFs
bCcsCiAgICAgICAgICAgICBoZWxwPSdTa2lwIGluc3RhbGwgc3RlcCBmb3IgZGV2aWNlIGFuZCBz
aW11bGF0b3IgdGVzdGluZycpLApAQCAtOTcsNiArMTAwLDcgQEAgY2xhc3MgUG9ydEZhY3Rvcnko
b2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAnd2luLldpbkNhaXJv
UG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUuV1BFUG9ydCcsCiAg
ICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjODM5ZTdm
YzAyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5w
eQpAQCAtMCwwICsxLDc4IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyMgbWV0
OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorIyBp
biB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xlIG5hbWUgbm9y
IHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ug
b3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAi
QVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisj
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisj
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5tZW1v
aXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50
ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9tIHdlYmtpdHB5
LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4X2dldF9jcmFz
aF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKK2NsYXNzIFdQRVBvcnQoUG9ydCk6
CisgICAgcG9ydF9uYW1lID0gIndwZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCAqYXJncywg
Kiprd2FyZ3MpOgorICAgICAgICBzdXBlcihXUEVQb3J0LCBzZWxmKS5fX2luaXRfXygqYXJncywg
Kiprd2FyZ3MpCisKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX3VzZV9qaGJ1aWxkKCk6CisgICAg
ICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXIgPSBbc2VsZi5wYXRoX2Zyb21fd2Via2l0X2Jh
c2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICctLXdwZScsICdydW4n
XQorICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXInLCAnICcuam9p
bihzZWxmLl9qaGJ1aWxkX3dyYXBwZXIpKQorCisgICAgZGVmIGRlZmF1bHRfdGltZW91dF9tcyhz
ZWxmKToKKyAgICAgICAgcmV0dXJuIDYwMDAKKworICAgIGRlZiBfYnVpbHRfZXhlY3V0YWJsZXNf
cGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCdi
aW4nLCkgKyBwYXRoKSkKKworICAgIGRlZiBfYnVpbHRfbGlicmFyaWVzX3BhdGgoc2VsZiwgKnBh
dGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgqKCgnbGliJywpICsgcGF0aCkp
CisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKKyAgICAgICAgcmV0dXJu
ICItLXdwZSIKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VsZiwgc2VydmVy
X25hbWU9Tm9uZSk6CisgICAgICAgIGVudmlyb25tZW50ID0gc3VwZXIoV1BFUG9ydCwgc2VsZiku
c2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICBlbnZpcm9ubWVu
dFsnR1NFVFRJTkdTX0JBQ0tFTkQnXSA9ICdtZW1vcnknCisgICAgICAgIGVudmlyb25tZW50WydU
RVNUX1JVTk5FUl9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1aWxkX3BhdGgo
J2xpYicsICdsaWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAgICBlbnZpcm9u
bWVudFsnVEVTVF9SVU5ORVJfVEVTVF9QTFVHSU5fUEFUSCddID0gc2VsZi5fYnVpbGRfcGF0aCgn
bGliJywgJ3BsdWdpbnMnKQorICAgICAgICBlbnZpcm9ubWVudFsnV0VCS0lUX0VYRUNfUEFUSCdd
ID0gc2VsZi5fYnVpbGRfcGF0aCgnYmluJykKKyAgICAgICAgcmV0dXJuIGVudmlyb25tZW50CisK
KyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYpOgorICAgICAg
ICBjb25maWd1cmF0aW9ucyA9IFtdCisgICAgICAgIGZvciBidWlsZF90eXBlIGluIHNlbGYuQUxM
X0JVSUxEX1RZUEVTOgorICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5kKFRlc3RDb25m
aWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJjaGl0ZWN0dXJlPSd4ODYnLCBidWls
ZF90eXBlPWJ1aWxkX3R5cGUpKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlvbnMKKworICAg
IGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBfcGF0aF90b19p
bWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbHRfZXhlY3V0YWJsZXNf
cGF0aCgnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxmLCBuYW1lLCBw
aWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKKyAgICAgICAgbmFtZSA9ICJXUEVXZWJQ
cm9jZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5hbWUKKyAgICAgICAgcmV0dXJu
IEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2VsZi5fZmlsZXN5
c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhzdGRvdXQsIHN0
ZGVycikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2Ug
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTc4NDc1NWYzNgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw2MCBAQAorc2V0
KFRFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtFX1JVTlRJTUVf
T1VUUFVUX0RJUkVDVE9SWX0vVGVzdFdlYktpdEFQSSIpCitzZXQoVEVTVFdFQktJVEFQSV9SVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUllfV1RGICIke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRf
RElSRUNUT1JZfS9XVEYiKQorCisjIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgaXQgaXMgcG9z
c2libGUgdG8gYnVpbGQgVGVzdFdlYktpdEFQSSB3aXRoIFdlYktpdDIKKyMgZGlzYWJsZWQgYW5k
IHRoaXMgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGUgV2ViS2l0MiBoZWFkZXJzLgorYWRk
X2RlZmluaXRpb25zKC1EQlVJTERJTkdfV0VCS0lUMl9fKQorCithZGRfY3VzdG9tX3RhcmdldChU
ZXN0V2ViS2l0QVBJLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJMX0VYRUNV
VEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJz
LnBsIC0taW5jbHVkZS1wYXRoICR7VEVTVFdFQktJVEFQSV9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FS
RElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3VwCisgICAgREVQ
RU5EUyB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitzZXQoRm9yd2FyZGluZ0hl
YWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUUgVGVzdFdlYktpdEFQSS1mb3J3YXJkaW5nLWhlYWRl
cnMpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoCisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElS
fQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENvcmUKKykKKworaW5j
bHVkZV9kaXJlY3RvcmllcyhTWVNURU0KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7
TElCU09VUF9JTkNMVURFX0RJUlN9CispCisKK3NldCh0ZXN0X21haW5fU09VUkNFUworICAgICR7
VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9tYWluLmNwcAorKQorCitzZXQoYnVuZGxlX2hhcm5lc3Nf
U09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9JbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXJXUEUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL1BsYXRmb3JtVXRpbGl0
aWVzV1BFLmNwcAorKQorCisjIFRlc3RXVEYKKworbGlzdChBUFBFTkQgVGVzdFdURl9TT1VSQ0VT
CisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvR1VuaXF1ZVB0ci5jcHAK
KyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVldWVHTGliLmNw
cAorKQorCisjIFRlc3RXZWJDb3JlCisKK2FkZF9leGVjdXRhYmxlKFRlc3RXZWJDb3JlCisgICAg
JHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0c0NvbnRy
b2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9IVE1MUGFy
c2VySWRpb21zLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvTGF5
b3V0VW5pdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1VSTC5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlci5j
cHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJlZEJ1ZmZlclRl
c3QuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9GaWxlU3lzdGVt
LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvUHVibGljU3VmZml4
LmNwcAorKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdFdlYkNvcmUgJHt0ZXN0X3dlYmNv
cmVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFdlYkNvcmUgJHtGb3J3YXJkaW5n
SGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0pCisKK2FkZF90ZXN0KFRlc3RXZWJDb3JlICR7
VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUvVGVzdFdlYkNv
cmUpCitzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJUSUVTIFRJTUVPVVQg
NjApCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElFUyBSVU5USU1F
X09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9S
WX0vV2ViQ29yZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9JbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5mZDIxMjFiZDdhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyLmgiCisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXI6
OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVz
V1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTIxYzFlYWEyZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9ybVV0aWxpdGll
c1dQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KKyNpbmNsdWRl
IDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKK25h
bWVzcGFjZSBVdGlsIHsKKwordm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKK3sKKyAgICBnX3Vz
bGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRGaWxlbmFtZUZy
b21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KGNvbnN0IGNoYXIqIHZhcmlhYmxlTmFtZSkKK3sK
KyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7CisgICAgaWYg
KCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBu
b3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMSk7CisgICAgfQorICAg
IGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVl
LCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK1dLU3RyaW5nUmVmIGNyZWF0ZUluamVj
dGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZVBh
dGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRf
QVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFy
PiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0ZWRCdW5kbGVQ
YXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnNvIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpbmplY3RlZEJ1bmRs
ZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVzb3VyY2UoY29u
c3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKK3sKKyAgICBHVW5pcXVl
UHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFy
aWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19QQVRIIikpOwor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1cF9wcmludGYoIiVz
LiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3Vy
Y2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdldCgpLCByZXNv
dXJjZUJhc2VuYW1lLmdldCgpLCBudWxscHRyKSk7CisgICAgR1JlZlB0cjxHRmlsZT4gcmVzb3Vy
Y2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VGaWxlbmFtZS5n
ZXQoKSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxlX2dldF91cmko
cmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0aFVURjhDU3Ry
aW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRpbAorfSAvLyBu
YW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjY1NjhiNmMzMmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDMyIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKworaW50IG1haW4oaW50
IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBUZXN0V2ViS2l0QVBJOjpUZXN0c0Nv
bnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VDQ0VTUyA6IEVY
SVRfRkFJTFVSRTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAKaW5kZXggMGEx
MzBkNGU4ZGQuLmRlMmJlM2U3YmNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cApAQCAtNzEsNyArNzEsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjplbmhhbmNl
ZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKICAgICByZXR1cm4gV0tBY2Nlc3NpYmlsaXR5RW5oYW5j
ZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBM
QVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKSAmJiAhUExB
VEZPUk0oV1BFKQogUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBhZ2UgPSBJbmpl
Y3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmgKaW5kZXggNWNmMGQ3MzljMWUuLmM4ZDc4ZTc3YTEyIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9nbG9iYWxO
b3RpZmljYXRpb25IYW5kbGVyOwotI2Vsc2UKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKQogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFuZGxlcj4gbV9n
bG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5jcHAKaW5kZXggMjMzZmY3ZDIwMzQuLmI4YWY2ZjE2Y2E4IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1l
bnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1RleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICNlbmRpZgog
ICAgIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBvbiB2YXJpb3VzIHBsYXRmb3Jtcy4gQXMgdGhl
eSdyZSBpbXBsZW1lbnRlZCBvbiBvdGhlciBwbGF0Zm9ybXMgdGhpcyBsaXN0IHNob3VsZCBiZSBt
b2RpZmllZC4KLSNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkpIHx8ICFIQVZF
KEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQTEFURk9STShFRkwpICYm
ICFQTEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkg
eyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZzZXQo
aW50KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4
IDU1MDlhZjIxNzdkLi42ZDA3MDY3OGI5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgK
QEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dpdGhB
dHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBnZXRDaGlsZHJl
bihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mKTsKICAgICB2b2lkIGdl
dENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
PiYsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApp
bmRleCBhZmZjNDBmMGU0My4uMDE5MTM2MjM3NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtOTgsNyArOTgsNyBA
QCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fZGF0YWJhc2VNYXhRdW90YSgtMSkK
ICAgICAsIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkKGZhbHNlKQogICAgICwgbV91c2VyU3R5bGVT
aGVldExvY2F0aW9uKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcoIiIpKSkK
LSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgLCBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRl
c3RSdW5uZXI6OndhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQpCiAjZW5kaWYKIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKaW5k
ZXggOGRjODljYTMxNWUuLjRkYjI4YWQ0YTJjIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzgsNyArMzgsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlvbi9DRlJ1bkxv
b3AuaD4KIHR5cGVkZWYgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBQbGF0Zm9ybVRpbWVy
UmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIG5hbWVzcGFjZSBXVFIgewogY2xhc3Mg
VGVzdFJ1bm5lcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk0YzJhYWI3MDgKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5Q29u
dHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWY8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjcmVhdGUobnVsbHB0cik7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRy
KTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZpY2F0aW9uTGlz
dGVuZXIoSlNWYWx1ZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3ZlTm90aWZpY2F0
aW9uTGlzdGVuZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElU
WSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ2NDkxNTBhNTQwCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudFdQRS5jcHAKQEAgLTAsMCArMSw5NTkgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiAg
dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2
ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg
dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiAgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiAgWW91
IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUg
dG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdUUiB7CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25z
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+QWNjZXNzaWJpbGl0eVVJRWxlbWVudCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c0VxdWFsKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omdl
dENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+JikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omdl
dENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
JiwgdW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEF0UG9pbnQoaW50LCBpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWdu
ZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKKwor
UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNo
aWxkQXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNz
aWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93bnNFbGVtZW50
QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29udHJvbHNFbGVt
ZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRleCh1bnNpZ25l
ZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Vs
ZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2lnbmVkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0aXRsZVVJRWxl
bWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnBhcmVudEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpkaXNjbG9zZWRCeVJvdygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVudHMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZEb2N1bWVudExp
bmtzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mQ2hpbGRyZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphbGxBdHRyaWJ1dGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om51bWJlckF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK0pTVmFsdWVS
ZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpyb3dIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVt
bkhlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFsdWUoSlNTdHJp
bmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmlidXRlU2V0dGFi
bGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1lcygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJyb2xlKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9uKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29tcHV0ZWRSb2xlU3RyaW5n
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGl0bGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNjcmlwdGlvbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9yaWVudGF0aW9u
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Ry
aW5nVmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojps
YW5ndWFnZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhl
bHBUZXh0KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6eSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmhlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFgo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91Ymxl
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjppbnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWluVmFsdWUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUHJlc3NB
Y3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVtZW50QWN0aW9u
U3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0RlY3JlbWVudEFjdGlvblN1cHBv
cnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0ZvY3Vz
ZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzQ2hlY2tlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRldGVybWluYXRl
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVsKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWsoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJvcEVmZmVjdHMoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpyYW5nZUZvckxpbmUoaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCwgaW50KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5nZSh1bnNpZ25l
ZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclJhbmdlKHVuc2lnbmVk
LCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdSYW5n
ZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJlZiwgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCosIGJvb2wsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVmLCBib29sLCBi
b29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEo
SlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIEpTU3Ry
aW5nUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dzKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mVmlz
aWJsZUNlbGxzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlc09mSGVhZGVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93Q291bnQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2ludCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4SW5U
YWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0luZGV4UmFu
Z2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5J
bmRleFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250YWxTY3JvbGxi
YXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNob3dNZW51KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnByZXNzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCog
ZWxlbWVudCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2lnbmVkIGluZGV4
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRleCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNsZWFyU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojph
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJhY2spCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1NlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlTZWxlY3Rh
YmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJZ25vcmVk
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NpbmdsZUxpbmUoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlMaW5lKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpoYXNQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZUZvY3VzKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnRha2VTZWxlY3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92ZVNlbGVjdGlv
bigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0TWFya2VyUmFu
Z2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdl
Rm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0
TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5nZShBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGludCwg
aW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JQb2lu
dChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0
TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiwgQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRleHRNYXJrZXIo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNUZXh0TWFya2Vy
VmFsaWQoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleChpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJr
ZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
ZW5kVGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxlY3RlZFZpc2li
bGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb0dsb2JhbFBvaW50KGlu
dCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQsIGludCwgaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRoRGVzY3JpcHRp
b24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
YXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24oKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGFzc0xpc3QoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGFyYWN0
ZXJBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OndvcmRBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlICBXVEYKKwor
I2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzY2Y3MjFiMzE5Ci0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
QWN0aXZhdGVGb250c1dQRS5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFjdGl2YXRlRm9udHMuaCIKKworI2luY2x1ZGUgPGZvbnRjb25maWcvZm9udGNvbmZp
Zy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitDU3RyaW5nIHRvcExldmVs
UGF0aCgpCit7CisgICAgaWYgKGNvbnN0IGNoYXIqIHRvcExldmVsRGlyZWN0b3J5ID0gZ19nZXRl
bnYoIldFQktJVF9UT1BfTEVWRUwiKSkKKyAgICAgICAgcmV0dXJuIHRvcExldmVsRGlyZWN0b3J5
OworCisgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHdhc24ndCBwcm92aWRlZCB0
aGVuIGFzc3VtZSB3ZSB3ZXJlIGJ1aWx0IGludG8KKyAgICAvLyBXZWJLaXRCdWlsZC9EZWJ1ZyBv
ciBXZWJLaXRCdWlsZC9SZWxlYXNlLiBPYnZpb3VzbHkgdGhpcyB3aWxsIGZhaWwgaWYgdGhlIGJ1
aWxkCisgICAgLy8gZGlyZWN0b3J5IGlzIG5vbi1zdGFuZGFyZCwgYnV0IHdlIGNhbid0IGRvIG11
Y2ggbW9yZSBhYm91dCB0aGlzLgorICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGFyZW50UGF0aChnX3Bh
dGhfZ2V0X2Rpcm5hbWUoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkuZGF0YSgpKSk7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBsYXlvdXRUZXN0c1BhdGgoZ19idWlsZF9maWxlbmFtZShwYXJlbnRQ
YXRoLmdldCgpLCAiLi4iLCAiLi4iLCAiLi4iLCBudWxscHRyKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiBhYnNvbHV0ZVRvcExldmVsUGF0aChyZWFscGF0aChsYXlvdXRUZXN0c1BhdGguZ2V0KCks
IDApKTsKKyAgICByZXR1cm4gYWJzb2x1dGVUb3BMZXZlbFBhdGguZ2V0KCk7Cit9CisKK0NTdHJp
bmcgZ2V0T3V0cHV0RGlyKCkKK3sKKyAgICBjb25zdCBjaGFyKiB3ZWJraXRPdXRwdXREaXIgPSBn
X2dldGVudigiV0VCS0lUX09VVFBVVERJUiIpOworICAgIGlmICh3ZWJraXRPdXRwdXREaXIpCisg
ICAgICAgIHJldHVybiB3ZWJraXRPdXRwdXREaXI7CisKKyAgICBHVW5pcXVlUHRyPGNoYXI+IG91
dHB1dERpcihnX2J1aWxkX2ZpbGVuYW1lKHRvcExldmVsUGF0aCgpLmRhdGEoKSwgIldlYktpdEJ1
aWxkIiwgbnVsbHB0cikpOworICAgIHJldHVybiBvdXRwdXREaXIuZ2V0KCk7Cit9CisKK3N0YXRp
YyBDU3RyaW5nIGdldEZvbnRzUGF0aCgpCit7CisgICAgQ1N0cmluZyB3ZWJraXRPdXRwdXREaXIg
PSBnZXRPdXRwdXREaXIoKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGZvbnRzUGF0aChnX2J1aWxk
X2ZpbGVuYW1lKHdlYmtpdE91dHB1dERpci5kYXRhKCksICJEZXBlbmRlbmNpZXNXUEUiLCAiUm9v
dCIsICJ3ZWJraXRndGstdGVzdC1mb250cyIsIG51bGxwdHIpKTsKKyAgICBpZiAoZ19maWxlX3Rl
c3QoZm9udHNQYXRoLmdldCgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklMRV9URVNUX0VY
SVNUUyB8IEdfRklMRV9URVNUX0lTX0RJUikpKQorICAgICAgICByZXR1cm4gZm9udHNQYXRoLmdl
dCgpOworCisgICAgLy8gVHJ5IGFsdGVybmF0aXZlIGZvbnRzIHBhdGguCisgICAgZm9udHNQYXRo
LnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIndlYmtpdGd0
ay10ZXN0LWZvbnRzIiwgTlVMTCkpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0
KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RF
U1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICByZXR1
cm4gQ1N0cmluZygpOworfQorCit2b2lkIGFjdGl2YXRlRm9udHMoKQoreworICAgIGlmIChnX2dl
dGVudigiV0VCS0lUX1NLSVBfV0VCS0lUVEVTVFJVTk5FUl9GT05UQ09ORklHX0lOSVRJQUxJWkFU
SU9OIikpCisgICAgICAgIHJldHVybjsKKworICAgIEZjSW5pdCgpOworCisgICAgLy8gSWYgYSB0
ZXN0IHJlc3VsdGVkIGEgZm9udCBiZWluZyBhZGRlZCBvciByZW1vdmVkIHZpYSB0aGUgQGZvbnQt
ZmFjZSBydWxlLCB0aGVuCisgICAgLy8gd2Ugd2FudCB0byByZXNldCB0aGUgRm9udENvbmZpZyBj
b25maWd1cmF0aW9uIHRvIHByZXZlbnQgaXQgZnJvbSBhZmZlY3Rpbmcgb3RoZXIgdGVzdHMuCisg
ICAgc3RhdGljIGludCBudW1Gb250cyA9IDA7CisgICAgRmNGb250U2V0KiBhcHBGb250U2V0ID0g
RmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAgICBpZiAoYXBwRm9udFNl
dCAmJiBudW1Gb250cyAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gTG9hZCBvdXIgY29uZmlndXJhdGlvbiBmaWxlLCB3aGljaCBzZXRz
IHVwIHByb3BlciBhbGlhc2VzIGZvciBmYW1pbHkKKyAgICAvLyBuYW1lcyBsaWtlIHNhbnMsIHNl
cmlmIGFuZCBtb25vc3BhY2UuCisgICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29uZmlnQ3JlYXRl
KCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udENvbmZpZ0ZpbGVuYW1lKGdfYnVpbGRfZmls
ZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJmb250cy5jb25mIiwgbnVsbHB0cikpOworICAgIGlmICgh
Z19maWxlX3Rlc3QoZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpLCBHX0ZJTEVfVEVTVF9JU19SRUdV
TEFSKSkKKyAgICAgICAgZ19lcnJvcigiQ2Fubm90IGZpbmQgZm9udHMuY29uZiBhdCAlc1xuIiwg
Zm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpKTsKKyAgICBpZiAoIUZjQ29uZmlnUGFyc2VBbmRMb2Fk
KGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udENvbmZpZ0ZpbGVuYW1lLmdl
dCgpKSwgdHJ1ZSkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkbid0IGxvYWQgZm9udCBjb25maWd1
cmF0aW9uIGZpbGUgZnJvbTogJXMiLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworCisgICAg
Q1N0cmluZyBmb250c1BhdGggPSBnZXRGb250c1BhdGgoKTsKKyAgICBpZiAoZm9udHNQYXRoLmlz
TnVsbCgpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9jYXRlIHRlc3QgZm9udHMgYXQg
JXMuIElzIFdFQktJVF9UT1BfTEVWRUwgc2V0PyIsIGZvbnRzUGF0aC5kYXRhKCkpOworCisgICAg
R1VuaXF1ZVB0cjxHRGlyPiBmb250c0RpcmVjdG9yeShnX2Rpcl9vcGVuKGZvbnRzUGF0aC5kYXRh
KCksIDAsIG51bGxwdHIpKTsKKyAgICB3aGlsZSAoY29uc3QgY2hhciogZGlyZWN0b3J5RW50cnkg
PSBnX2Rpcl9yZWFkX25hbWUoZm9udHNEaXJlY3RvcnkuZ2V0KCkpKSB7CisgICAgICAgIGlmICgh
Z19zdHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi50dGYiKSAmJiAhZ19zdHJfaGFzX3N1
ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi5vdGYiKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250UGF0aChnX2J1aWxkX2ZpbGVuYW1lKGZvbnRzUGF0
aC5kYXRhKCksIGRpcmVjdG9yeUVudHJ5LCBudWxscHRyKSk7CisgICAgICAgIGlmICghRmNDb25m
aWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+
KGZvbnRQYXRoLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBm
b250IGF0ICVzISIsIGZvbnRQYXRoLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBBaGVtIGlzIHVz
ZWQgYnkgbWFueSBsYXlvdXQgdGVzdHMuCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gYWhlbUZvbnRG
aWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiQUhFTV9fX18uVFRGIiwg
bnVsbHB0cikpOworICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50
ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAg
Z19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAlcyEiLCBhaGVtRm9udEZpbGVuYW1lLmdl
dCgpKTsgCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZm9udEZpbGVuYW1lc1tdID0geworICAg
ICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjEwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0
V2F0Y2hlcjIwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjMwMC50dGYiLAor
ICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjQwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2Vp
Z2h0V2F0Y2hlcjUwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjYwMC50dGYi
LAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYiLAorICAgICAgICAiV2ViS2l0
V2VpZ2h0V2F0Y2hlcjgwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjkwMC50
dGYiLAorICAgICAgICAwCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBmb250Rmls
ZW5hbWVzW2ldOyArK2kpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udEZpbGVuYW1l
KGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICIuLiIsICIuLiIsICJmb250cyIsIGZv
bnRGaWxlbmFtZXNbaV0sIG51bGxwdHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRB
ZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udEZpbGVuYW1lLmdl
dCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIs
IGZvbnRGaWxlbmFtZS5nZXQoKSk7IAorICAgIH0KKworICAgIC8vIEEgZm9udCB3aXRoIG5vIHZh
bGlkIEZvbnRjb25maWcgZW5jb2RpbmcgdG8gdGVzdCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDc0NTIKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250V2l0aE5vVmFs
aWRFbmNvZGluZ0ZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJGb250
V2l0aE5vVmFsaWRFbmNvZGluZy5mb24iLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0Fw
cEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udFdpdGhO
b1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBu
b3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUuZ2V0
KCkpOyAKKworICAgIGlmICghRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZykpCisgICAgICAgIGdf
ZXJyb3IoIkNvdWxkIG5vdCBzZXQgdGhlIGN1cnJlbnQgZm9udCBjb25maWd1cmF0aW9uISIpOwor
CisgICAgbnVtRm9udHMgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRBcHBsaWNhdGlv
biktPm5mb250OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMjQwODFmZjNh
MjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3Zv
aWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6ZShXS1R5cGVSZWYpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxNGZmZGQwNTYKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNw
cApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0UnVubmVyLmgi
CisKK25hbWVzcGFjZSBXVFIgeworCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5l
cjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZikKK3sKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6Omluc3BlY3RvclRl
c3RTdHViVVJMKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmco
IiIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRhdGVXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcigpCit7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdG9wKCk7Cit9CisKK3Zv
aWQgVGVzdFJ1bm5lcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwordm9pZCBUZXN0UnVu
bmVyOjppbml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCgpCit7CisgICAg
aWYgKCFtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fd2Fp
dFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZW91dCAvIDEwMDAuMCk7Cit9
CisKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQ
RS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGE4NjJkNjlh
ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV1BF
LmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKK2ZpbmRfcGFja2FnZShMaWJHQk0gUkVRVUlSRUQpCitm
aW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNhIFJFUVVJUkVEKQorCithZGRfY3VzdG9tX3Rhcmdl
dChXZWJLaXRUZXN0UnVubmVyLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQRVJM
X0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1o
ZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfSAtLW91dHB1
dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlCispCisKK3NldChGb3J3
YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRSBXZWJLaXRUZXN0UnVubmVyLWZv
cndhcmRpbmctaGVhZGVycykKKworbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VT
CisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0aW9uQ2Fpcm8u
Y3BwCisKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0V2ZW50U2VuZGVyUHJveHlX
UEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9IZWFkbGVzc1ZpZXdCYWNr
ZW5kLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvUGxhdGZvcm1XZWJWaWV3
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvVGVzdENvbnRyb2xsZXJX
UEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9tYWluLmNwcAorKQorCits
aXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke1dF
QktJVF9URVNUUlVOTkVSX0RJUn0vSW5qZWN0ZWRCdW5kbGUvd3BlCisgICAgJHtGT1JXQVJESU5H
X0hFQURFUlNfRElSfQorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9JTkNM
VURFX0RJUlN9CisgICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQorICAgICR7V1BFX01FU0FfSU5D
TFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJQlJBUklFUwor
ICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtMSUJH
Qk1fTElCUkFSSUVTfQorICAgICR7V1BFX01FU0FfTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVO
RCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7V0VCS0lUX1RF
U1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJX
UEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9B
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5K
RUNURURCVU5ETEVfRElSfS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKKyAgICAke1dFQktJVF9U
RVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcAor
ICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvVGVzdFJ1bm5l
cldQRS5jcHAKKykKKworYWRkX2RlZmluaXRpb25zKAorICAgIC1ERk9OVFNfQ09ORl9ESVI9IiR7
VE9PTFNfRElSfS9XZWJLaXRUZXN0UnVubmVyL2d0ay9mb250cyIKKyAgICAtRFRPUF9MRVZFTF9E
SVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iCispCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaAppbmRleCA3MWE0ZTc2NjE3Ni4uNTQyZjAzNjZkNTcgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTMsNiArNTMsMTEgQEAgdHlwZWRlZiBj
YWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CiAjZWxpZiBQTEFURk9STShFRkwpCiB0eXBl
ZGVmIEV2YXNfT2JqZWN0KiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgRWNvcmVfRXZhcyogUGxh
dGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNz
Vmlld0JhY2tlbmQqIFBsYXRmb3JtV2luZG93OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBs
YXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDliNzA5ZTM2Zjc1Li5hZDE5ZjEwYjQyOCAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2Nyw3ICs3
NjcsNyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVz
KGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2lu
ZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9v
LgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNp
ZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BF
KQogICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRTZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RS
IHsKKworRXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciog
dGVzdENvbnRyb2xsZXIpCisgICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQor
ICAgICwgbV90aW1lKDApCisgICAgLCBtX2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAg
LCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1fY2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0
dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94
eTo6fkV2ZW50U2VuZGVyUHJveHkoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlRG93bih1bnNpZ25lZCwgV0tFdmVudE1vZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisK
K3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5
Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBF
dmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50
LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihX
S0V2ZW50TW9kaWZpZXJzLCBib29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNl
dFRvdWNoUG9pbnRSYWRpdXMoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6dG91Y2hTdGFydCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3Zl
KCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hDYW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJv
eHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5
OjpjYW5jZWxUb3VjaFBvaW50KGludCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVz
c1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+
CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8vIEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMg
YW5kIGNsZWFuIHVwIEdCTSByZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERp
c3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7CisgICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5
ID0gRUdMX05PX0RJU1BMQVk7CisgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkg
eworICAgICAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwg
T19DTE9FWEVDIHwgT19OT0NUVFkgfCBPX05PTkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkK
KyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2Jt
X2RldmljZSogZGV2aWNlID0gZ2JtX2NyZWF0ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRl
dmljZSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xE
aXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNw
bGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZ
OworCisgICAgICAgIGlmICghZWdsSW5pdGlhbGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRy
KSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVn
bEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19E
SVNQTEFZOworCisgICAgICAgIHNfZGlzcGxheSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0
dXJuIHNfZGlzcGxheTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFj
a2VuZCgpCit7CisgICAgbV9lZ2wuZGlzcGxheSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0
YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9T
VVJGQUNFX1RZUEUsIEVHTF9XSU5ET1dfQklULAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisg
ICAgICAgIEVHTF9HUkVFTl9TSVpFLCAxLAorICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAg
ICAgICBFR0xfQUxQSEFfU0laRSwgMSwKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdM
X09QRU5HTF9FUzJfQklULAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQg
bnVtQ29uZmlnczsKKyAgICBFR0xCb29sZWFuIHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5k
aXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7
CisgICAgaWYgKCFyZXQgfHwgIW51bUNvbmZpZ3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0
YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9D
T05URVhUX0NMSUVOVF9WRVJTSU9OLCAyLAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAg
ICBtX2VnbC5jb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5j
b25maWcsIEVHTF9OT19DT05URVhULCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWds
LmNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgh
ZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJG
QUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRl
SW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0
UHJvY0FkZHJlc3MoImVnbENyZWF0ZUltYWdlS0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFn
ZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJv
Y0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRl
eHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUy
RE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VT
IikpOworCisgICAgbV9leHBvcnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFi
bGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3Vw
ZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7Cisg
ICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9p
bnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0
YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tl
bmQucGVyZm9ybVVwZGF0ZSgpOworICAgICAgICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0s
IHRoaXMsIG51bGxwdHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19t
YWluX2NvbnRleHRfZGVmYXVsdCgpKTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRs
ZXNzVmlld0JhY2tlbmQoKQoreworICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19z
b3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJjZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0
ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJ
bWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6Omdl
dDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSht
X2VnbC5kaXNwbGF5LCBpbWFnZSk7CisKKyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkg
eworICAgICAgICBpbnQgZmQgPSBpdC5zZWNvbmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAg
ICAgICAgICAgY2xvc2UoZmQpOworICAgIH0KKworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAg
ICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30K
Kworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQo
KSBjb25zdAoreworICAgIHJldHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9k
bWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9leHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFj
ZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9y
bVVwZGF0ZSgpOworCisgICAgRUdMSW1hZ2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tl
ZEltYWdlLnNlY29uZCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25k
KTsKKyAgICB1aW50MzJfdCBoZWlnaHQgPSBzdGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29u
ZCk7CisKKyAgICB1aW50OF90KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWln
aHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3Vy
cmVudCgpOworCisgICAgR0x1aW50IGltYWdlVGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEs
ICZpbWFnZVRleHR1cmUpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VU
ZXh0dXJlKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9N
SU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJE
LCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJp
KEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAg
ICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NM
QU1QX1RPX0VER0UpOworICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JB
X0VYVCwgd2lkdGgsIGhlaWdodCwgMCwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51
bGxwdHIpOworCisgICAgbV9lZ2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8y
RCwgaW1hZ2UpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBH
THVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VG
cmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdl
RnJhbWVidWZmZXIpOworICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIs
IEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOwor
CisgICAgZ2xGbHVzaCgpOworICAgIGlmIChnbENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJB
TUVCVUZGRVIpID09IEdMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBp
eGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwg
YnVmZmVyKTsKKyAgICAgICAgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAg
ICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFt
ZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwg
JmltYWdlVGV4dHVyZSk7CisKKyAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAg
ICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAg
IGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVh
dGVfZm9yX2RhdGEoYnVmZmVyLAorICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwg
aGVpZ2h0LCBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMy
LCB3aWR0aCkpOworICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOwor
CisgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9f
c3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAor
ICAgICAgICBbXSh2b2lkKiBkYXRhKSB7CisgICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0
aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7CisgICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7Cisg
ICAgICAgIH0pOworCisgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVz
c1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgpCit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50
KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29u
dGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7
CisgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5maXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAg
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9j
b21wbGV0ZShtX2V4cG9ydGFibGUpOworICAgIGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7Cisg
ICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hf
cmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAg
ICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2Vk
SW1hZ2Uuc2Vjb25kKSk7CisgICAgfQorCisgICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0lt
YWdlOworICAgIG1fcGVuZGluZ0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxl
PEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVf
bWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAg
ICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVf
ZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCisgICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0g
KnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRv
IGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+
ZmQgPj0gMCkgeworICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChp
bWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAg
ICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRs
ZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAg
IGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJh
Y2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhw
b3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNz
ZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBo
YW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisg
ICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQoKTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRl
c1tdID0geworICAgICAgICAgICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdl
RGF0YS0+d2lkdGgpLAorICAgICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50
PihpbWFnZURhdGEtPmhlaWdodCksCisgICAgICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19F
WFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAg
RUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwgZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9Q
TEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRD
SF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAg
ICAgRUdMX05PTkUsCisgICAgICAgIH07CisgICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFj
a2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05U
RVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAg
ICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtl
X3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAg
ICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0Jh
Y2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjA1NGY4MzQy
MjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGNhaXJv
Lmg+CisjaW5jbHVkZSA8Z2JtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHVub3Jk
ZXJlZF9tYXA+CisjaW5jbHVkZSA8d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtZG1h
LWJ1Zi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMmV4dC5o
PgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisKK2NsYXNz
IEhlYWRsZXNzVmlld0JhY2tlbmQgeworcHVibGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQo
KTsKKyAgICB+SGVhZGxlc3NWaWV3QmFja2VuZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2Jh
Y2tlbmQqIGJhY2tlbmQoKSBjb25zdDsKKworICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25h
cHNob3QoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBw
ZXJmb3JtVXBkYXRlKCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0
cnVjdCB7CisgICAgICAgIEVHTERpc3BsYXkgZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNv
bmZpZzsKKyAgICAgICAgRUdMQ29udGV4dCBjb250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFU
RUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFnZTsKKyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hS
UFJPQyBkZXN0cm95SW1hZ2U7CisgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRP
RVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJET0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1
Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxl
OworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1h
cDsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQz
Ml90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMy
X3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2Vk
SW1hZ2UgeyB9OworCisgICAgR1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1f
ZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMgLyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTA0Mzk0YmQ0NgotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCAr
MSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisj
aW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2VuZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdl
Q2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRl
IDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisK
K1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYg
Y29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRv
d0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9
IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhW
aWV3QmFja2VuZChtX3dpbmRvdy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxh
dGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7
Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQs
IFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3Ojpw
YWdlKCkKK3sKKyAgICByZXR1cm4gV0tWaWV3R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBs
YXRmb3JtV2ViVmlldzo6Zm9jdXMoKQoreworfQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3
aW5kb3dGcmFtZSgpCit7CisgICAgcmV0dXJuIFdLUmVjdHsgMCwgMCwgMSwgMSB9OworfQorCit2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93RnJhbWUoV0tSZWN0LCBXZWJWaWV3U2l6aW5n
TW9kZSkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmRpZEluaXRpYWxpemVDbGllbnRz
KCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENocm9tZUlucHV0RmllbGQoKQor
eworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpCit7
Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjphZGRUb1dpbmRvdygpCit7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVGcm9tV2luZG93KCkKK3sKK30KKwordm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCit7CisgICAgbV93aW5k
b3dJc0tleSA9IHdpbmRvd0lzS2V5OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6bWFrZVdl
YlZpZXdGaXJzdFJlc3BvbmRlcigpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCogUGxhdGZvcm1X
ZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKK3sKKyAgICB7CisgICAgICAgIHN0cnVjdCBU
aW1lb3V0VGltZXIgeworICAgICAgICAgICAgVGltZW91dFRpbWVyKCkKKyAgICAgICAgICAgICAg
ICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6ZmlyZWQpCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGltZXIuc3RhcnRPbmVTaG90KDEuMCAvIDYw
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmaXJlZCgpIHsgUnVuTG9vcDo6
bWFpbigpLnN0b3AoKTsgfQorICAgICAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVy
PiB0aW1lcjsKKyAgICAgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICAgICAgUnVuTG9vcDo6bWFp
bigpLnJ1bigpOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0g
bV93aW5kb3ctPmNyZWF0ZVNuYXBzaG90KCk7CisgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKK30K
Kwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVkZWQoZmxvYXQp
Cit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFi
bGVkKGJvb2wpCit7Cit9CisKK2Jvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3VwcG9ydHNPcHRp
b25zKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvcmNlV2luZG93RnJhbWVzQ2hhbmdlZCgpCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVz
dENvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4wY2MzZGVkZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNs
dWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKwor
bmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURvbmUoKQorewor
ICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnNl
dEhpZGRlbihib29sKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUluaXRp
YWxpemUoKQoreworfQorCitXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9y
bVByZWZlcmVuY2VzKCkKK3sKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVmZXJlbmNlcyht
X3BhZ2VHcm91cC5nZXQoKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGVz
dHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZUNv
bnRleHQoKQoreworfQorCitzdGF0aWMgR01haW5Db250ZXh0KiB0aHJlYWREZWZhdWx0Q29udGV4
dCgpCit7CisgICAgaWYgKEdNYWluQ29udGV4dCogY29udGV4dCA9IGdfbWFpbl9jb250ZXh0X2dl
dF90aHJlYWRfZGVmYXVsdCgpKQorICAgICAgICByZXR1cm4gY29udGV4dDsKKyAgICByZXR1cm4g
Z19tYWluX2NvbnRleHRfZGVmYXVsdCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCit7CisgICAgc3Ry
dWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICA6
IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6ZmlyZWQpCisgICAg
ICAgIHsgfQorCisgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7
IH0KKyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVyPiB0aW1lcjsKKyAgICB9IHRp
bWVvdXRUaW1lcjsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zZXRQcmlvcml0eShHX1BSSU9S
SVRZX0RFRkFVTFRfSURMRSk7CisgICAgaWYgKHRpbWVvdXQgPj0gMCkKKyAgICAgICAgdGltZW91
dFRpbWVyLnRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKworICAgIFJ1bkxvb3A6Om1haW4o
KS5ydW4oKTsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zdG9wKCk7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZikKK3sKK30KKworc3RhdGljIGNoYXIqIGdldEVudmlyb25tZW50VmFyaWFibGVBc1VU
RjhTdHJpbmcoY29uc3QgY2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZh
bHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiJXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGZvdW5kXG4iLCB2
YXJpYWJsZU5hbWUpOworICAgICAgICBleGl0KDApOworICAgIH0KKyAgICBnc2l6ZSBieXRlc1dy
aXR0ZW47CisgICAgcmV0dXJuIGdfZmlsZW5hbWVfdG9fdXRmOCh2YWx1ZSwgLTEsIDAsICZieXRl
c1dyaXR0ZW4sIDApOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplSW5qZWN0
ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ2V0RW52aXJvbm1l
bnRWYXJpYWJsZUFzVVRGOFN0cmluZygiVEVTVF9SVU5ORVJfSU5KRUNURURfQlVORExFX0ZJTEVO
QU1FIikpOworICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3RyaW5nQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHBhdGguZ2V0KCkpKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6aW5p
dGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVy
OjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKQoreworfQorCitXS0NvbnRleHRSZWYgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRoRm9yVGVzdGlu
ZygpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24mKQoreworfQor
Cit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjp1cGRhdGVQbGF0Zm9ybVNw
ZWNpZmljVGVzdE9wdGlvbnNGb3JUZXN0KFRlc3RPcHRpb25zJiwgY29uc3Qgc3RkOjpzdHJpbmcm
KSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUv
bWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjZjZjJiN2Zm
MzIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5j
cHAKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJUZXN0Q29udHJv
bGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgV1RSOjpU
ZXN0Q29udHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGNvbnN0X2Nhc3Q8Y29uc3QgY2hhcioqPihh
cmd2KSk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1aWxkL2poYnVp
bGQtd3JhcHBlciBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4IGY2YzQwM2Qz
MWIwLi5lM2VlY2RmY2U4NyAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBw
ZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTMxLDYgKzMxLDggQEAg
ZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7CiAgICAgaWYg
Jy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAgIGlmICctLXdw
ZScgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAid3BlIgogICAgIHJhaXNlIFZhbHVlRXJy
b3IoJ05vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVyLicpCiAKIHRyeToK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlm
ZXN0LnB5IGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3Qu
cHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmFiMTk0NzQ0YzU1Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2Ut
bWFuaWZlc3QucHkKQEAgLTAsMCArMSw3NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBl
dmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5z
ZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0
d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQg
Z2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK0NPTVBSRVNTSUJMRV9FWFRFTlNJT05TID0g
WycuaHRtbCcsICcuanMnLCAnLmNzcycsICcuc3ZnJ10KK0JBU0VfRElSID0gJ1dlYkluc3BlY3Rv
clVJLycKKworCitkZWYgZ2V0X2ZpbGVuYW1lcyhhcmdzKToKKyAgICBmaWxlbmFtZXMgPSBbXQor
CisgICAgZm9yIHBhdHRlcm4gaW4gYXJnczoKKyAgICAgICAgcGF0aHMgPSBnbG9iLmdsb2IocGF0
dGVybikKKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBhdGhzOgorICAgICAgICAgICAgYmFzZV9k
aXJfaW5kZXggPSBmaWxlbmFtZS5yZmluZChCQVNFX0RJUikKKyAgICAgICAgICAgIGlmIGJhc2Vf
ZGlyX2luZGV4ICE9IC0xOgorICAgICAgICAgICAgICAgIG5hbWUgPSBmaWxlbmFtZVtiYXNlX2Rp
cl9pbmRleCArIGxlbihCQVNFX0RJUik6XQorICAgICAgICAgICAgICAgICMgVGhlIHJlc3VsdCBz
aG91bGQgdXNlIGZvcndhcmQgc2xhc2hlcywgdGh1cyBtYWtlIHN1cmUgYW55IG9zLXNwZWNpZmlj
CisgICAgICAgICAgICAgICAgIyBzZXBhcmF0b3IsIGFkZGVkIGJ5IHRoZSBnbG9iLmdsb2IoKSBj
YWxsLCBpcyBwcm9wZXJseSByZXBsYWNlZAorICAgICAgICAgICAgICAgIGlmIG9zLnNlcCAhPSAn
Lyc6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uob3Muc2VwLCAnLycp
CisgICAgICAgICAgICAgICAgZmlsZW5hbWVzLmFwcGVuZChuYW1lKQorICAgIHJldHVybiBmaWxl
bmFtZXMKKworCitkZWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICByZXR1cm4gb3Mu
cGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMV0gaW4gQ09NUFJFU1NJQkxFX0VYVEVOU0lPTlMKKwor
CitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3Vt
ZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdHZW5lcmF0ZSBhIEdSZXNvdXJjZXMgZmlsZSBmb3IgdGhl
IGluc3BlY3Rvci4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0JywgbmFyZ3M9
Jz8nLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3JyksIGRlZmF1bHQ9c3lzLnN0ZG91dCwKKyAg
ICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBvdXRwdXQgZmlsZScpCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgnZmlsZW5hbWVzJywgbWV0YXZhcj0nRklMRVMnLCBuYXJncz0nKycsCisg
ICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSd0aGUgbGlzdCBvZiBmaWxlcyB0byBpbmNsdWRl
JykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhzeXMuYXJndlsxOl0pCisKKyAgICBh
cmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiPD94bWwgdmVyc2lvbj0xLjAgZW5jb2Rpbmc9VVRG
LTg/PgorICAgIDxncmVzb3VyY2VzPgorICAgICAgICA8Z3Jlc291cmNlIHByZWZpeD0iL29yZy93
cGUvaW5zcGVjdG9yIj4KKyIiIikKKworICAgIGZvciBmaWxlbmFtZSBpbiBnZXRfZmlsZW5hbWVz
KGFyZ3MuZmlsZW5hbWVzKToKKyAgICAgICAgbGluZSA9ICcgICAgICAgICAgICA8ZmlsZScKKyAg
ICAgICAgaWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICAgICAgICAgIGxpbmUgKz0g
JyBjb21wcmVzc2VkPSJ0cnVlIicKKyAgICAgICAgaWYgJ0ltYWdlcy9ndGsvJyBpbiBmaWxlbmFt
ZToKKyAgICAgICAgICAgIGxpbmUgKz0gJyBhbGlhcz0iJXMiJyAlIGZpbGVuYW1lLnJlcGxhY2Uo
J2d0ay8nLCAnJykKKyAgICAgICAgbGluZSArPSAnPiVzPC9maWxlPlxuJyAlIGZpbGVuYW1lCisK
KyAgICAgICAgYXJncy5vdXRwdXQud3JpdGUobGluZSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRl
KFwKKyAgICAiIiIgICAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CisiIiIpCisKZGlmZiAt
LWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy93cGUvamhidWlsZC5tb2R1
bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZWQ3NTYyNjRhMgot
LS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAgLTAsMCArMSwy
NDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIG1vZHVsZXNldCBTWVNURU0g
Im1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hzbCIgaHJlZj0i
bW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8bWV0YW1vZHVsZSBpZD0id2Via2l0
d3BlLXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnNvdXAiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udHMiLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZGljdHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNvbmZp
ZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29tbW9uIi8+CisgICAgICA8
ZGVwIHBhY2thZ2U9IndheWxhbmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0cmVhbWVyIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ3N0LXBsdWdpbnMtZ29vZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lu
cy1iYWQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LWxpYmF2Ii8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9IndwZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUtbWVzYSIvPgorICAgIDwvZGVw
ZW5kZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFs
bCIgbmFtZT0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgaHJlZj0iaHR0cDovL21pcnJv
cnMua2VybmVsLm9yZy9zb3VyY2VzLnJlZGhhdC5jb20vIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9
InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZnRwLmdu
b21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJjYWlyb2dyYXBo
aWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIvPgorICA8cmVw
b3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCisgICAgICBocmVm
PSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJi
YWxsIiBuYW1lPSJ3YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93
YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJnaXQiIG5hbWU9
ImdpdGh1Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRodWIuY29tIi8+CisgIDxyZXBvc2l0
b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImdzdHJlYW1lciIKKyAgICAgIGhyZWY9Imh0dHA6Ly9n
c3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFy
YmFsbCIgbmFtZT0ieGtiY29tbW9uLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly94a2Jjb21tb24u
b3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9InNhdmFubmFoLmdudS5v
cmciCisgICAgICBocmVmPSJodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9yZy9yZWxlYXNl
cy8iLz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJmZmkiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+
CisgICAgPGJyYW5jaCBtb2R1bGU9ImxpYmZmaS9saWJmZmktMy4wLjEwLnRhci5neiIgdmVyc2lv
bj0iMy4wLjEwIgorICAgICAgICAgICAgIHJlcG89InNvdXJjZXdhcmUub3JnLW1pcnJvciIKKyAg
ICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjAxZWI5MDI3ZTllYjU2YWVhZWVmNjM2NjQ5ODc3NzU2
ZDQ3NWQ3MTRlZjhiNDdmNjI3ZjY1YmM1ZjNiNDkyZiIvPgorICA8L2F1dG90b29scz4KKworICA8
YXV0b3Rvb2xzIGlkPSJnbGliIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIK
KyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWR0cmFjZSI+CisgICAgPGRlcGVu
ZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGliZmZpIi8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGliLzIuNDQvZ2xp
Yi0yLjQ0LjEudGFyLnh6IiB2ZXJzaW9uPSIyLjQ0LjEiCisgICAgICAgICAgICByZXBvPSJmdHAu
Z25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojg4MTFkZWFjYWY4YTUwM2QwYTli
NzAxNzc3ZWEwNzljYTZhNDI3N2JlMTBlM2Q3MzBkMjExMjczNWQ1ZWNhMDciPgorICAgICAgPHBh
dGNoIGZpbGU9ImdsaWItd2FybmluZy1maXgucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgICA8cGF0
Y2ggZmlsZT0iZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0
Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImdsaWItbmV0d29ya2luZyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi1uZXR3b3JraW5nLzIuNDIvZ2xpYi1uZXR3b3Jr
aW5nLTIuNDIuMC50YXIueHoiIHZlcnNpb249IjIuNDIuMCIKKyAgICAgICAgICAgIHJlcG89ImZ0
cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MzA0ZGQ5ZTRjMGNlZDY5MDk0
MzAwZTBiOWU2NmNkMmVhYWU3MTYxYjlmYzMxODY1MzZkMTE0NTg2NzdkODIwZCIvPgorICA8L2F1
dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJzb3VwIgorICAgICAgICAgICAgIGF1dG9n
ZW5hcmdzPSItLXdpdGhvdXQtZ25vbWUgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxk
ZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2luZyIvPgorICAg
IDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMv
bGlic291cC8yLjQ4L2xpYnNvdXAtMi40OC4wLnRhci54eiIgdmVyc2lvbj0iMi40OC4wIgorICAg
ICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njpl
YTM0ZGQ2NGZlNDQzNDM0NDVkYWY2ZGQ2OTBkMDY5MWU5ZDk3MzQ2OGRlNDQ4NzhkYTk3MzcxYzE2
ZDg5Nzg0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRzIiBzdXBw
b3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAgc2tpcC1hdXRvZ2VuPSJ0
cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0ibXJvYmluc29uL3dl
YmtpdGd0ay10ZXN0LWZvbnRzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtpdGd0ay10ZXN0LWZvbnRz
IiB0YWc9IjAuMC41Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImRpY3Rz
IiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAgc2tpcC1hdXRv
Z2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0ibXJvYmlu
c29uL3dlYmtpdGd0ay10ZXN0LWRpY3RzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtpdGd0ay10ZXN0
LWRpY3RzIiB0YWc9IjAuMC4xIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImZyZWV0eXBlNiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
ZnJlZXR5cGUvZnJlZXR5cGUtMi40LjExLnRhci5iejIiIHZlcnNpb249IjIuNC4xMSIKKyAgICAg
ICAgICAgIHJlcG89InNhdmFubmFoLmdudS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
ZWY5ZDBiY2I2NDY0N2Q5ZTUxMjVkYzc1MzRkN2NhMzcxYzk4MzEwZmVjODc2NzdjNDEwZjM5N2Y3
MWZmYmUzZiIKKyAgICAgICAgICAgIG1kNXN1bT0iYjkzNDM1NDg4OTQyNDg2YzhkMGNhMjJlOGY3
NjgwMzQiPgorICAgICAgPHBhdGNoIGZpbGU9ImZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9u
dC1oZWlnaHQtZml4LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90
b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250Y29uZmlnIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBlNiIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0d2FyZS9mb250
Y29uZmlnL3JlbGVhc2UvZm9udGNvbmZpZy0yLjExLjEudGFyLmd6IiB2ZXJzaW9uPSIyLjExLjEi
CisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGEyNTY6YjZiMDY2YzdkY2UzZjQzNmZkYzBkZmJhZTlkMzYxMjJiMzgwOTRmNGY1M2JkOGRmZmQ0
NWUxOTViMDU0MGQ4ZCIKKyAgICAgICAgICAgIG1kNXN1bT0iZTc1ZTMwM2I0Zjc3NTZjMmIxNjIw
M2E1N2FjODdlYmEiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rv
b2xzIGlkPSJoYXJmYnV6eiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICBhdXRvZ2Vu
YXJncz0iLS13aXRoLWNhaXJvPW5vIC0td2l0aC1nbGliPW5vIC0td2l0aC1mcmVldHlwZT15ZXMi
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBlNiIvPgor
ICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0d2FyZS9oYXJmYnV6
ei9yZWxlYXNlL2hhcmZidXp6LTEuMy4zLnRhci5iejIiCisgICAgICAgICAgICB2ZXJzaW9uPSIx
LjMuMyIKKyAgICAgICAgICAgIGNoZWNrb3V0ZGlyPSJoYXJmYnV6ei0xLjMuMyIKKyAgICAgICAg
ICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoyNjIw
OTg3MTE1YTQxMjJiNDczMjE2MTBkY2NiY2MxOGY3ZjEyMTExNWZkN2I4OGRjOGE2OTVjOGI2NmNi
M2M5IgorICAgICAgICAgICAgbWQ1c3VtPSI5N2FlMTVhNzJhOTNmMWYyNzMyNGEyYjhkOWJkM2Ix
ZCI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9InBp
eG1hbiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAgICAgICAgICAg
YXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVh
c2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IiB2ZXJzaW9uPSIwLjMyLjYiCisgICAgICAgICAgICBy
ZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjozZGZlZDEz
YjgwNjBlYWRhYmYwYTQ5NDVjNzA0NWI3NzkzY2M3ZTNlOTEwZTc0OGE4YmIwZjBkYzNlNzk0OTA0
Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImNhaXJvIiBhdXRvZ2VuYXJn
cz0iLS1lbmFibGUtZWdsPXllcyAtLWVuYWJsZS1nbGVzdjIiPgorICAgIDxkZXBlbmRlbmNpZXM+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9udGNv
bmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJwaXhtYW4iLz4KKyAgICA8L2RlcGVuZGVuY2ll
cz4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvY2Fpcm8tMS4xNC44LnRhci54eiIgdmVy
c2lvbj0iMS4xNC44IgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5vcmciCisgICAg
ICAgICAgICBoYXNoPSJzaGExOmM2ZjdiOTk5ODZmOTNjOWRmNzg2NTNjM2U2YTNiNTA0M2Y2NTE0
NWUiPgorICAgICAgPHBhdGNoIGZpbGU9ImNhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wt
c3VyZmFjZS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0ieGtiY29tbW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZG93
bmxvYWQvbGlieGtiY29tbW9uLTAuNS4wLnRhci54eiIgdmVyc2lvbj0iMC41LjAiCisgICAgICAg
ICAgICByZXBvPSJ4a2Jjb21tb24ub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMTo3MTI3OTkz
YmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZhIi8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9IndheWxhbmQiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZG9jdW1lbnRh
dGlvbiI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL3dheWxhbmQtMS45LjAudGFyLnh6
IiB2ZXJzaW9uPSIxLjkuMCIKKyAgICAgICAgICAgIHJlcG89IndheWxhbmQuZnJlZWRlc2t0b3Au
b3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjljODc3MDcyMGFhMDAzNDQ3OTczNWY1OGE0
ZGM0Y2E5YjE3MmVjZmVkZTI4ZjUxMzQzMTJlMTM1YjczMDFlZmEiLz4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2Mi
IGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9Im9yYy9vcmMtMC40
LjE3LnRhci5neiIgdmVyc2lvbj0iMC40LjE3IgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRmYzdjY2E0OGM1OWZmZjIzYWZlZTc4ZmI2NDJj
ZGJkZTAwMWY1NjQwMWM4ZjQ3Yjk1YTE2NTc4ZDFkNWQ3ZTgiCisgICAgICAgICAgICBtZDVzdW09
ImFmMWJmM2RhYjllNjlmM2MzNmYzODkyODVlMmExMmExIi8+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2Vu
YXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9Im9yYyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxl
PSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIK
KyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1Njo1
YTM3MjJmYjkzMDJkZDk3N2MxN2NlZDQyNDAyOTNkYzc3N2NiNzE2ZGM5OGM4Y2NhNjNkNzVjMjdl
NWUzMTA3IgorICAgICAgICAgICAgbWQ1c3VtPSI3MTFhZGE3OWI2M2U0N2FjOTZhZGI0ZTU0NDRk
YzkwOCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1h
LUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwv
YnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1i
YXNlIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBh
dXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICA8L2Rl
cGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFzZS9nc3QtcGx1
Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAg
IHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoxNWE5ZGU5ODVjZDI2
NWMzNDRlMzU5ZjViMTkzNDdkZjQwMjFiNzYxMWVkMmMyZDkxOTE3Y2I5MDBmMmZhZDZmIgorICAg
ICAgICAgICAgbWQ1c3VtPSI1NDIxZWRmZWI3NDc5ZDVmNTc3NmU5MTdiYTMwZTI0ZSIvPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1nb29kIiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxl
LXNvdXAgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVw
IHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKworICAg
IDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdvb2QtJHt2ZXJz
aW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjIxMDNlMTc5MjFkNjc4OTRlODJlYWZkZDY0ZmI5
YjA2NTE4NTk5OTUyZmQ5M2U2MjViZmJjODNmZmVhZDA5NzIiCisgICAgICAgICAgICBtZDVzdW09
IjNlYWJlNzI3NzY4MWI5YmVmOGE2NGMzMTJkZTAzZDQ3Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJn
c3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCIgc3RyaXA9IjEi
Lz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4
cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2giIHN0cmlwPSIxIi8+Cisg
ICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVn
aW5zLWJhZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4
YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9uIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWJhZC9n
c3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAg
ICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjBiYmQ1OGYz
NjM3MzRmYzBjNGE2MjBiMmQ2ZmIwMWQ0MjdmZGFmZGJkYTdiOTBiNGUxNWQwM2I3NTFjYTQwZjUi
CisgICAgICAgICAgICBtZDVzdW09ImU1MDhkYTJhOGE1YzNkMTIyNjRmZTM0MTViZTJmNDUxIj4K
KyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBvcnQtdG8tT3Bl
blNTTC0xLjEuMC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1
Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9n
ZW5lcmF0ZV9rLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29s
cz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIg
YXV0b2dlbmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25maWd1cmU9Jy0tZGlzYWJsZS15YXNt
JyAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFu
Y2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1Njo0NGE0OTEwOGMzNTMxYjVhYzRmMzQ2YTIyNDdjZDdmYmFmYjBlOGFiMzk0Mzk0Y2I2
ZDc1YTcwMzAwYjM4OTMzIgorICAgICAgICAgICAgbWQ1c3VtPSI4NWYxYTA0NzYwNmNhOWUwODQ5
M2Q3YjZiNDJkZjQ2MiIvPgorICA8L2F1dG90b29scz4KKworICA8Y21ha2UgaWQ9IndwZSI+Cisg
ICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3JtRm9yRW1iZWRk
ZWQvV1BFQmFja2VuZC5naXQiCisgICAgICAgICAgICB0YWc9IjVlMmEyOWQyY2NjNjM3ZjcxMjJi
YTcyYzFkNjJlZjY2OWI0MmYwNWMiIC8+CisgIDwvY21ha2U+CisKKyAgPGNtYWtlIGlkPSJ3cGUt
bWVzYSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIiAvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3YXlsYW5k
IiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iIC8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3JtRm9y
RW1iZWRkZWQvV1BFQmFja2VuZC1tZXNhLmdpdCIKKyAgICAgICAgICAgIHRhZz0iOTk0NTc1M2Y5
MzM3ZmQ2N2FmMDk4MjE4Yjc4MTkzMzdhYmEyMTE0MSIgLz4KKyAgPC9jbWFrZT4KKzwvbW9kdWxl
c2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGRyYyBiL1Rvb2xzL3dwZS9qaGJ1aWxk
cmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyZmE4OGQ3MmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpAQCAtMCwwICsxLDI1IEBACisj
IS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisj
CisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp
dCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWls
cy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBu
b3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZy
YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQor
CitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworc3lzLnBhdGguaW5zZXJ0KDAsIG9zLnBhdGguam9p
bihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4vamhidWlsZCIpICkKK2ltcG9ydCBqaGJ1
aWxkcmNfY29tbW9uCitqaGJ1aWxkcmNfY29tbW9uLmluaXQoZ2xvYmFscygpLCAid3BlIikKKyMg
RW5hYmxlIGJ1aWxkZGlyICE9IHNyY2RpciBidWlsZHMuCitidWlsZHJvb3QgPSBvcy5wYXRoLmpv
aW4ob3MucGF0aC5kaXJuYW1lKGNoZWNrb3V0cm9vdCksICJCdWlsZCIpCmRpZmYgLS1naXQgYS9U
b29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2Uu
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWds
LXN1cmZhY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ0
NmRmNDViNmYzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvY2Fpcm8tZWds
LWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoCkBAIC0wLDAgKzEsMTMzIEBACitG
cm9tIGE0ZTBkYWYxOGJmODI1MjQ2M2Y2NmQ3NWVlZjQ5OWNmZmZhMzI1NjUgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBaYW4gRG9iZXJzZWsgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgor
RGF0ZTogTW9uLCAxNyBOb3YgMjAxNCAwMToyMzoxNSAtMDgwMAorU3ViamVjdDogW1BBVENIXSBB
ZGQgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9yX2VnbF9zdXJmYWNlKCkuCisKKy0tLQorIHNy
Yy9jYWlyby1lZ2wtY29udGV4dC5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0tLQorIHNyYy9jYWlyby1nbC5oICAgICAgICAgIHwgIDMgKysrCisg
MiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZm
IC0tZ2l0IGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQu
YworaW5kZXggYmY3MDRjNi4uYmUyYmNmOSAxMDA2NDQKKy0tLSBhL3NyYy9jYWlyby1lZ2wtY29u
dGV4dC5jCisrKysgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYworQEAgLTQ4LDcgKzQ4LDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2VnbF9jb250ZXh0IHsKKyAgICAgRUdMRGlzcGxheSBkaXNw
bGF5OworICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisgCistICAgIEVHTFN1cmZhY2UgZHVtbXlf
c3VyZmFjZTsKKysgICAgRUdMU3VyZmFjZSBzdXJmYWNlOworKyAgICBjYWlyb19ib29sX3QgaXNf
ZHVtbXlfc3VyZmFjZTsKKyAKKyAgICAgRUdMQ29udGV4dCBwcmV2aW91c19jb250ZXh0OworICAg
ICBFR0xTdXJmYWNlIHByZXZpb3VzX3N1cmZhY2U7CitAQCAtNzQsNyArNzUsNyBAQCBfZWdsX2dl
dF9jdXJyZW50X3N1cmZhY2UgKGNhaXJvX2VnbF9jb250ZXh0X3QgKmN0eCkKKyB7CisgICAgIGlm
IChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQgPT0gTlVMTCB8fAorICAgICAgICAgX2NhaXJvX2ds
X3N1cmZhY2VfaXNfdGV4dHVyZSAoY3R4LT5iYXNlLmN1cnJlbnRfdGFyZ2V0KSkgeworLQlyZXR1
cm4gIGN0eC0+ZHVtbXlfc3VyZmFjZTsKKysJcmV0dXJuICBjdHgtPnN1cmZhY2U7CisgICAgIH0K
KyAKKyAgICAgcmV0dXJuICgoY2Fpcm9fZWdsX3N1cmZhY2VfdCAqKSBjdHgtPmJhc2UuY3VycmVu
dF90YXJnZXQpLT5lZ2w7CitAQCAtMTUxLDggKzE1Miw4IEBAIF9lZ2xfZGVzdHJveSAodm9pZCAq
YWJzdHJhY3RfY3R4KQorIAorICAgICBlZ2xNYWtlQ3VycmVudCAoY3R4LT5kaXNwbGF5LAorIAkJ
ICAgIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRFWFQpOworLSAg
ICBpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorLSAgICAgICAgZWds
RGVzdHJveVN1cmZhY2UgKGN0eC0+ZGlzcGxheSwgY3R4LT5kdW1teV9zdXJmYWNlKTsKKysgICAg
aWYgKGN0eC0+aXNfZHVtbXlfc3VyZmFjZSAmJiBjdHgtPnN1cmZhY2UgIT0gRUdMX05PX1NVUkZB
Q0UpCisrICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBjdHgtPnN1cmZh
Y2UpOworIH0KKyAKKyBzdGF0aWMgY2Fpcm9fYm9vbF90CitAQCAtMjE4LDEzICsyMTksMTQgQEAg
Y2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCkK
KyAJZWdsUXVlcnlDb250ZXh0IChkcHksIGVnbCwgRUdMX0NPTkZJR19JRCwgJmNvbmZpZ19hdHRy
aWJzWzFdKTsKKyAJZWdsQ2hvb3NlQ29uZmlnIChkcHksIGNvbmZpZ19hdHRyaWJzLCAmY29uZmln
LCAxLCAmbnVtQ29uZmlncyk7CisgCistCWN0eC0+ZHVtbXlfc3VyZmFjZSA9IGVnbENyZWF0ZVBi
dWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CistCWlmIChjdHgtPmR1bW15X3N1
cmZhY2UgPT0gTlVMTCkgeworKwljdHgtPmlzX2R1bW15X3N1cmZhY2UgPSBUUlVFOworKwljdHgt
PnN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZSAoZHB5LCBjb25maWcsIGF0dHJpYnMp
OworKwlpZiAoY3R4LT5zdXJmYWNlID09IE5VTEwpIHsKKyAJICAgIGZyZWUgKGN0eCk7CisgCSAg
ICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNf
Tk9fTUVNT1JZKTsKKyAJfQorIAorLQlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIGN0eC0+ZHVt
bXlfc3VyZmFjZSwgY3R4LT5kdW1teV9zdXJmYWNlLCBlZ2wpKSB7CisrCWlmICghZWdsTWFrZUN1
cnJlbnQgKGRweSwgY3R4LT5zdXJmYWNlLCBjdHgtPnN1cmZhY2UsIGVnbCkpIHsKKyAJICAgIGZy
ZWUgKGN0eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9y
IChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorQEAgLTIzOCw4ICsyNDAsNTQgQEAgY2Fp
cm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCkKKyAK
KyAgICAgc3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7CisgICAg
IGlmICh1bmxpa2VseSAoc3RhdHVzKSkgeworLQlpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVH
TF9OT19TVVJGQUNFKQorLQkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5kdW1teV9z
dXJmYWNlKTsKKysJaWYgKGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysJICAgIGVn
bERlc3Ryb3lTdXJmYWNlIChkcHksIGN0eC0+c3VyZmFjZSk7CisrCWZyZWUgKGN0eCk7CisrCXJl
dHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAgIH0K
KysKKysgICAgZWdsTWFrZUN1cnJlbnQgKGRweSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJG
QUNFLCBFR0xfTk9fQ09OVEVYVCk7CisrCisrICAgIHJldHVybiAmY3R4LT5iYXNlLmJhc2U7Cisr
fQorKworK2NhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWds
X3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3VyZmFjZSBzdXJm
YWNlKQorK3sKKysgICAgY2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4OworKyAgICBjYWlyb19zdGF0
dXNfdCBzdGF0dXM7CisrCisrICAgIGN0eCA9IGNhbGxvYyAoMSwgc2l6ZW9mIChjYWlyb19lZ2xf
Y29udGV4dF90KSk7CisrICAgIGlmICh1bmxpa2VseSAoY3R4ID09IE5VTEwpKQorKwlyZXR1cm4g
X2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZ
KTsKKysKKysgICAgY3R4LT5kaXNwbGF5ID0gZHB5OworKyAgICBjdHgtPmNvbnRleHQgPSBlZ2w7
CisrICAgIGN0eC0+c3VyZmFjZSA9IHN1cmZhY2U7CisrCisrICAgIGN0eC0+YmFzZS5hY3F1aXJl
ID0gX2VnbF9hY3F1aXJlOworKyAgICBjdHgtPmJhc2UucmVsZWFzZSA9IF9lZ2xfcmVsZWFzZTsK
KysgICAgY3R4LT5iYXNlLm1ha2VfY3VycmVudCA9IF9lZ2xfbWFrZV9jdXJyZW50OworKyAgICBj
dHgtPmJhc2Uuc3dhcF9idWZmZXJzID0gX2VnbF9zd2FwX2J1ZmZlcnM7CisrICAgIGN0eC0+YmFz
ZS5kZXN0cm95ID0gX2VnbF9kZXN0cm95OworKworKyAgICAvKiBXZSBhcmUgYWJvdXQgdGhlIGNo
YW5nZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBFR0wsIHNvIHdlIHNob3VsZAorKyAgICAgKiBxdWVy
eSB0aGUgcHJlLWV4aXN0aW5nIHN1cmZhY2Ugbm93IGluc3RlYWQgb2YgbGF0ZXIuICovCisrICAg
IF9lZ2xfcXVlcnlfY3VycmVudF9zdGF0ZSAoY3R4KTsKKysKKysJaWYgKCFlZ2xNYWtlQ3VycmVu
dCAoZHB5LCBzdXJmYWNlLCBzdXJmYWNlLCBlZ2wpKSB7CisrCSAgICBmcmVlIChjdHgpOworKwkg
ICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoQ0FJUk9fU1RBVFVT
X05PX01FTU9SWSk7CisrCX0KKysKKysgICAgc3RhdHVzID0gX2NhaXJvX2dsX2Rpc3BhdGNoX2lu
aXQgKCZjdHgtPmJhc2UuZGlzcGF0Y2gsIGVnbEdldFByb2NBZGRyZXNzKTsKKysgICAgaWYgKHVu
bGlrZWx5IChzdGF0dXMpKSB7CisrCWZyZWUgKGN0eCk7CisrCXJldHVybiBfY2Fpcm9fZ2xfY29u
dGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAgIH0KKysKKysgICAgc3RhdHVzID0g
X2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7CisrICAgIGlmICh1bmxpa2VseSAo
c3RhdHVzKSkgeworIAlmcmVlIChjdHgpOworIAlyZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3Jl
YXRlX2luX2Vycm9yIChzdGF0dXMpOworICAgICB9CitkaWZmIC0tZ2l0IGEvc3JjL2NhaXJvLWds
LmggYi9zcmMvY2Fpcm8tZ2wuaAoraW5kZXggOWZkNzYwOC4uYTk0ZjU4MSAxMDA2NDQKKy0tLSBh
L3NyYy9jYWlyby1nbC5oCisrKysgYi9zcmMvY2Fpcm8tZ2wuaAorQEAgLTEzMiw2ICsxMzIsOSBA
QCBjYWlyb19nbF9zdXJmYWNlX2NyZWF0ZV9mb3JfZGMgKGNhaXJvX2RldmljZV90CQkqZGV2aWNl
LAorIGNhaXJvX3B1YmxpYyBjYWlyb19kZXZpY2VfdCAqCisgY2Fpcm9fZWdsX2RldmljZV9jcmVh
dGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCk7CisgCisrY2Fpcm9fcHVibGljIGNh
aXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2Ug
KEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3VyZmFjZSBzdXJmYWNlKTsKKysK
KyBjYWlyb19wdWJsaWMgY2Fpcm9fc3VyZmFjZV90ICoKKyBjYWlyb19nbF9zdXJmYWNlX2NyZWF0
ZV9mb3JfZWdsIChjYWlyb19kZXZpY2VfdAkqZGV2aWNlLAorIAkJCQkgRUdMU3VyZmFjZQkgZWds
LApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVz
LWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFs
LWFuZC1pZGVudGlmaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iNGUwYTU0MWRiYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2Zv
bnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1hbmQtaWRlbnRp
Zmllci5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIDcwNjlkNzE3ZTk4MmFkY2Y4ZTFkMzAw
Y2JkMTBlZWM2MzIyYTY1YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBBa2lyYSBU
QUdPSCA8YWtpcmFAdGFnb2gub3JnPgorRGF0ZTogU3VuLCAyMiBBcHIgMjAxMiAyMTo0MDo0NCAr
MDkwMAorU3ViamVjdDogW1BBVENIXSBDKysxMSByZXF1aXJlcyBhIHNwYWNlIGJldHdlZW4gbGl0
ZXJhbCBhbmQgaWRlbnRpZmllcgorCitSZXBvcnRlZCBieSBCdWdhbmluaQorLS0tCisgZm9udGNv
bmZpZy9mb250Y29uZmlnLmggfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv
bnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9mb250Y29uZmlnL2ZvbnRjb25m
aWcuaCBiL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCitpbmRleCAwZTJjYTUwLi5iMjdjY2I1IDEw
MDY0NAorLS0tIGEvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKKysrKyBiL2ZvbnRjb25maWcvZm9u
dGNvbmZpZy5oCitAQCAtMTEyLDkgKzExMiw5IEBAIHR5cGVkZWYgaW50CQlGY0Jvb2w7CisgI2Rl
ZmluZSBGQ19ERUNPUkFUSVZFCSAgICAiZGVjb3JhdGl2ZSIJLyogQm9vbCAtIHRydWUgaWYgc3R5
bGUgaXMgYSBkZWNvcmF0aXZlIHZhcmlhbnQgKi8KKyAjZGVmaW5lIEZDX0xDRF9GSUxURVIJICAg
ICJsY2RmaWx0ZXIiCQkvKiBJbnQgKi8KKyAKKy0jZGVmaW5lIEZDX0NBQ0hFX1NVRkZJWAkJICAg
ICIuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX0RJUl9DQUNIRV9GSUxFCSAg
ICAiZm9udHMuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX1VTRVJfQ0FDSEVf
RklMRQkgICAgIi5mb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfQ0FD
SEVfU1VGRklYCQkgICAgIi5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX0RJ
Ul9DQUNIRV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9OCisrI2RlZmlu
ZSBGQ19VU0VSX0NBQ0hFX0ZJTEUJICAgICIuZm9udHMuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9O
CisgCisgLyogQWRqdXN0IG91dGxpbmUgcmFzdGVyaXplciAqLworICNkZWZpbmUgRkNfQ0hBUl9X
SURUSAkgICAgImNoYXJ3aWR0aCIJLyogSW50ICovCistLSAKKzEuOC4zLjIKKwpkaWZmIC0tZ2l0
IGEvVG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdo
dC1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBl
LWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMGZmZTc2YjRlZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9m
cmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApAQCAtMCwwICsx
LDM5IEBACitGcm9tIGUwNDY5MzcyYmUzODcwYTVhZDYwYjJjNDU4NmU5YzI4MTM1N2JkMjggTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBXZXJuZXIgTGVtYmVyZyA8d2xAZ251Lm9yZz4K
K0RhdGU6IFR1ZSwgMjIgSmFuIDIwMTMgMTA6MDc6MDcgKzAwMDAKK1N1YmplY3Q6IFt0cnVldHlw
ZV0gRml4IGZvbnQgaGVpZ2h0LgorCisqIHNyYy90cnVldHlwZS90dG9ianMuYyAodHRfc2l6ZV9y
ZXNldCk6IFRoZSBXaW5kb3dzIHJlbmRlcmluZworZW5naW5lIHVzZXMgcm91bmRlZCB2YWx1ZXMg
b2YgdGhlIGFzY2VuZGVyIGFuZCBkZXNjZW5kZXIgdG8gY29tcHV0ZQordGhlIFRydWVUeXBlIGZv
bnQgaGVpZ2h0LgorLS0tCitkaWZmIC0tZ2l0IGEvc3JjL3RydWV0eXBlL3R0b2Jqcy5jIGIvc3Jj
L3RydWV0eXBlL3R0b2Jqcy5jCitpbmRleCBjNjFiMjE4Li41OTBiNjZjIDEwMDY0NAorLS0tIGEv
c3JjL3RydWV0eXBlL3R0b2Jqcy5jCisrKysgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK0BAIC00
LDcgKzQsNyBAQAorIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogICAgT2JqZWN0cyBtYW5hZ2Vy
IChib2R5KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
KyAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworLS8qICBDb3B5cmlnaHQgMTk5Ni0yMDEyICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisrLyogIENvcHly
aWdodCAxOTk2LTIwMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KKyAvKiAgRGF2aWQgVHVybmVyLCBSb2JlcnQgV2lsaGVsbSwgYW5kIFdlcm5l
ciBMZW1iZXJnLiAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICov
CisgLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0LCBhbmQgbWF5
IG9ubHkgYmUgdXNlZCwgICAgICAgKi8KK0BAIC0xMTc3LDExICsxMTc3LDEyIEBACisgICAgICAg
ICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5hc2NlbmRlciwgbWV0cmljcy0+
eV9zY2FsZSApICk7CisgICAgICAgbWV0cmljcy0+ZGVzY2VuZGVyID0KKyAgICAgICAgIEZUX1BJ
WF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmRlc2NlbmRlciwgbWV0cmljcy0+eV9zY2Fs
ZSApICk7CistICAgICAgbWV0cmljcy0+aGVpZ2h0ID0KKy0gICAgICAgIEZUX1BJWF9ST1VORCgg
RlRfTXVsRml4KCBmYWNlLT5yb290LmhlaWdodCwgbWV0cmljcy0+eV9zY2FsZSApICk7CisgICAg
ICAgbWV0cmljcy0+bWF4X2FkdmFuY2UgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxG
aXgoIGZhY2UtPnJvb3QubWF4X2FkdmFuY2Vfd2lkdGgsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbWV0cmljcy0+eF9zY2FsZSApICk7CisrCisrICAgICAgLyogdGhlIGhlaWdo
dCBpcyBkZXJpdmVkIGZyb20gcm91bmRlZCB2YWx1ZXMgKi8KKysgICAgICBtZXRyaWNzLT5oZWln
aHQgPSBtZXRyaWNzLT5hc2NlbmRlciAtIG1ldHJpY3MtPmRlc2NlbmRlcjsKKyAgICAgfQorIAor
ICAgICAvKiBjb21wdXRlIG5ldyB0cmFuc2Zvcm1hdGlvbiAqLworLS0KK2NnaXQgdjAuOS4wLjIK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0cmluZy1mb3Jt
YXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJl
c3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwY2I5NTFhMTljCi0tLSAvZGV2L251bGwKKysrIGIvVG9v
bHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5p
bmcucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAzYTdlZmQ1OThkMzkzNjZjMmM5ZGUwZGVm
MmZkZmIzNWU1ZTlmMmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogY295cHUgPGNv
eXB1QHNkZi5vcmc+CitEYXRlOiBNb24sIDggRmViIDIwMTYgMDA6MDY6MDYgKzAyMDAKK1N1Ympl
Y3Q6IFtQQVRDSCAxLzFdIGdkYXRlOiBTdXBwcmVzcyBzdHJpbmcgZm9ybWF0IGxpdGVyYWwgd2Fy
bmluZworCitOZXdlciB2ZXJzaW9ucyBvZiBHQ0MgZW1pdCBhbiBlcnJvciBoZXJlLCBidXQgd2Ug
a25vdyBpdCdzIHNhZmUuCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy83NjE1NTAKKy0tLQor
IGdsaWIvZ2RhdGUuYyB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKQor
CitkaWZmIC0tZ2l0IGEvZ2xpYi9nZGF0ZS5jIGIvZ2xpYi9nZGF0ZS5jCitpbmRleCA0YWVjZTAy
Li5jZGM3MzVjIDEwMDY0NAorLS0tIGEvZ2xpYi9nZGF0ZS5jCisrKysgYi9nbGliL2dkYXRlLmMK
K0BAIC0yNDk0LDcgKzI0OTQsMTAgQEAgZ19kYXRlX3N0cmZ0aW1lIChnY2hhciAgICAgICAqcywK
KyAgICAgICAgKiByZWNvZ25pemUgd2hldGhlciBzdHJmdGltZSBhY3R1YWxseSBmYWlsZWQgb3Ig
anVzdCByZXR1cm5lZCAiIi4KKyAgICAgICAgKi8KKyAgICAgICB0bXBidWZbMF0gPSAnXDEnOwor
KyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyAgICAgICNwcmFnbWEgR0NDIGRp
YWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKKyAgICAgICB0bXBsZW4gPSBz
dHJmdGltZSAodG1wYnVmLCB0bXBidWZzaXplLCBsb2NhbGVfZm9ybWF0LCAmdG0pOworKyAgICAg
ICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgCisgICAgICAgaWYgKHRtcGxlbiA9PSAwICYm
IHRtcGJ1ZlswXSAhPSAnXDAnKQorICAgICAgICAgeworLS0gCisyLjcuMAorCmRpZmYgLS1naXQg
YS9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoIGIvVG9vbHMvd3BlL3Bh
dGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uOGZhZjRkMTFmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0
Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zyb20gOWY5MGVl
NWVlY2NkNDdmMzljN2EwM2RjZDc4NmIxMjVhMTljMTk1ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9yZz4KK0RhdGU6
IFNhdCwgMTMgSnVuIDIwMTUgMjI6NTI6MzMgLTA1MDAKK1N1YmplY3Q6IFtQQVRDSF0gZ2VubWFy
c2hhbDogc2lsZW5jZSByZWdpc3RlciBzdG9yYWdlIGNsYXNzIHdhcm5pbmdzCisKK1VzaW5nIHRo
ZSByZWdpc3RlciBrZXl3b3JkIHRyaWdnZXJzIHdhcm5pbmdzIG9uIG5vdGV3b3J0aHkgY29tcGls
ZXJzCisoY2xhbmcpLCBzaW5jZSBpdCdzIGRlcHJlY2F0ZWQgaW4gQysrIGFuZCBhdCBkYW5nZXIg
b2YgYmVpbmcgcmVtb3ZlZAorZnJvbSB0aGUgbGFuZ3VhZ2UuIFRoZXJlIGlzIG5vIHJlYXNvbiB0
byB1c2UgaXQgc2luY2UgaXQgaXNuJ3QgMTk4MAorYW55bW9yZS4KKworaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDkxOAorLS0tCisgZ29iamVjdC9nbGliLWdl
bm1hcnNoYWwuYyB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwg
MyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMg
Yi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitpbmRleCBiZTQxNTFhLi5jYTc4YTZmIDEwMDY0
NAorLS0tIGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYworKysrIGIvZ29iamVjdC9nbGliLWdl
bm1hcnNoYWwuYworQEAgLTQxMiw5ICs0MTIsOSBAQCBnZW5lcmF0ZV9tYXJzaGFsIChjb25zdCBn
Y2hhciAqc2lnbmFtZSwKKyAgICAgICBnX2ZwcmludGYgKGZvdXQsICIlcyVzIGRhdGEyKTtcbiIs
IGluZGVudCAoaW5kKSwgcGFkICgiZ3BvaW50ZXIiKSk7CisgCisgICAgICAgLyogY2ZpbGUgbWFy
c2hhbCB2YXJpYWJsZXMgKi8KKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJlZ2lzdGVyIEdN
YXJzaGFsRnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworLSAgICAgIGdfZnByaW50ZiAo
Zm91dCwgIiAgcmVnaXN0ZXIgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xu
Iik7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBncG9pbnRlciBkYXRhMSwg
ZGF0YTI7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIEdNYXJzaGFsRnVuY18lcyBj
YWxsYmFjaztcbiIsIHNpZ25hbWUpOworKyAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgR0NDbG9z
dXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xuIik7CisrICAgICAgZ19mcHJpbnRmIChm
b3V0LCAiICBncG9pbnRlciBkYXRhMSwgZGF0YTI7XG4iKTsKKyAgICAgICBpZiAoc2lnLT5yYXJn
LT5zZXR0ZXIpCisgCWdfZnByaW50ZiAoZm91dCwgIiAgJXMgdl9yZXR1cm47XG4iLCBzaWctPnJh
cmctPmN0eXBlKTsKKyAKKy0tIAorMi40LjIKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBv
cnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZDEwNjRlZDVlOQotLS0gL2Rldi9udWxsCisrKyBi
L1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVu
U1NMLTEuMS4wLnBhdGNoCkBAIC0wLDAgKzEsMjM2IEBACitGcm9tIGU5Mzg5MzMxNjdjNDk0Y2Rj
YTQ0MzMzNGY2NThiMDJhMDNjNDQ4NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBE
YWlraSBVZW5vIDxkdWVub0ByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyNiBPY3QgMjAxNiAxNDo1
MTowMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBkdGxzOiBwb3J0IHRvIE9wZW5TU0wgMS4xLjAK
KworQ2hhbmdlcyBhcmU6CisKKy0gVXNlIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucyB0byBhY2Nlc3Mg
b3BhcXVlIGRhdGEgdHlwZXMuICBUbyBwcmVzZXJ2ZQorICBiYWNrd2FyZCBjb21wYXRpYmlsaXR5
LCBkZWZpbmUgZmFsbGJhY2sgZGVmaW5pdGlvbnMKKworLSBSZW1vdmUgdGhlIHVzZSBvZiBpZGlv
bSAicHF1ZXVlX3NpemUoc3NsLT5kMS0+c2VudF9tZXNzYWdlcykiLCBzaW5jZQorICB0aGVyZSBp
cyBubyByZXBsYWNlbWVudAorCistIFVzZSBSU0FfZ2VuZXJhdGVfa2V5X2V4IGluc3RlYWQgb2Yg
dGhlIGRlcHJlY2F0ZWQgUlNBX2dlbmVyYXRlX2tleQorCitodHRwczovL2J1Z3ppbGxhLmdub21l
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTQwCistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlm
aWNhdGUuYyB8IDE1ICsrKysrKysrCisgZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyAgfCA4
NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisgMiBmaWxlcyBj
aGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEv
ZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNh
dGUuYworaW5kZXggOTVmYmI4My4uYzFjOTYwMiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0
bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAg
LTE5OSw3ICsxOTksMjIgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNl
bGYpCisgICAgIHByaXYtPnByaXZhdGVfa2V5ID0gTlVMTDsKKyAgICAgcmV0dXJuOworICAgfQor
KworKyAgLyogWFhYOiBSU0FfZ2VuZXJhdGVfa2V5IGlzIGFjdHVhbGx5IGRlcHJlY2F0ZWQgaW4g
MC45LjggKi8KKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAwMDFMCisgICBy
c2EgPSBSU0FfZ2VuZXJhdGVfa2V5ICgyMDQ4LCBSU0FfRjQsIE5VTEwsIE5VTEwpOworKyNlbHNl
CisrICByc2EgPSBSU0FfbmV3ICgpOworKyAgaWYgKHJzYSAhPSBOVUxMKSB7CisrICAgIEJJR05V
TSAqZSA9IEJOX25ldyAoKTsKKysgICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwg
UlNBX0Y0KQorKyAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBO
VUxMKSkgeworKyAgICAgIFJTQV9mcmVlIChyc2EpOworKyAgICAgIHJzYSA9IE5VTEw7CisrICAg
IH0KKysgICAgQk5fZnJlZSAoZSk7CisrICB9CisrI2VuZGlmCisgCisgICBpZiAoIXJzYSkgewor
ICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsICJmYWlsZWQgdG8gZ2VuZXJhdGUgUlNBIik7
CitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyBiL2V4dC9kdGxzL2dz
dGR0bHNjb25uZWN0aW9uLmMKK2luZGV4IDM2ZjZkNjMuLjcyOGY1YTcgMTAwNjQ0CistLS0gYS9l
eHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY29ubmVj
dGlvbi5jCitAQCAtNDIsNiArNDIsOCBAQAorICNpbmNsdWRlIDxvcGVuc3NsL2Vyci5oPgorICNp
bmNsdWRlIDxvcGVuc3NsL3NzbC5oPgorIAorKyNpbmNsdWRlIDxzdHJpbmcuaD4KKysKKyBHU1Rf
REVCVUdfQ0FURUdPUllfU1RBVElDIChnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnKTsKKyAjZGVm
aW5lIEdTVF9DQVRfREVGQVVMVCBnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnCisgR19ERUZJTkVf
VFlQRV9XSVRIX0NPREUgKEdzdER0bHNDb25uZWN0aW9uLCBnc3RfZHRsc19jb25uZWN0aW9uLCBH
X1RZUEVfT0JKRUNULAorQEAgLTIxNiw2ICsyMTgsMzggQEAgZ3N0X2R0bHNfY29ubmVjdGlvbl9m
aW5hbGl6ZSAoR09iamVjdCAqIGdvYmplY3QpCisgICBHX09CSkVDVF9DTEFTUyAoZ3N0X2R0bHNf
Y29ubmVjdGlvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAoZ29iamVjdCk7CisgfQorIAorKyNp
ZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKytzdGF0aWMgdm9pZAorK0JJ
T19zZXRfZGF0YSAoQklPICogYmlvLCB2b2lkICpwdHIpCisreworKyAgYmlvLT5wdHIgPSBwdHI7
CisrfQorKworK3N0YXRpYyB2b2lkICoKKytCSU9fZ2V0X2RhdGEgKEJJTyAqIGJpbykKKyt7Cisr
ICByZXR1cm4gYmlvLT5wdHI7CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3NldF9zaHV0ZG93
biAoQklPICogYmlvLCBpbnQgc2h1dGRvd24pCisreworKyAgYmlvLT5zaHV0ZG93biA9IHNodXRk
b3duOworK30KKysKKytzdGF0aWMgdm9pZAorK0JJT19zZXRfaW5pdCAoQklPICogYmlvLCBpbnQg
aW5pdCkKKyt7CisrICBiaW8tPmluaXQgPSBpbml0OworK30KKysKKytzdGF0aWMgWDUwOSAqCisr
WDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0IChYNTA5X1NUT1JFX0NUWCAqIGN0eCkKKyt7CisrICBy
ZXR1cm4gY3R4LT5jZXJ0OworK30KKysjZW5kaWYKKysKKyBzdGF0aWMgdm9pZAorIGdzdF9kdGxz
X2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lk
LAorICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBzcGVjKQorQEAgLTIz
OSw3ICsyNzMsNyBAQCBnc3RfZHRsc19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAoR09iamVjdCAq
IG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICBwcml2LT5iaW8gPSBCSU9fbmV3IChCSU9f
c19nc3RfZHRsc19jb25uZWN0aW9uICgpKTsKKyAgICAgICBnX3JldHVybl9pZl9mYWlsIChwcml2
LT5iaW8pOworIAorLSAgICAgIHByaXYtPmJpby0+cHRyID0gc2VsZjsKKysgICAgICBCSU9fc2V0
X2RhdGEgKHByaXYtPmJpbywgc2VsZik7CisgICAgICAgU1NMX3NldF9iaW8gKHByaXYtPnNzbCwg
cHJpdi0+YmlvLCBwcml2LT5iaW8pOworIAorICAgICAgIFNTTF9zZXRfdmVyaWZ5IChwcml2LT5z
c2wsCitAQCAtNTczLDYgKzYwNyw3IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBz
ZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgIHN0YXRlcyB8PSAoISAhU1NMX3dhbnRfd3JpdGUg
KHByaXYtPnNzbCkgPDwgMjApOworICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF9yZWFkIChwcml2
LT5zc2wpIDw8IDI0KTsKKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAw
MDFMCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0oJWQsJXA6JWQv
JWQpICV4fCV4ICVzIiwKKyAgICAgICBzdHIsCisgICAgICAgcHJpdi0+aXNfY2xpZW50ID8gImNs
aWVudCIgOiAic2VydmVyIiwKK0BAIC01ODEsNiArNjE2LDE1IEBAIGxvZ19zdGF0ZSAoR3N0RHRs
c0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgICAgICBwcml2LT5iaW9f
YnVmZmVyX29mZnNldCwKKyAgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKyAgICAgICBzdGF0
ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJp
di0+c3NsKSk7CisrI2Vsc2UKKysgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6IHJvbGU9JXMg
YnVmPSglcDolZC8lZCkgJXh8JXggJXMiLAorKyAgICAgIHN0ciwKKysgICAgICBwcml2LT5pc19j
bGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorKyAgICAgIHByaXYtPmJpb19idWZmZXIsCisr
ICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9vZmZzZXQsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9s
ZW4sCisrICAgICAgc3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBTU0xfc3RhdGVf
c3RyaW5nX2xvbmcgKHByaXYtPnNzbCkpOworKyNlbmRpZgorIH0KKyAKKyBzdGF0aWMgdm9pZAor
QEAgLTczNyw3ICs3ODEsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlm
eV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgIHNlbGYgPSBTU0xfZ2V0X2V4X2Rh
dGEgKHNzbCwgY29ubmVjdGlvbl9leF9pbmRleCk7CisgICBnX3JldHVybl92YWxfaWZfZmFpbCAo
R1NUX0lTX0RUTFNfQ09OTkVDVElPTiAoc2VsZiksIEZBTFNFKTsKKyAKKy0gIHBlbSA9IF9nc3Rf
ZHRsc194NTA5X3RvX3BlbSAoeDUwOV9jdHgtPmNlcnQpOworKyAgcGVtID0gX2dzdF9kdGxzX3g1
MDlfdG9fcGVtIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSk7CisgCisgICBp
ZiAoIXBlbSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsCitAQCAtNzQ5LDcgKzc5
Myw4IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NU
T1JFX0NUWCAqIHg1MDlfY3R4KQorICAgICAgIGdpbnQgbGVuOworIAorICAgICAgIGxlbiA9Cist
ICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLCBYNTA5X2dldF9zdWJqZWN0X25hbWUg
KHg1MDlfY3R4LT5jZXJ0KSwgMSwKKysgICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8s
CisrICAgICAgICAgIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoWDUwOV9TVE9SRV9DVFhfZ2V0MF9j
ZXJ0ICh4NTA5X2N0eCkpLCAxLAorICAgICAgICAgICBYTl9GTEFHX01VTFRJTElORSk7CisgICAg
ICAgQklPX3JlYWQgKGJpbywgYnVmZmVyLCBsZW4pOworICAgICAgIGJ1ZmZlcltsZW5dID0gJ1ww
JzsKK0BAIC03NzcsNiArODIyLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2
ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICMjIyMjIyMjICAjIyMj
ICAjIyMjIyMjCisgKi8KKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAw
MDFMCisgc3RhdGljIEJJT19NRVRIT0QgY3VzdG9tX2Jpb19tZXRob2RzID0geworICAgQklPX1RZ
UEVfQklPLAorICAgInN0cmVhbSIsCitAQCAtNzk1LDExICs4NDEsMzQgQEAgQklPX3NfZ3N0X2R0
bHNfY29ubmVjdGlvbiAodm9pZCkKKyB7CisgICByZXR1cm4gJmN1c3RvbV9iaW9fbWV0aG9kczsK
KyB9CisrI2Vsc2UKKytzdGF0aWMgQklPX01FVEhPRCAqY3VzdG9tX2Jpb19tZXRob2RzOworKwor
K3N0YXRpYyBCSU9fTUVUSE9EICoKKytCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQor
K3sKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgIT0gTlVMTCkKKysgICAgcmV0dXJuIGN1c3Rv
bV9iaW9fbWV0aG9kczsKKysKKysgIGN1c3RvbV9iaW9fbWV0aG9kcyA9IEJJT19tZXRoX25ldyAo
QklPX1RZUEVfQklPLCAic3RyZWFtIik7CisrICBpZiAoY3VzdG9tX2Jpb19tZXRob2RzID09IE5V
TEwKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3dyaXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJp
b19tZXRob2Rfd3JpdGUpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9yZWFkIChjdXN0b21fYmlv
X21ldGhvZHMsIGJpb19tZXRob2RfcmVhZCkKKysgICAgICB8fCAhQklPX21ldGhfc2V0X2N0cmwg
KGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9jdHJsKQorKyAgICAgIHx8ICFCSU9fbWV0
aF9zZXRfY3JlYXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfbmV3KQorKyAgICAg
IHx8ICFCSU9fbWV0aF9zZXRfZGVzdHJveSAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9k
X2ZyZWUpKSB7CisrICAgIEJJT19tZXRoX2ZyZWUgKGN1c3RvbV9iaW9fbWV0aG9kcyk7CisrICAg
IHJldHVybiBOVUxMOworKyAgfQorKworKyAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKKyt9
CisrI2VuZGlmCisgCisgc3RhdGljIGludAorIGJpb19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywg
Y29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNl
bGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxzQ29ubmVjdGlv
biAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7CisgCisg
ICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIkJJTzogd3JpdGluZyAlZCIsIHNpemUpOworIAorQEAg
LTgyNCw3ICs4OTMsNyBAQCBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNvbnN0IGNoYXIg
KmRhdGEsIGludCBzaXplKQorIHN0YXRpYyBpbnQKKyBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJp
bywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nvbm5lY3Rpb24g
KnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxzQ29ubmVj
dGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7Cisg
ICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2OworICAgZ3VpbnQg
aW50ZXJuYWxfc2l6ZTsKKyAgIGdpbnQgY29weV9zaXplOworQEAgLTg2OCw3ICs5MzcsNyBAQCBi
aW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisg
c3RhdGljIGxvbmcKKyBiaW9fbWV0aG9kX2N0cmwgKEJJTyAqIGJpbywgaW50IGNtZCwgbG9uZyBh
cmcxLCB2b2lkICphcmcyKQorIHsKKy0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RU
TFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBH
U1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOworICAgR3N0RHRsc0Nvbm5l
Y3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKKyAKKyAgIHN3aXRjaCAoY21kKSB7CitA
QCAtOTE2LDggKzk4NSw4IEBAIGJpb19tZXRob2RfbmV3IChCSU8gKiBiaW8pCisgeworICAgR1NU
X0xPR19PQkpFQ1QgKE5VTEwsICJCSU86IG5ldyIpOworIAorLSAgYmlvLT5zaHV0ZG93biA9IDA7
CistICBiaW8tPmluaXQgPSAxOworKyAgQklPX3NldF9zaHV0ZG93biAoYmlvLCAwKTsKKysgIEJJ
T19zZXRfaW5pdCAoYmlvLCAxKTsKKyAKKyAgIHJldHVybiAxOworIH0KK0BAIC05MzAsNiArOTk5
LDYgQEAgYmlvX21ldGhvZF9mcmVlIChCSU8gKiBiaW8pCisgICAgIHJldHVybiAwOworICAgfQor
IAorLSAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKSwgIkJJ
TyBmcmVlIik7CisrICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dl
dF9kYXRhIChiaW8pKSwgIkJJTyBmcmVlIik7CisgICByZXR1cm4gMDsKKyB9CistLSAKKzIuMTAu
MgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1k
dGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNo
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2NlcnRpZmljYXRl
LUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzY2ODc3MzcwYzYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUt
Rml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCkBAIC0wLDAgKzEsMzcg
QEAKK0Zyb20gM2EwNjkxOTNlMjUzNjRlYmRhY2FjODZmNGIwMzAyMmMxNTFlYTI5YyBNb24gU2Vw
IDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdl
Pz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRlOiBNb24sIDE0IE5vdiAyMDE2IDEx
OjMyOjE3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHNjZXJ0aWZpY2F0ZTogRml4IGVycm9y
IGNoZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9rZXlfZXgoKQorIHVzYWdlCisKK1dhcyBicm9rZW4g
ZHVyaW5nIHRoZSBwb3J0IGZvciBPcGVuU1NMIDEuMS4KKworaHR0cHM6Ly9idWd6aWxsYS5nbm9t
ZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyOAorLS0tCisgZXh0L2R0bHMvZ3N0ZHRsc2NlcnRp
ZmljYXRlLmMgfCA3ICsrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspLCAz
IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRl
LmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworaW5kZXggYzFjOTYwMi4uYzJkOWJi
MiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQv
ZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAgLTIwNywxMiArMjA3LDEzIEBAIGluaXRfZ2Vu
ZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQorICAgcnNhID0gUlNBX25ldyAoKTsK
KyAgIGlmIChyc2EgIT0gTlVMTCkgeworICAgICBCSUdOVU0gKmUgPSBCTl9uZXcgKCk7CistICAg
IGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKy0gICAgICAgICYmIFJT
QV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKKysgICAgaWYgKGUgPT0g
TlVMTCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKysgICAgICAgIHx8ICFSU0FfZ2VuZXJh
dGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisgICAgICAgUlNBX2ZyZWUgKHJzYSk7
CisgICAgICAgcnNhID0gTlVMTDsKKyAgICAgfQorLSAgICBCTl9mcmVlIChlKTsKKysgICAgaWYg
KGUpCisrICAgICAgQk5fZnJlZSAoZSk7CisgICB9CisgI2VuZGlmCisgCistLSAKKzIuMTAuMgor
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1x
dGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2ggYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJl
YW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjNhNjBkYjQ3NzJiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Utc3RyZWFtcy13
aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCkBAIC0wLDAgKzEsMTMzIEBACitGcm9tIDFhODFi
ZDkwZDRhM2U1OWQ2NjY5YTBiYmZhNDU2ZjFlZDRlNWRiNDggTW9uIFNlcCAxNyAwMDowMDowMCAy
MDAxCitGcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4K
K0RhdGU6IFRodSwgNyBBcHIgMjAxNiAxMzo1NzoxNiArMDIwMAorU3ViamVjdDogW1BBVENIXSBS
ZXZlcnQgInF0ZGVtdXg6IGV4cG9zZSBzdHJlYW1zIHdpdGggZmlyc3QgbW9vZiBmb3IKKyBmcmFn
bWVudGVkIGZvcm1hdCIKKworVGhpcyByZXZlcnRzIGNvbW1pdCBkOGJiNjY4N2VhMjUxNTcwYzMz
MTAzODI3OWE0M2Q0NDgxNjdkNmFkLgorLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA1NCAr
KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZ3N0
L2lzb21wNC9xdGRlbXV4LmggfCAgMSAtCisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBpbnNlcnRpb25z
KCspLCAzOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5j
IGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK2luZGV4IDM5YmUxNjMuLjk2MzZiNGIgMTAwNjQ0Cist
LS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK0BA
IC02MDksNyArNjA5LDYgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVtdXgp
CisgICBxdGRlbXV4LT5zdGF0ZSA9IFFUREVNVVhfU1RBVEVfSU5JVElBTDsKKyAgIHF0ZGVtdXgt
PnB1bGxiYXNlZCA9IEZBTFNFOworICAgcXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0ID0gRkFMU0U7
CistICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgcXRkZW11eC0+bmVl
ZGVkYnl0ZXMgPSAxNjsKKyAgIHF0ZGVtdXgtPnRvZHJvcCA9IDA7CisgICBxdGRlbXV4LT5hZGFw
dGVyID0gZ3N0X2FkYXB0ZXJfbmV3ICgpOworQEAgLTIwNDksNyArMjA0OCw2IEBAIGdzdF9xdGRl
bXV4X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jvb2xlYW4gaGFyZCkKKyAgICAgZ3N0
X2NhcHNfcmVwbGFjZSAoJnF0ZGVtdXgtPm1lZGlhX2NhcHMsIE5VTEwpOworICAgICBxdGRlbXV4
LT50aW1lc2NhbGUgPSAwOworICAgICBxdGRlbXV4LT5nb3RfbW9vdiA9IEZBTFNFOworLSAgICBx
dGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgfSBlbHNlIGlmIChxdGRlbXV4
LT5tc3NfbW9kZSkgeworICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNldCAocXRkZW11eC0+Zmxv
d2NvbWJpbmVyKTsKKyAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgtPm5fc3RyZWFtczsgbisr
KQorQEAgLTYxMDQsNyArNjEwMiw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0
UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICAmZm91cmNjKTsK
KyAgICAgICAgIGlmIChmb3VyY2MgPT0gRk9VUkNDX21vb3YpIHsKKyAgICAgICAgICAgZ2ludCBu
OworLSAgICAgICAgICBnYm9vbGVhbiBnb3Rfc2FtcGxlcyA9IEZBTFNFOworIAorICAgICAgICAg
ICAvKiBpbiB1c3VhbCBmcmFnbWVudGVkIHNldHVwIHdlIGNvdWxkIHRyeSB0byBzY2FuIGZvciBt
b3JlCisgICAgICAgICAgICAqIGFuZCBlbmQgdXAgYXQgdGhlIHRoZSBtb292IChhZnRlciBtZGF0
KSBhZ2FpbiAqLworQEAgLTYxMzYsMjcgKzYxMzMsMTkgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
IHF0ZGVtdXhfbm9kZV9kdW1wIChkZW11eCwgZGVtdXgtPm1vb3Zfbm9kZSk7CisgICAgICAgICAg
ICAgcXRkZW11eF9wYXJzZV90cmVlIChkZW11eCk7CisgICAgICAgICAgICAgcXRkZW11eF9wcmVw
YXJlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAgICAgICBpZiAoIWRlbXV4LT5nb3RfbW9vdikK
KysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAg
ICAgICBlbHNlIHsKKyAKKy0gICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3Ry
ZWFtczsgbisrKSB7CistICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11
eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgIGdvdF9zYW1wbGVzIHw9IHN0cmVhbS0+c3Ri
bF9pbmRleCA+PSAwOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBpZiAoIWRlbXV4LT5m
cmFnbWVudGVkIHx8IGdvdF9zYW1wbGVzKSB7CistICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5n
b3RfbW9vdikgeworLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1zIChkZW11
eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmb3IgKG4gPSAw
OyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICAgICAgUXREZW11
eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAgICAgICAgICAg
Z3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CistICAgICAgICAg
ICAgICAgIH0KKysgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1z
OyBuKyspIHsKKysgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgt
PnN0cmVhbXNbbl07CisrCisrICAgICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9z
dHJlYW0gKGRlbXV4LCBzdHJlYW0pOworICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAg
Z3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKy0gICAgICAg
ICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworLSAgICAgICAgICAgIH0g
ZWxzZSB7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBUUlVFOwor
ICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBkZW11eC0+Z290X21vb3YgPSBUUlVFOwor
KyAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11
eCk7CisgCisgICAgICAgICAgICAgLyogZnJhZ21lbnRlZCBzdHJlYW1zIGhlYWRlcnMgc2hvdWxk
bid0IGNvbnRhaW4gZWR0cyBhdG9tcyAqLworICAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdt
ZW50ZWQpIHsKK0BAIC02MTc1LDcgKzYxNjQsNiBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0
ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgZ3Vp
bnQ2NCBkaXN0ID0gMDsKKyAgICAgICAgICAgICBHc3RDbG9ja1RpbWUgcHJldl9wdHM7CisgICAg
ICAgICAgICAgZ3VpbnQ2NCBwcmV2X29mZnNldDsKKy0gICAgICAgICAgICBnaW50IG47CisgCisg
ICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJQYXJzaW5nIFttb29mXSIpOwor
IAorQEAgLTYyMDksMjUgKzYxOTcsMTUgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChH
c3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAgICAgcmV0ID0g
R1NUX0ZMT1dfRVJST1I7CisgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAgICAgICAgICAg
fQorLSAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUgcGFkcyBhZnRl
ciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292IAorLSAgICAgICAgICAgICAq
IEFsc28sIGZyYWdtZW50ZWQgZm9ybWF0IG5lZWQgdG8gYmUgZXhwb3NlZCBpZiBhIG1vb3YgaGF2
ZSBubyB2YWxpZCBzYW1wbGUgZGF0YSAqLworLSAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21v
ZGUgfHwgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlKSB7CistICAgICAgICAgICAgICBpZiAoIWRl
bXV4LT5leHBvc2VkKSB7CistICAgICAgICAgICAgICAgIGlmICghZGVtdXgtPnBlbmRpbmdfbmV3
c2VnbWVudCkgeworLSAgICAgICAgICAgICAgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKKy0gICAg
ICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1F
KTsKKy0gICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIm5ldyBwZW5k
aW5nX25ld3NlZ21lbnQiKTsKKy0gICAgICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19uZXdz
ZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2VnbWVudCk7CistICAgICAgICAgICAg
ICAgIH0KKy0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgpOwor
LSAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8
IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworLSAgICAgICAgICAgICAgICAgIFF0RGVtdXhTdHJl
YW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAgICAgIGdzdF9x
dGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworLSAgICAgICAgICAgICAg
ICB9CisrICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFm
dGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3YgKi8KKysgICAgICAgICAg
ICBpZiAoZGVtdXgtPm1zc19tb2RlICYmICFkZW11eC0+ZXhwb3NlZCkgeworKyAgICAgICAgICAg
ICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CisrICAgICAgICAgICAgICAgIEdz
dFNlZ21lbnQgc2VnbWVudDsKKysgICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnNl
Z21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisrICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpF
Q1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworKyAgICAgICAgICAgICAgICBk
ZW11eC0+cGVuZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2VnbWVu
dCk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19z
ZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRp
bmdfY29uZmlndXJlID0gRkFMU0U7CisrICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJl
YW1zIChkZW11eCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiRGlzY2FyZGluZyBbbW9vZl0iKTsKK2Rp
ZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaCBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitp
bmRleCA2MDYxMjE1Li5lY2YwYzYzIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmgK
KysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtODksNyArODksNiBAQCBzdHJ1Y3QgX0dz
dFFURGVtdXggeworICAgZ2Jvb2xlYW4gcG9zdGVkX3JlZGlyZWN0OworIAorICAgLyogcHVzaCBi
YXNlZCB2YXJpYWJsZXMgKi8KKy0gIGdib29sZWFuIHBlbmRpbmdfY29uZmlndXJlOworICAgZ3Vp
bnQgbmVlZGVkYnl0ZXM7CisgICBndWludCB0b2Ryb3A7CisgICBHc3RBZGFwdGVyICphZGFwdGVy
OworLS0gCisyLjguMC5yYzMKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBs
dWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2ggYi9Ub29scy93cGUvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWU5ZGQ5N2Y3OTEKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZk
dC1kZWNvZGUtdGltZS5wYXRjaApAQCAtMCwwICsxLDE0NiBAQAorRnJvbSA0NmQzZTBmYWE5MjI2
NDMwOTRhNWU0NmEzMmU0ZjgyZjc3NGFlNzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJv
bTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIwR29uej1DMz1BMWxlej89IDxlb2Nh
bmhhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEwIE5vdiAyMDE1IDEzOjA5OjAwICswMTAwCitT
dWJqZWN0OiBbUEFUQ0hdIFVzZSB0aGUgdGZkdCBkZWNvZGUgdGltZSB3aGVuIGl0J3Mgc2lnbmlm
aWNhbnRseSBkaWZmZXJlbnQKKyB0aGFuIHRoZSB0aW1lIGluIHRoZSBsYXN0IHNhbXBsZSBpZiBh
bHdheXMtaG9ub3ItdGZkdCBpcyBlbmFibGVkCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3Jn
L3Nob3dfYnVnLmNnaT9pZD03NTQyMzAKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11eC5jIHwgNzIg
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKworIGdz
dC9pc29tcDQvcXRkZW11eC5oIHwgIDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNzMgaW5zZXJ0aW9u
cygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0
ZGVtdXguYworaW5kZXggODgwNTk1ZS4uZDhiNTRmMCAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQv
cXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTUzNSw2ICs1MzUsMTEg
QEAgc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfYXBwZW5kX3Byb3RlY3Rpb25fc3lzdGVtX2lkIChH
c3RRVERlbXV4ICogcXRkZW11eCwKKyAgICAgY29uc3QgZ2NoYXIgKiBpZCk7Cisgc3RhdGljIHZv
aWQgcXRkZW11eF9nc3Rfc3RydWN0dXJlX2ZyZWUgKEdzdFN0cnVjdHVyZSAqIGdzdHN0cnVjdHVy
ZSk7CisgCisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChHT2JqZWN0ICog
b2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFt
U3BlYyAqIHNwZWMpOworK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eSAoR09i
amVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgR1ZhbHVlICogdmFsdWUsIEdQYXJh
bVNwZWMgKiBzcGVjKTsKKysKKyBzdGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQg
KEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIHsKK0BAIC01NDYsOCArNTUxLDIxIEBAIGdzdF9x
dGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIAorICAgcGFyZW50
X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChrbGFzcyk7CisgCisrICBnb2JqZWN0
X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHk7CisrICBnb2Jq
ZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9nZXRfcHJvcGVydHk7CisrCisg
ICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZ3N0X3F0ZGVtdXhfZGlzcG9zZTsKKyAKKysgLyoq
CisrICAgKiBHc3RRdERlbXV4OjphbHdheXMtaG9ub3ItdGZkdDoKKysgICAqCisrICAgKiBSZXF1
ZXN0cyB0aGUgZGVtdXhlciB0byByZXNwZWN0IHdoYXQgdGhlIFRGRFQgYXRvbSBzYXlzIGluIG9y
ZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMuIERlZmF1bHRzIHRvIEZBTFNF
LgorKyAgICovCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChnb2JqZWN0X2Ns
YXNzLCBQUk9QX0FMV0FZU19IT05PUl9URkRULAorKyAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFu
ICgiYWx3YXlzLWhvbm9yLXRmZHQiLCAiQWx3YXlzIGhvbm9yIFRGRFQiLAorKyAgICAgICAgICAi
V2hlbiBlbmFibGVkLCBURkRUIGF0b20gd2lsbCBhbHdheXMgYmUgcmVzcGVjdGVkIGluIG9yZGVy
IHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMiLAorKyAgICAgICAgICBGQUxTRSwg
R19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSk7CisrCisgICBnc3Rl
bGVtZW50X2NsYXNzLT5jaGFuZ2Vfc3RhdGUgPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVt
dXhfY2hhbmdlX3N0YXRlKTsKKyAjaWYgMAorICAgZ3N0ZWxlbWVudF9jbGFzcy0+c2V0X2luZGV4
ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9pbmRleCk7CitAQCAtNjExLDYg
KzYyOSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4KQorICAgcXRk
ZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7CisgICBxdGRlbXV4LT5jZW5jX2F1eF9z
YW1wbGVfY291bnQgPSAwOworICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1faWRzID0gTlVM
TDsKKysgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0gRkFMU0U7CisgICBnX3F1ZXVlX2lu
aXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKKyAgIGdzdF9zZWdtZW50X2lu
aXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworICAgcXRkZW11eC0+Zmxv
d2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgpOworQEAgLTYzOSw2ICs2NTgsNDIg
QEAgZ3N0X3F0ZGVtdXhfZGlzcG9zZSAoR09iamVjdCAqIG9iamVjdCkKKyB9CisgCisgc3RhdGlj
IHZvaWQKKytnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50
IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNwZWMp
CisreworKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmplY3QpOworKwor
KyAgc3dpdGNoIChwcm9wX2lkKSB7CisrICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9OT1JfVEZEVDoK
KysgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOworKyAgICAgIHF0ZGVtdXgtPmFsd2F5
c19ob25vcl90ZmR0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAodmFsdWUpOworKyAgICAgIEdTVF9P
QkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysg
ICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwg
cHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9pZAorK2dzdF9x
dGRlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwgR1Zh
bHVlICogdmFsdWUsCisrICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4
ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQp
IHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1Rf
TE9DSyAocXRkZW11eCk7CisrICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFsdWUsIHF0ZGVt
dXgtPmFsd2F5c19ob25vcl90ZmR0KTsKKysgICAgICBHU1RfT0JKRUNUX1VOTE9DSyAocXRkZW11
eCk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpFQ1RfV0FSTl9J
TlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysgICAgICBicmVh
azsKKysgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKyBnc3RfcXRkZW11eF9wb3N0X25vX3BsYXlh
YmxlX3N0cmVhbV9lcnJvciAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgeworICAgaWYgKHF0ZGVt
dXgtPnBvc3RlZF9yZWRpcmVjdCkgeworQEAgLTI5OTUsNiArMzA1MCwxNiBAQCBxdGRlbXV4X3Bh
cnNlX3RydW4gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVyICogdHJ1biwKKyAg
ICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0udGltZXN0YW1w
ICsKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0uZHVy
YXRpb247CisgCisrICAgICAgLyogSWYgd2UncmUgYWx3YXlzIGhvbm9yaW5nIFRGRFQgYW5kIHRo
ZXJlJ3MgYSBzaWduaWZpY2F0aXZlIGRpZmZlcmVuY2UKKysgICAgICAgKiBiZXR3ZWVuIHRoZSBk
ZWNvZGVfdHMgYW5kIHRoZSB0aW1lc3RhbXAsIHByZWZlciBkZWNvZGVfdHMgKi8KKysgICAgICBp
ZiAocXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPT0gVFJVRQorKyAgICAgICAgICAmJiBhYnMg
KGRlY29kZV90cyAtIHRpbWVzdGFtcCkgPgorKyAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3Ry
ZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbikgeworKyAgICAgICAgR1NUX0lORk9fT0JKRUNU
IChxdGRlbXV4LAorKyAgICAgICAgICAgICJkZWNvZGVfdHMgaXMgc2lnbmlmaWNhbnRseSBkaWZm
ZXJlbnQgZnJvbSB0aW1lc3RhbXAsIHVzaW5nIGRlY29kZV90cyIpOworKyAgICAgICAgdGltZXN0
YW1wID0gZGVjb2RlX3RzOworKyAgICAgIH0KKysKKyAgICAgICBnc3RfdHMgPSBRVFNUUkVBTVRJ
TUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOworICAgICAgIEdTVF9JTkZPX09CSkVD
VCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElNRV9GT1JNQVQKKyAgICAgICAg
ICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9USU1FX0FSR1MgKGdzdF90cykp
OworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4
LmgKK2luZGV4IDUzYmQwNzEuLmVjZjBjNjMgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVt
dXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC0xNTQsMTIgKzE1NCwyMCBAQCBz
dHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ3VpbnQ4ICpjZW5jX2F1eF9pbmZvX3NpemVzOworICAg
Z3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7CisgCisrICBnYm9vbGVhbiBhbHdheXNfaG9u
b3JfdGZkdDsKKyB9OworIAorIHN0cnVjdCBfR3N0UVREZW11eENsYXNzIHsKKyAgIEdzdEVsZW1l
bnRDbGFzcyBwYXJlbnRfY2xhc3M7CisgfTsKKyAKKysvKiBwcm9wcyAqLworK2VudW0KKyt7Cisr
ICBQUk9QXzAsCisrICBQUk9QX0FMV0FZU19IT05PUl9URkRUCisrfTsKKysKKyBHVHlwZSBnc3Rf
cXRkZW11eF9nZXRfdHlwZSAodm9pZCk7CisgCisgR19FTkRfREVDTFMKKy0tIAorMi42LjEKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVz
aC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1p
Zi10aGUtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNDQ2
YmQ1NDRjMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdHJlYW1lci10
eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaApA
QCAtMCwwICsxLDMyIEBACitGcm9tIDVlNDNlZTU5ODlkN2I1MWRjYjMxNDViZDk5NzUyNTI0N2Ez
ZDYyZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/U2ViYXN0aWFu
PTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0ZTogV2VkLCAx
MSBNYXkgMjAxNiAxNTowNjozOSArMDMwMAorU3ViamVjdDogW1BBVENIXSB0eXBlZmluZDogT25s
eSBwdXNoIGEgQ0FQUyBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBzaW5rcGFkIGlzCisgbm90IGlu
IFBVTEwgbW9kZQorCitUaGUgb3RoZXIgc2lnbmFsIGhhbmRsZXJzIG9mIHRoZSB0eXBlLWZvdW5k
IHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCit0eXBlZmluZCBpbiBQVUxMIG1vZGUgYWxy
ZWFkeSwgcHVzaGluZyBhIENBUFMgZXZlbnQgYXQgdGhhdCBwb2ludCB3b3VsZCBjYXVzZQorZGVh
ZGxvY2tzIGFuZCBpcyBpbiBnZW5lcmFsIHVuZXhwZWN0ZWQgYnkgZWxlbWVudHMgdGhhdCBhcmUg
aW4gUFVMTCBtb2RlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzY1OTA2CistLS0KKyBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIHwg
NCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEv
cGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyBiL3BsdWdpbnMvZWxlbWVudHMv
Z3N0dHlwZWZpbmRlbGVtZW50LmMKK2luZGV4IGM2ODY0MTIuLjQ1M2ZmNzUgMTAwNjQ0CistLS0g
YS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCisrKysgYi9wbHVnaW5zL2Vs
ZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCitAQCAtMTc5LDYgKzE3OSwxMCBAQCBnc3RfdHlw
ZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlIChHc3RUeXBlRmluZEVsZW1lbnQgKiB0eXBlZmluZCwK
KyAgIEdTVF9JTkZPX09CSkVDVCAodHlwZWZpbmQsICJmb3VuZCBjYXBzICUiIEdTVF9QVFJfRk9S
TUFUICIsIHByb2JhYmlsaXR5PSV1IiwKKyAgICAgICBjYXBzLCBwcm9iYWJpbGl0eSk7CisgCisr
ICAvKiBEbyBub3RoaW5nIGlmIGRvd25zdHJlYW0gaXMgcHVsbGluZyBmcm9tIHVzICovCisrICBp
ZiAoR1NUX1BBRF9NT0RFICh0eXBlZmluZC0+c3JjKSA9PSBHU1RfUEFEX01PREVfUFVMTCkKKysg
ICAgcmV0dXJuOworKworICAgR1NUX09CSkVDVF9MT0NLICh0eXBlZmluZCk7CisgCisgICAvKiBO
b3cgYWN0dWFsbHkgc2VuZCB0aGUgQ0FQUyBldmVudCBkb3duc3RyZWFtLgorLS0gCisyLjguMQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>307719</attachid>
            <date>2017-04-21 04:43:01 -0700</date>
            <delta_ts>2017-04-27 06:08:05 -0700</delta_ts>
            <desc>git diff --stat output for the specific changes</desc>
            <filename>upstream.stat</filename>
            <type>text/plain</type>
            <size>12359</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">Q2hhbmdlcyBhZ2FpbnN0IHIyMTU2MDc6CgogQ01ha2VMaXN0cy50eHQgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRm
b3JtV1BFLmNtYWtlICAgICAgICAgICAgfCAgMjMgKwogU291cmNlL0phdmFTY3JpcHRDb3JlL3No
ZWxsL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgfCAgIDMgKwogU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCAgfCAgIDIgKy0KIFNvdXJjZS9XVEYvd3RmL1Bs
YXRmb3JtLmggICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDE4ICstCiBTb3VyY2UvV1RGL3d0
Zi9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgICAgICB8ICAyOCArCiBTb3VyY2UvV1RG
L3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oICAgICAgICB8ICAyOSArCiBTb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICB8ICAgNyArLQogU291
cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgfCAgIDMgKwog
U291cmNlL1dlYkNvcmUvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICAgfCAyODYg
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aCB8ICAgNCArCiAuLi4vV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BF
LmNwcCB8ICA2NSArKwogLi4uL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RX
UEUuY3BwICAgfCAgNDIgKwogU291cmNlL1dlYkNvcmUvY29uZmlnLmggICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eUVDLmggICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlSU0EuaCAgICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yLmggICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9lZGl0
aW5nL3dwZS9FZGl0b3JXUEUuY3BwICAgICAgICAgICB8ICA4OCArKwogU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgICAgICAgIHwgMTA4ICsrKwogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmggICAgICAgICAgICAgICAgICAgfCAgIDIgKwogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaCAgICAgICAgICAgICAgICAgfCAgIDIgKy0K
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oICAgICAgICAgICAgICAgIHwgICA0
ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggICAgICAgICAgICAgICB8
ICAgMiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNw
cCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1l
ci5oICAgIHwgICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggICAg
ICAgICAgICAgICB8ICAgNiArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0
cmF0ZWd5LmggICAgICAgfCAgIDkgKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggICAgICAgfCAgIDkgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1NjaGVt
ZVJlZ2lzdHJ5LmNwcCAgICAgICAgIHwgICAyICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9X
aWRnZXQuaCAgICAgICAgICAgICAgICAgICB8ICAgNCArCiAuLi4vV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAgICB8ICAgOCArLQogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAgICAgfCAgIDQgKwogLi4uL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaCAgfCAgIDIgKy0KIFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAgICAgIHwgICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaCAgICAgICB8ICAgNiArCiAuLi4v
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oICB8ICAgNCArLQog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oICAgfCAgIDMg
Ky0KIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAgIHwg
ICA4ICsKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5o
IHwgICAzICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wu
Y3BwIHwgIDEwICsKIC4uLi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRF
R0wuaCAgIHwgIDEzICsKIC4uLi9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BF
LmNwcCAgICAgIHwgIDQ0ICsKIC4uLi9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHAgIHwgICA5ICsKIC4uLi9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xD
b21tb24uY3BwICAgICAgIHwgICA1ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93cGUvSWNvbldQRS5jcHAgICB8ICA0NCArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy93cGUvSW1hZ2VXUEUuY3BwICB8ICA0MyArCiAuLi4vcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgICB8IDEzNCArKysKIC4uLi9wbGF0Zm9ybS9ncmFwaGlj
cy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmggICAgIHwgMTAyICsrKwogU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAgICAgICAgICAgfCAgMzUgKwogLi4uL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwICAgfCAgNTEgKysKIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcCAgICAgIHwgMTM0ICsrKwogLi4u
L3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwICAgICAgfCAgNTggKysK
IC4uLi9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIHwgMTE1
ICsrKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCAg
fCAgNzQgKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAg
ICAgIHwgIDY2ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUu
aCAgICAgICB8ICA1NiArKwogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRo
ZW1lV1BFLmNwcCAgfCAgNjkgKysKIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxi
YXJUaGVtZVdQRS5oICAgIHwgIDQ4ICsrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291
bmRXUEUuY3BwICAgICAgICAgICB8ICAzOCArCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwICAgICAgICAgICB8IDE0OCArKysrCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvVGhlbWVXUEUuaCAgICAgICAgICAgICB8ICA1MCArKwogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1dpZGdldFdQRS5jcHAgICAgICAgICAgfCAgODUgKysKIC4uLi9XZWJLaXQyL1Bs
YXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCAgIHwgICAzICsKIFNvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgIHwgNDcwICsrKysrKysrKysK
IC4uLi9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIHwgICAy
ICstCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggICAgICAgICAgICAgICB8
ICAgNCArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oICAgICAg
ICB8ICAzNSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oICAgICAg
ICAgICB8IDEwNiArKysKIC4uLi90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29w
LmNwcCAgICAgIHwgICAyICstCiAuLi4vdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oICAgICAgICB8ICAgMSArCiAuLi4vdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAgICAgICB8ICA4NiArLQogLi4uL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuaCAgICAgICAgfCAgMjcgKy0KIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3
aW5nQXJlYUluZm8uaCAgICAgICAgICAgIHwgICAyICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJLZXlib2FyZEV2ZW50LmggICAgIHwgICA4ICsKIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmggICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggICAgICAgIHwgICA3ICsKIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmggICAgICAgIHwgICA4ICsKIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwICAgIHwgIDIyICstCiBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggICAgICB8ICAxMyArCiBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oICB8ICAgMiArLQog
Li4uL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAgICAgICAgfCAgMzgg
KwogLi4uL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcCAgfCAg
MzggKwogLi4uL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCAg
fCAgNDYgKwogLi4uL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNw
cCAgfCAgNDAgKwogLi4uL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCAg
ICAgICAgfCAgODcgKysKIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5
LmNwcCAgICAgIHwgMjE1ICsrKysrCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50
RmFjdG9yeS5oICAgICAgICB8ICA0OCArKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLQVBJQ2FzdC5oICAgICAgICAgfCAgIDQgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL3dwZS9XS0FQSUNhc3RXUEUuaCAgfCAgNTggKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQy93cGUvV0tWaWV3LmNwcCAgICAgIHwgIDU5ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oICAgICAgICB8ICA3MSArKwogLi4uL1VJUHJvY2Vzcy9B
UEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCAgfCAgNTUgKysKIC4uLi9VSVByb2Nl
c3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oICAgIHwgIDYyICsrCiAuLi4vQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAgICB8ICAyNSArCiAuLi4v
VUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAgICAgICB8ICA5NCArKwog
Li4uL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaCAgICAgICAgfCAgNjAg
KysKIC4uLi9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCAgIHwg
MzIxICsrKysrKysKIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmggIHwgMTMwICsrKwogLi4uL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250
cm9sbGVyLmNwcCAgfCAgODAgKysKIC4uLi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJl
Q29udHJvbGxlci5oICAgIHwgIDU2ICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3LmNwcCAgICAgICB8IDE1MyArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3LmggICAgICAgICB8ICA4NiArKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAgfCAgNDMgKwogU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oICAgfCAgNTAgKysKIC4uLi9BUEkvd3BlL1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICAgIHwgICA2ICsKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAgICAgIHwgICA0ICstCiAuLi4vVUlQ
cm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaCB8ICAgMiArLQogLi4u
L0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcCAgfCAxNDIgKysr
CiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggICB8ICAg
MiArLQogLi4uL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCAg
fCAxNTMgKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lmgg
ICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJv
eHkuaCAgICAgIHwgIDEwICstCiAuLi4vVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbiAgICAgICB8ICAgNyArCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuY3BwICAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9U
ZXh0Q2hlY2tlcldQRS5jcHAgICAgfCAxNDEgKysrCiAuLi4vV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCB8IDE1NiArKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAgICB8ICA2NCArKwogLi4uL1VJUHJvY2Vzcy93
cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcCAgICAgICAgfCAgNTUgKysKIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIHwgIDg3ICsrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcCB8IDE2MyArKysrCiBT
b3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggICAgICAgICAgICAgICAgICAgICB8ICAgMiAr
LQogLi4uL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCAgfCAg
IDIgKy0KIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgICAgICAg
IHwgICA5ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oICAgICAg
ICAgIHwgICAyICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3Bw
ICAgICAgIHwgIDI3ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aCAgICAgICAgIHwgICA4ICsKIC4uLi9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVD
bGllbnRXUEUuY3BwIHwgIDU4ICsrCiAuLi4vV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNs
aWVudFdQRS5jcHAgICAgICB8IDI0NiArKysrKysKIC4uLi9XZWJDb3JlU3VwcG9ydC93cGUvV2Vi
UG9wdXBNZW51V1BFLmNwcCAgICAgICAgIHwgIDM4ICsKIC4uLi9UaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdC5jcHAgICAgICAgICAgIHwgICA0ICstCiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgICAgICB8ICAgMiArLQogU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCAgICAgICAgfCAgIDIgKy0KIC4uLi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAgIHwgIDQ4ICsrCiAuLi4v
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCAgICB8ICA1MCArKwog
Li4uL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwICAgICAgfCAxOTIg
KysrKysKIC4uLi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmggICAgICAg
IHwgIDkzICsrCiAuLi4vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5j
cHAgICB8ICA0OCArKwogLi4uL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BF
LmNwcCAgICAgfCAgNDUgKwogLi4uL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQ
YWdlV1BFLmNwcCAgfCAgOTggKysrCiAuLi4vV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9j
ZXNzTWFpbldQRS5jcHAgICB8ICA3OSArKwogU291cmNlL1dlYktpdDIvY29uZmlnLmggICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KIFNvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Vi
a2l0LnBjLmluICAgICAgICAgICAgICAgIHwgIDExICsKIFNvdXJjZS9jbWFrZS9GaW5kTGliR0JN
LmNtYWtlICAgICAgICAgICAgICAgICAgICAgIHwgIDQ2ICsKIFNvdXJjZS9jbWFrZS9GaW5kV1BF
QmFja2VuZC1tZXNhLmNtYWtlICAgICAgICAgICAgIHwgIDQ3ICsKIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZSAgICAgICAgICAgICAgICAgIHwgIDQ3ICsKIFNvdXJjZS9jbWFrZS9P
cHRpb25zV1BFLmNtYWtlICAgICAgICAgICAgICAgICAgICAgIHwgMTM4ICsrKwogVG9vbHMvQnVp
bGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNoaXZlICAgICAgfCAgIDggKy0KIFRvb2xz
L0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUgICAgICAgIHwgICA0ICstCiBU
b29scy9DTWFrZUxpc3RzLnR4dCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNSAr
CiBUb29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UgICAgICAgICAgICAgICAgICB8ICAg
MSArCiBUb29scy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlICAgICAgICAgICAgICAgICB8
ICAgMiArLQogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgICAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDEgKwogVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyICAgICAgICAg
ICAgICAgfCAgIDIgKy0KIFRvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQg
ICAgICAgICAgIHwgICA1ICstCiBUb29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicyAg
ICAgICAgICAgICAgICB8ICAyNCArCiBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gICAgICAg
ICAgICAgICAgICAgICAgICB8ICAzMCArLQogVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1
cmVMaXN0LnBtICAgICAgICAgICAgfCAgMzIgKy0KIC4uLi93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weSAgICAgIHwgICAyICstCiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvZmFjdG9yeS5weSAgICAgICAgICAgICB8ICAgNCArCiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvd3BlLnB5ICAgICAgICAgICAgICAgICB8ICA3OCArKwogVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAgICAgfCAgNjAgKysKIC4uLi93cGUvSW5q
ZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCAgICAgICAgICAgIHwgIDM1ICsKIFRvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcCAgIHwgIDY5ICsrCiBUb29s
cy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCAgICAgICAgICAgICAgICAgICB8ICAzMiArCiAu
Li4vSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwICAgICB8ICAgMiAr
LQogLi4uL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmggICAgICAgfCAg
IDIgKy0KIC4uLi9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcCAgICAg
IHwgICAyICstCiAuLi4vSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oICAg
ICAgICB8ICAgMiArLQogLi4uL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5jcHAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
VGVzdFJ1bm5lci5oIHwgICAyICstCiAuLi4vd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BF
LmNwcCAgICAgICAgICAgICB8ICA3MSArKwogLi4uL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
V1BFLmNwcCAgICAgICAgICAgICAgfCA5NTkgKysrKysrKysrKysrKysrKysrKysrCiAuLi4vSW5q
ZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3BwICAgICAgICB8IDE0NSArKysrCiAu
Li4vSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcCAgICAgICB8ICAzNSAr
CiAuLi4vSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwICAgICAgICAgICB8ICA1
NyArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZSAgICAgICAgICAg
fCAgNDcgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaCAgICAgICAg
ICAgfCAgIDUgKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAgICAg
ICAgICAgfCAgIDIgKy0KIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJv
eHlXUEUuY3BwIHwgMTIxICsrKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NW
aWV3QmFja2VuZC5jcHAgfCAyNTAgKysrKysrCiBUb29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9I
ZWFkbGVzc1ZpZXdCYWNrZW5kLmggICB8ICA3MSArKwogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCAgfCAxNDAgKysrCiBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgICB8IDEzOSArKysKIFRvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL21haW4uY3BwICAgICAgICAgICAgICAgIHwgIDM0ICsKIFRvb2xzL2poYnVp
bGQvamhidWlsZC13cmFwcGVyICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIFRvb2xzL3dw
ZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5IHwgIDc3ICsrCiBUb29s
cy93cGUvamhidWlsZC5tb2R1bGVzICAgICAgICAgICAgICAgICAgICAgICAgICB8IDI0NiArKysr
KysKIFRvb2xzL3dwZS9qaGJ1aWxkcmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg
IDI1ICsKIC4uLi9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gg
IHwgMTMzICsrKwogLi4uZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIu
cGF0Y2ggfCAgMzAgKwogLi4uZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1m
aXgucGF0Y2ggfCAgMzkgKwogLi4udGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdh
cm5pbmcucGF0Y2ggfCAgMjkgKwogVG9vbHMvd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5w
YXRjaCAgICAgICAgICAgfCAgMzQgKwogLi4udWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9w
ZW5TU0wtMS4xLjAucGF0Y2ggfCAyMzYgKysrKysKIC4uLmNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIHwgIDM3ICsKIC4uLm11eC1leHBvc2Utc3RyZWFtcy13
aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoIHwgMTMzICsrKwogLi4uZ3N0LXBsdWdpbnMtZ29v
ZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2ggfCAxNDYgKysrKwogLi4uT25seS1wdXNo
LWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2ggfCAgMzIgKwogMjAxIGZpbGVz
IGNoYW5nZWQsIDEwODk1IGluc2VydGlvbnMoKyksIDk2IGRlbGV0aW9ucygtKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307721</attachid>
            <date>2017-04-21 05:04:37 -0700</date>
            <delta_ts>2017-04-21 07:03:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>503320</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2MjkzY2NmMDlkLi5hYWFhZTRmZGRlZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRX
UEVCYWNrZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2U6IEFkZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51
bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURF
UlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTUxN2Y0NmNiYjMuLmE2NTZiYTczNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOiBBZGRlZC4KKyAgICAgICAgKiBzaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisK
IDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4gV2ViS2l0RlMg
YW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZjZhZjkyY2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMjMgQEAKK2xpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1dURl9ESVJ9
CispCisKK3NldChXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlMKKyAgICBBUEkv
SmF2YVNjcmlwdC5oCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisg
ICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5
cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvV2ViS2l0QXZhaWxhYmls
aXR5LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSkFWQVNDUklQVENPUkVf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL0phdmFTY3JpcHRDb3JlIgorICAgIENPTVBPTkVOVCAi
RGV2ZWxvcG1lbnQiCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMzE4M2Ey
YjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMyBAQAorbGlzdChBUFBFTkQgSlNDX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5kZXgg
NmE0YzE4MGZhYWMuLjBkMTgxMGQ0OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oOgorICAgICAgICBBbGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
cHJvdmlkZSBYMTEgbGlicmFyaWVzLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5H
X0hFQURFUlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5
ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVm
IHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1hcF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5
cGVkZWYgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIAotI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkg
fHwgZGVmaW5lZChVU0VfV1BFKQogCiB0eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlU
eXBlOwogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjZGQyNzgx
NzA0Mi4uZTRiYzM5MzU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBX
UEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA0
LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBub3RGb3Vu
ZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjUwNGQwNmM3Ni4uMzUyNWRlYjQ1NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBt
b3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQ
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxp
dHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS93cGUvRXZl
bnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhy
ZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUu
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVi
b2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVl
bldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Nj
cm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAxNy0wNC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIG9ic2N1
cmVkIGluc2V0cyB0byB3ZWIgY29udGVudCAoYXMgInNhZmUgYXJlYSBpbnNldHMiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2Y1NmYyZWE0Y2MuLjZlOWJhYjAxYTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybVdQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDQtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIEFsbG93IGN1c3RvbWl6aW5nIEgyNjQgZW5jb2RlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc3NWMxODk4NGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCisgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQu
Y3BwCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjM3OTVmNGNiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjg2IEBACitpbmNsdWRlKHBsYXRmb3Jt
L0dTdHJlYW1lci5jbWFrZSkKK2luY2x1ZGUocGxhdGZvcm0vSW1hZ2VEZWNvZGVycy5jbWFrZSkK
K2luY2x1ZGUocGxhdGZvcm0vTGludXguY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJv
ZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAg
ICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RG
X0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3Np
YmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VT
b3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAg
IHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3Jh
cGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKworICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9U
aGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9JbXBsLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJm
YnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05h
dGl2ZUltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3Bw
CisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAKKworICAgICMgRklYTUU6IFNwbGl0IGJ1aWxkIHRhcmdlcnMgYmVsb3cgaW50
byBhIFdlYkNvcmVQbGF0Zm9ybSBsaWJyYXJ5CisgICAgZWRpdGluZy93cGUvRWRpdG9yV1BFLmNw
cAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ2xp
Yi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2ds
aWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFy
ZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAor
ICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0lj
b25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JX
UEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BF
LmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKworICAgIHBsYXRm
b3JtL3hkZy9NSU1FVHlwZVJlZ2lzdHJ5WGRnLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJv
bHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRf
U0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJP
X0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJB
UklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJ
RVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30K
KyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtM
SUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJ
QlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdM
X0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJF
RVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05V
VExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElC
U09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9J
TkNMVURFX0RJUlN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
KyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBjcnlw
dG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
U0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuY3Bw
CisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAgICAg
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1Q
QktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlSU0FH
Q3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAgICAg
ICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAgY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNw
cAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE1OWQ1Y2NjNDIyLi4z
MWEyMWZhYjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRlZiBz
dHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBMQVRG
T1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExMSw2ICsxMTEzLDggQEAgcHJv
dGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVy
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1l
bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5kZXgg
ZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggM2MxNTdlZjZkODguLjA1ZTkxYmZm
MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDE2NTJiNmRiMzkzLi4zNmI5NmIyYmNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZmQyZGUxZTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKFBhc3RlYm9hcmQmIHBhc3Rl
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkKK3sKKyAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzKCk7CisgICAgaWYgKHR5
cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAodHlwZXMu
Y29udGFpbnMoInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IikgJiYgZnJhbWUuZG9jdW1lbnQoKSkg
eworICAgICAgICBTdHJpbmcgbWFya3VwID0gcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L2h0
bWw7Y2hhcnNldD11dGYtOCIpOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBt
YXJrdXAsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0aW5nQW5kUGx1Z2luQ29udGVudCkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIGlm
ICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHR5
cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAgICAgICBjaG9z
ZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJvYXJkLnJlYWRT
dHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQoreworICAgIFBhc3RlYm9hcmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAg
IHBhc3RlYm9hcmRDb250ZW50LnRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsK
KyAgICBwYXN0ZWJvYXJkQ29udGVudC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFu
Z2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25M
b2NhbFVSTHMpOworICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQor
Cit2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVi
b2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJh
bmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9z
ZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdl
LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6
UGFzdGVkKSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBs
YWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2OTU3Yzg3ODRmYy4uZWRlOTQwMTczOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6
c2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWRjZDg1ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFt
ZSgmbV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwg
RnJhbWUqLCBIaXRUZXN0UmVzdWx0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkFsdEtleTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAu
LjVlOTExZDcwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBA
QCB1c2luZyBQbGF0Zm9ybUN1cnNvciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBOU0N1cnNvciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1
c2luZyBQbGF0Zm9ybUN1cnNvciA9IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCAxOTU3MjFiMWZkYS4uZjM2M2ZhZjU1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpT
ZWxlY3Rpb25EYXRhKiBEcmFnRGF0YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQy
Li5jYmVmNzM4ZjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1Mg
TlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyAr
NjQsNyBAQCB0eXBlZGVmIFJldGFpblB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBl
ZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4p
CiB0eXBlZGVmIEhCSVRNQVAgRHJhZ0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2Vs
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IERyYWdJbWFnZVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmgKaW5kZXggZjEyNjhhNjhkMmQuLjFkMTIzNmFhN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBmaWxlc0hhdmVTYW1lVm9sdW1lKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9u
RGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3
NzhjYWMyZDk4Yi4uZGRhNjgyZWI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFk
U2hhcmVkVGltZXImIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gaW5zdGFuY2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpCiBNYWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFy
ZWRUaW1lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWlu
VGhyZWFkU2hhcmVkVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCmluZGV4IDU5MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fZmlyZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRo
cmVhZFNoYXJlZFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGI5NGQ3MGExZjZhLi45YzE0YmEyN2M5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlh
bGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBl
LCBJbmNsdQogLy8gRm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0
ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKLSNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAh
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdF
QkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsK
QEAgLTgwLDYgKzgwLDEwIEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3Ry
aW5nIHRleHQ7CiAgICAgU3RyaW5nIG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRT
dHJhdGVneS5oCmluZGV4IGU4OGE0ODkxMTgzLi45OWQ3NWY0ZWJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTY5LDEwICs2OSwxOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgU2VsZWN0aW9uRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRh
PiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwg
dm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAzN2E3OTE4M2Y2Yy4uZjNlNDMwNDNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNT
IE5TUGFzdGVib2FyZDsKIE9CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKQEAgLTUyLDcgKzU2LDcgQEAgc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogY2xhc3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDUsNiArMTA5LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
CmluZGV4IDViYWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgc2VjdXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJh
Ym91dCIpOwogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAg
ICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdl
dCgpLmFkZCgicmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKaW5kZXggNTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaApAQCAtNjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtD
b250YWluZXI7CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYK
KwogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
QXVkaW9CdXNHTGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAK
QEAgLTI3LDExICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5l
IEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dl
YmtpdHdwZS9yZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IHBhdGgoZ19zdHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMi
LCBuYW1lKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJ
T19HUkVTT1VSQ0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRh
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAg
cmV0dXJuIGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRh
dGEuZ2V0KCksIG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwg
c2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCmluZGV4IDZmYTNlYTc3MWYzLi44M2QzMmUxMzhmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMs
OSBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJ
UiwgIndwZSIsIG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dT
KQogICAgIEhNT0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIq
PihzaGFyZWRSZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
aW5kZXggOTExNGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xF
UzIvZ2wyLmg+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5E
KSB8fCBQTEFURk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KGVnbENvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCmluZGV4IDJjMGVhMjdlMTkzLi4wNDY5ZWI1MzNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDEzIEBA
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGaW5kIHNvbWUgd2F5IHRvIGRl
ZHVjZSB0aGlzLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0u
aD4KKyNlbHNlCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xO
YXRpdmVXaW5kb3dUeXBlIEdMTmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2
NF90IEdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUy
NTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTl9DQUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgR0x1aW50OwogI2VuZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVy
czsKIAotI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdM
X0VTXzIpKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTEVTOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9l
eHRlbnNpb25zOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTEVTU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaAppbmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hp
bXNfaAogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJh
bWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1
cmUyREVYVCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZl
ckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0Zy
YW1lYnVmZmVyRVhUIGdsSXNGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhU
IGdsR2VuZXJhdGVNaXBtYXAKICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQ
VEhfQVRUQUNITUVOVAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1Jf
QVRUQUNITUVOVDAKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1F
QlVGRkVSX0NPTVBMRVRFCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZF
UgogI2RlZmluZSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKaW5kZXggNjdlZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQy
LDYgKzQyLDEwIEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAt
MTAwLDYgKzEwNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1EaXNwbGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4o
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCmluZGV4IGY3NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYg
KzU0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMy
NmFjZi4uOWZlNzU1ZmM1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBl
OjpXUEUpIHsKKyAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxh
dGZvcm1EaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRp
ZgorCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUx
LDYgKzI1OCw5IEBAIEdMQ29udGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29u
dGV4dEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMz
NTk3ZDdiLi45YTAzM2ZlYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3
bF9lZ2xfd2luZG93OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0
eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03
Myw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYm
LCBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQo
KTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxh
eSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2F5bGFuZENvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29u
dGV4dCA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZh
Y2VXYXlsYW5kKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dEVHTD4gY3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNo
YXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4
LDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+
IG1fd2xTdXJmYWNlOwogICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVs
bHB0ciB9OwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5k
aWYKICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBu
dWxscHRyIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjlmM2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
TENvbnRleHRFR0wuaCIKKworI2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQ
bGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4
dCkKK3sKKyAgICBhdXRvIG9mZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxh
eVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBjcmVhdGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZl
V2luZG93KCksIHBsYXRmb3JtRGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250
ZXh0KQorICAgICAgICBjb250ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFy
Z2V0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ry
b3lXUEVUYXJnZXQoKQoreworICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDJiZjExZWExYmQ3Li4yOTE3MzQzNmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xD
b250ZXh0RUdMLmgiCisjZW5kaWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9l
Z2wuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5E
KQogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFw
aS5oIG1heSBpbmNsdWRlIGVnbHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gK
QEAgLTQzOSw2ICs0NDMsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjplbnN1cmVHc3RHTENvbnRleHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xf
RElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4oc2hhcmVkRGlzcGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlm
CisKICAgICAgICAgQVNTRVJUKG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi4xMjY1
ZTAwMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMzYsNiArMjM2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRl
eHR1cmUoKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorICAgIDo6Z2xGbHVzaCgpOworI2VuZGlmCiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9j
b21wb3NpdG9yVGV4dHVyZSk7CiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlh
dGVUZXh0dXJlKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CkBAIC0zOTgsNyArNDAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5
aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAg
dmFyaWFibGVzLnB1c2hfYmFjayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFy
eWluZ1ZlY3RvcnMgPSAwOwotI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oR1RLKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxv
YXRzKTsKICAgICBtYXhWYXJ5aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1h
Z2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sK
KyAgICBzdGQ6OmZwcmludGYoc3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZv
cm0gcmVzb3VyY2UgJyVzJ1xuIiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6
Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBk
ZWZhdWx0OworCitQbGF0Zm9ybURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQorewor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9i
YWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAg
bV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0
X25hdGl2ZV9kaXNwbGF5KG1fYmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlX
UEU6IGNvdWxkIG5vdCBjcmVhdGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxh
dGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+
KCp0aGlzLCBjbGllbnQsIGhvc3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVF
R0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZnNjcmVlblRhcmdldD4oKnRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6RUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNr
ZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKwor
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQg
c19jbGllbnQgPSB7CisgICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxFR0xUYXJnZXQqPihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQu
ZnJhbWVDb21wbGV0ZSgpOworICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsK
K30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0
aWFsaXplKG1fYmFja2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgo
MCwgc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xO
YXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5k
b3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2dldF9uYXRpdmVfd2luZG93KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwg
c2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5k
KTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJl
ZCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJl
ZChtX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdl
dDo6RUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkK
K3sKKyAgICBtX3RhcmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2NyZWF0ZSgpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2luaXRpYWxpemUobV90YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQor
eworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
bV90YXJnZXQpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMT2Zmc2NyZWVuVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRv
dyhtX3RhcmdldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBM
QVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2Y4Y2ZkOTk4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtRGlzcGxheVdQRV9oCisjZGVmaW5lIFBsYXRmb3JtRGlzcGxheVdQRV9oCisK
KyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2Rl
ZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0IHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
dGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIEludFNp
emU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisKKyAg
ICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50IHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxldGUo
KSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlz
cGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAgICAg
ICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVXaW5k
b3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNvbnN0
IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAgICB2
b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBsYXRm
b3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50OworICAg
ICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5kOwor
ICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOworICAg
ICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlw
ZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7CisgICAg
fTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChFR0xU
YXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVlblRh
cmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEU7
IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19QTEFU
Rk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCisjZW5kaWYgLy8gUGxhdGZvcm1EaXNwbGF5V1BFX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXpl
ZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0
cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzVk
N2ZjNTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9M
b2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiX1NlYXJj
aCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBUTFMgY2VydGlmaWNh
dGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApAQCAt
MCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRTdHJh
dGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9vbCBQYXN0ZWJvYXJk
OjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlzdCBvZiB0eXBlcyBm
b3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVzLmlzRW1wdHkoKTsK
K30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30KKworU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9t
UGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHR5cGUs
IHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRleHQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdXJsLnVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30K
KworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmKQorewor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNGYzOGUx
MWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5
cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAg
ICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5n
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjlmNDM0NmEwMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFz
dGVib2FyZC5oIgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2luY2x1ZGUg
PG1hcD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRm
b3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0
ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30K
KworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0
ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9w
YXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3Zl
Y3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2Fy
ZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgp
KTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3Rl
Ym9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
aW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQs
IHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUo
c3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4
dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4
KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsK
KyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7
IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihw
bGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0
LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6
ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVu
Z3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFp
cnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7
CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAg
ICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9w
YXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5k
YXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
aW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5n
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAg
bWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJv
YXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50
eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdl
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2
NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDAp
OworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5MDc1NzM0ZTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiVXNlckFnZW50U2NyaXB0cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5k
ZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYg
dGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0
aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2Vu
dFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNT
Y3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xMjJhMDg5NzgwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJUaGVtZVdQRV9oCisjZGVmaW5lIFJlbmRlclRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRoZW1lV1BFKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNo
ZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgp
IG92ZXJyaWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQs
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclRoZW1lV1BFX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlmZTVkNGQ4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFy
VGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQor
CitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK1Nj
cm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRp
YyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9s
bGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRk
OGIwMzE2ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lV1BF
X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVXUEVfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhT
Y3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xs
YmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFy
UGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVt
ZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3YTQ1OTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7Cit9CisKK0xlbmd0
aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21lZFNpemUud2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNr
Ym94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcmV0dXJuIExlbmd0aFNpemUg
eyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhlZCkgfTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gVGhlbWU6OmNvbnRyb2xTaXplKHBh
cnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKK30KKwordm9pZCBUaGVt
ZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQg
em9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkKK3sKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgcGFpbnRDaGVja2JveChzdGF0
ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRpbyhzdGF0ZXMsIGNvbnRleHQsIHpv
b21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3Qs
IHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9v
bWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIs
IGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRl
ZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwgMjI0
KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tl
VGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQs
IDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRlcy5z
dGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBhdXRvJiBy
ZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7Cisg
ICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50KHJlY3QueCgpICsgMywgcmVjdC5t
YXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHJl
Y3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAgICAgICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig4
NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlUGF0aChjaGVja2VyUGF0aCk7Cisg
ICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZEVsbGlwc2Uoem9vbWVkUmVjdCk7
CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsK
KyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygp
ICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIEZsb2F0UmVjdCBjaGVj
a2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNrZXJSZWN0LmluZmxhdGUoLTMpOwor
CisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZEVsbGlw
c2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0Io
ODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKGNoZWNrZXJQYXRoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIp
OworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsK
KworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6
OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0NCkgOiBtYWtlUkdCKDIyNCwgMjI0
LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvcik7CisgICAgY29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29u
dGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kZjA4MWIzYTdhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaGVtZVdQRV9o
CisjZGVmaW5lIFRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVibGljOgorICAg
IFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKworICAgIHZpcnR1
YWwgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVz
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQg
cGFpbnRSYWRpbyhDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFRoZW1lV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKK3sK
KyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJU
KCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0Owor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmJlNGFhY2U5OGQuLjQwZmE5NzZhZjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlzdHMu
d2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1sCisK
KyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0o
V1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNpZmljIGFkZGl0aW9u
cyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVt
b3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5LgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAgICAqIFBsYXRmb3Jt
V1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICog
U2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
U2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy93cGUvV2Vi
S2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAgICAqIFNoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
aDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAgICAg
ICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaDoK
KyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAgICAgICAqIFNoYXJl
ZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oOgor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAgICog
U2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291
cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC93
cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL05hdGl2ZVdl
YlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50
V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcDog
QWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElD
YXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
U2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL0Nv
bXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3Np
dGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJ
bXBsLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVudElt
cGwuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHA6
IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaDogQWRkZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbDogQWRkZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVj
dG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHA6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHA6IEFkZGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJQYXN0ZWJvYXJkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHA6
CisgICAgICAgICogVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nl
c3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dl
YlByZWZlcmVuY2VzV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5o
LgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQ
RS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8u
aC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGll
bnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dw
ZS9XZWJQb3B1cE1lbnVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFn
ZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5o
LgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmg6
IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlX
UEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZv
LmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDogQ29waWVkIGZy
b20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mvd3BlL1dl
YlByb2Nlc3NNYWluV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViS2l0MlBy
ZWZpeC5oLgorICAgICAgICAqIGNvbmZpZy5oOgorICAgICAgICAqIHdwZS93cGUtd2Via2l0LnBj
LmluOiBBZGRlZC4KKwogMjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxlbkB5
YW5kZXgucnU+CiAKICAgICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJTX0RJ
UiBpbiBXZWJLaXRGUyBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5Mzg5
MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9n
bGliL0dTb2NrZXRNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMv
Z2xpYi9HU29ja2V0TW9uaXRvci5jcHAKQEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0TW9u
aXRvcjo6c3RhcnQoR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBSdW5M
b29wJiBydW4KICAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJLaXRd
IFNvY2tldCBtb25pdG9yIik7CiAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwog
ICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxHU291cmNlRnVuYz4oc29ja2V0U291cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsKKyNp
ZiBQTEFURk9STShXUEUpCisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgp
LCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2gobV9z
b3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFpbkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4NGYwZTRl
ZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSw0NzAgQEAKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9KQorCitjb25maWd1cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAke0NN
QUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJraXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9ucygt
RFdFQktJVDJfQ09NUElMQVRJT04pCisKK2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9IiR7
TElCRVhFQ19JTlNUQUxMX0RJUn0iKQorCitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURFUiBP
TikKKworYWRkX2N1c3RvbV90YXJnZXQod2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMKKyAg
ICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElSfSAt
LW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZv
cm0gc291cAorKQorCitzZXQoV0VCS0lUMl9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJraXQy
d3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NPVVJD
RVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAKKykK
KworbGlzdChBUFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNz
L0VudHJ5UG9pbnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5E
IERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQv
dW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX1NP
VVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0
b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0
d29ya0NhY2hlQ29kZXJzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3Jr
Q2FjaGVEYXRhU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJ
T0NoYW5uZWxTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRh
c2tTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291
cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKyAg
ICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3b3Jr
UHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBsYXRm
b3JtL2NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCisKKyAg
ICBQbGF0Zm9ybS9nbGliL01vZHVsZUdsaWIuY3BwCisKKyAgICBQbGF0Zm9ybS9JUEMvZ2xpYi9H
U29ja2V0TW9uaXRvci5jcHAKKworICAgIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRVbml4
LmNwcAorICAgIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorCisgICAgUGxh
dGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9y
eVVuaXguY3BwCisKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclByb3h5
VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNw
cAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAgIFNo
YXJlZC9BUEkvYy9jYWlyby9XS0ltYWdlQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVudGlj
YXRpb24vc291cC9BdXRoZW50aWNhdGlvbk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAgIFNo
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKwor
ICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRH
cmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0b3Iu
Y3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1Ro
cmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9OZXRz
Y2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fpcm8v
U2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGli
LmNwcAorCisgICAgU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKworICAg
IFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVkL3Nv
dXAvV2ViRXJyb3JzU291cC5jcHAKKworICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4u
Y3BwCisKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisgICAg
U2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0
aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZl
bnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCisg
ICAgU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mv
V0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkv
Qy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJvLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3Nv
dXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tW
aWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
Y3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAgICBV
SVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dw
ZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAgICBV
SVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0NvbnRy
b2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUuY3Bw
CisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorICAg
IFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisKKyAgICBVSVBy
b2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCisKKyAg
ICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAK
KworICAgIFVJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAorCisg
ICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAgIFVJ
UHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAgIFVJ
UHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFTdG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3MvY2Fp
cm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0luc3Rh
bGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNz
L2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvbGlu
dXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29v
a2llTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9v
bFNvdXAuY3BwCisKKyAgICBVSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAgIFVJ
UHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9X
ZWJQYWdlUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlX
UEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBVSVBy
b2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29raWVz
L3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3Nv
dXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNzL01l
ZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3Bw
CisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAK
KworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNwcAor
ICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29v
cmRpbmF0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAg
IFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAor
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcAor
CisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvV2ViUGFnZVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVx
dWVzdElucHV0U3RyZWFtLmNwcAorICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5j
cHAKKworICAgIFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAgIyBG
SVhNRS1HV1NIQVJFOgorICAgIERhdGFiYXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNzTWFp
bkd0ay5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAg
IFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisp
CisKK2xpc3QoQVBQRU5EIFdlYktpdDJfREVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworKQor
CitzZXQoV2ViS2l0MlJlc291cmNlcworKQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICBs
aXN0KEFQUEVORCBXZWJLaXQyUmVzb3VyY2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFsaWFz
PVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29tcG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitlbmRp
ZiAoKQorCitmaWxlKFdSSVRFICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQy
UmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBlbmNv
ZGluZz1VVEYtOD8+XG4iCisgICAgIjxncmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNvdXJj
ZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdwZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktpdDJS
ZXNvdXJjZXN9CisgICAgIiAgICA8L2dyZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2VzPlxu
IgorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBF
TkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291
cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVy
YXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVzb3Vy
Y2VzIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElS
fS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFU
SU0KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7
Rk9SV0FSRElOR19IRUFERVJTX0RJUn0iCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCisg
ICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0v
cGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5p
eCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3Nv
dXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgor
ICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9OZXR3b3JrUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9J
UEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2NsYXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1No
YXJlZC9BUEkvYy93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgorICAg
ICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAgICIk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93
cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29s
cy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNz
L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYvZ3Rr
LyIKKyAgICAiJHtXVEZfRElSfS93dGYvZ29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAgICAk
e0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGUkVF
VFlQRTJfSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtHU1RS
RUFNRVJfSU5DTFVERV9ESVJTfQorICAgICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAgICR7
TElCU09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitsaXN0
KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7
RlJFRVRZUEUyX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NUUkVB
TUVSX0xJQlJBUklFU30KKyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7V1BFX0xJQlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZpbGVz
CisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0
aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvKi5q
cworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29udHJvbGxlcnMvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NNQUtF
X1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyou
Y3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRl
cm5hbC9Db2RlTWlycm9yLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtDTUFL
RV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5h
bC9Fc3ByaW1hLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJDRV9E
SVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5zdmcK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL01vZGVscy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAgICAk
e0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rl
c3QvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0
dGVyLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9CIElu
c3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzCisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKworIyBE
ZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENv
bW1hbmRzLmpzIGlzCisjIGV4cGVjdGVkIGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvLgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBV
VCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklWRURf
U09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29t
bWFuZHMuanMKKyAgICBDT01NQU5EIGNwICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JF
X0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURfU09V
UkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9y
QmFja2VuZENvbW1hbmRzLmpzCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQg
JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VC
dW5kbGUueG1sCisgICAgREVQRU5EUyAke0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQorICAg
ICAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJm
YWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAgJHtU
T09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cisg
ICAgQ09NTUFORCAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2Ut
bWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVSSVZF
RF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNw
ZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2Nv
bW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0v
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENP
TU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01B
S0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVSSVZF
RF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNf
V0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwK
KyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJj
ZUJ1bmRsZS5jCisgICAgREVQRU5EUyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFnZUlu
ZGV4Lmh0bWwKKyAgICBDT01NQU5EIGdsaWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAt
LXNvdXJjZWRpcj0ke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250
LWVuZCAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktp
dDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCisp
CisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMK
KyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS5jCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9X
ZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BFV2Vi
SW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQor
KQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RP
UklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdlYklu
c3BlY3RvclJlc291cmNlcyBTSEFSRUQgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZF
RF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRlbmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFdl
YktpdDIpCit0YXJnZXRfbGlua19saWJyYXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzICR7
V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9kaXJl
Y3RvcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVjdG9y
UmVzb3VyY2VzX0lOQ0xVREVfRElSRUNUT1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdlYklu
c3BlY3RvclJlc291cmNlcyBERVNUSU5BVElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKworc2V0
KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQv
QVBJL2MvV0tBcnJheS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFzZS5o
CisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGF0YS5oCisgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAke1dFQktJ
VDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tFdmVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRmlu
ZE9wdGlvbnMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmgK
KyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tJbWFnZS5oCisgICAgJHtXRUJLSVQy
X0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0YWJsZUFycmF5LmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQ
YWdlTG9hZFR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlVmlz
aWJpbGl0eVR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1cml0
eU9yaWdpblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VSTC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL1dLVVJMUmVxdWVzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJM
UmVzcG9uc2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50
SW5qZWN0ZWRGcmFtZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJD
b250ZW50VVJMUGF0dGVybi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNl
clNjcmlwdEluamVjdGlvblRpbWUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9j
L3dwZS9XS0Jhc2VXUEUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3
YXJkTGlzdEl0ZW0uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgK
KyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlRnJhbWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rv
ci5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmgKKyAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VCYW5uZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50
LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VH
cm91cC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQb2xp
Y3lDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL2MvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50LmgK
KyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUmFuZ2VIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dERvd25sb2FkQ2xp
ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlzdG9y
eUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dElu
amVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
V0tDb250ZXh0LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVN
YW5hZ2VyLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFs
LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlwZXMu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbnRleHRNZW51Q2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQb2xpY3lDbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9n
cmVzc0V2ZW50cy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJ
Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2Fk
UG9saWN5LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNl
c1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRl
UmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVudENv
bnRyb2xsZXJSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJT
Y3JpcHRSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0
QXR0cmlidXRlcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2luZG93
RmVhdHVyZXNSZWYuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZS9X
S1ZpZXcuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29r
aWVNYW5hZ2VyU291cC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dFQktJ
VF9IRUFERVJTfQorICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0v
d3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9XUEUvV2ViS2l0IgorICAgIENPTVBPTkVOVCAiRGV2ZWxv
cG1lbnQiCispCisKK3NldChXUEVfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5T
VEFMTEVEX0hFQURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURF
RElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRSIKKyAgICBDT01QT05FTlQgIkRldmVsb3Bt
ZW50IgorKQorCitpbnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5w
YworICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWciCisg
ICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dlYktpdDIv
U2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3ODc3NGEu
LmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRl
LWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6U3Bl
Yzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFscGF0
aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4uIikpOwot
bXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNv
b3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAi
c291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIsICJjb2Nv
YSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwgImd0ayIs
ICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29ya3MgPSAo
IkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBlZFByZWZp
eGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VN
YWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8K
IAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJ
L2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9oCisjZGVm
aW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNs
dWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYK
KwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRp
ZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQ
SS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhODQxMTdmNDVjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQu
aApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJLaXRfaAorI2RlZmluZSBXUEVfV2ViS2l0X2gK
KworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGF0YS5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0RpY3Rpb25hcnku
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0dl
b21ldHJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTXV0YWJsZUFycmF5Lmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLTXV0YWJsZURpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOdW1iZXIu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZWN1cml0eU9yaWdpblJlZi5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS1N0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tVUkwuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXF1ZXN0Lmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVu
dEluamVjdGVkRnJhbWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNjcmlwdEluamVjdGlv
blRpbWUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jLworI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZS5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJh
Y2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVGaWxlSGFuZGxl
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSW5p
dGlhbGl6ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluc3BlY3Rvci5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVOb2RlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VCYW5uZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUZvcm1D
bGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VHcm91cC5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQ
YWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnQu
aD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50Lmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlUmFuZ2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVTY3JpcHRX
b3JsZC5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQworI2luY2x1
ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tCYWNrRm9yd2FyZExpc3RSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tDb250ZXh0Q29uZmln
dXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHQuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tDcmVkZW50aWFsLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbFR5cGVz
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFt
ZUluZm9SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZVBvbGljeUxpc3RlbmVyLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05h
dmlnYXRpb25BY3Rpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGF0YVJl
Zi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQYWdlQ29u
ZmlndXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91cC5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQcmVmZXJlbmNlc1JlZi5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1Nlc3Npb25TdGF0ZVJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJT
Y3JpcHRSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLV2luZG93RmVhdHVy
ZXNSZWYuaD4KKworI2VuZGlmIC8vIFdQRV9XZWJLaXRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBv
c2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAppbmRleCA4YWNm
NTA2OTIxMC4uMjI0Mzg4ZWVjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3Au
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVh
ZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC03NSw3ICs3NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgV29ya1F1ZXVlUG9vbCgpCiAgICAgewotI2lmIFBMQVRGT1JN
KEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAgICAgbV90aHJl
YWRDb3VudExpbWl0ID0gMTsKICNlbHNlCiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IHN0
ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21w
b3NpdGluZ1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBo
aWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAppbmRleCA4MTZkNDY3
YjUxMC4uNjQ1ZDdiOTBkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNv
bXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKIAorI2luY2x1ZGUgPGZ1bmN0aW9uYWw+
CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29uZGl0aW9uLmg+CiAj
aW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBv
c2l0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXggNTRkOTYwYjNkMGUu
Ljk2ZDI5NjZiZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtNDMsMTIgKzQzLDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVmPFRocmVhZGVkQ29t
cG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBjbGllbnQsIGNvbnN0
IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2
ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFw
cGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBUaHJl
YWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgV2ViUGFnZSYgd2ViUGFnZSwg
Y29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3Qg
bmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1
cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBUaHJlYWRlZENvbXBvc2l0b3IoY2xpZW50LCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9y
LCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQsIHdlYlBhZ2UsIHZp
ZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJhbWVTeW5j
LCBwYWludEZsYWdzKSk7CiB9CiAKLVRocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3Np
dG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNj
YWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3lu
YyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQorVGhy
ZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIFdlYlBh
Z2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0
b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJh
bWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCiAgICAgOiBtX2Ns
aWVudChjbGllbnQpCiAgICAgLCBtX3ZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNpemUpCiAgICAgLCBt
X3NjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKQpAQCAtNjQsMTMgKzY0LDIxIEBAIFRocmVhZGVkQ29t
cG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydFNpCiAgICAgbV9jbGllbnRSZW5kZXJzTmV4dEZyYW1lLnN0b3JlKGZhbHNlKTsK
ICAgICBtX2Nvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9uV2l0aENsaWVudC5zdG9yZShmYWxzZSk7
CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV9jb21wb3NpdGluZ01hbmFnZXIuZXN0YWJsaXNo
Q29ubmVjdGlvbih3ZWJQYWdlKTsKKyNlbmRpZgorCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3At
PnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7
CiAgICAgICAgIG1fc2NlbmUgPSBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5l
KHRoaXMpKTsKKyNpZiBQTEFURk9STShHVEspCiAgICAgICAgIGlmIChtX25hdGl2ZVN1cmZhY2VI
YW5kbGUpIHsKICAgICAgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwogICAgICAgICAgICAgbV9z
Y2VuZS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIG1fc2Nl
bmUtPnNldEFjdGl2ZShmYWxzZSk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgICAgIG1fc2Nl
bmUtPnNldEFjdGl2ZSh0cnVlKTsKKyNlbmRpZgogICAgIH0pOwogfQogCkBAIC04MSw2ICs4OSw4
IEBAIFRocmVhZGVkQ29tcG9zaXRvcjo6flRocmVhZGVkQ29tcG9zaXRvcigpCiB2b2lkIFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKKworI2lmIFBMQVRGT1JNKEdUSykKICAgICBBU1NFUlQobV9uYXRpdmVTdXJmYWNl
SGFuZGxlKTsKIAogICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRlQ29udGV4dEZvcldp
bmRvdyhyZWludGVycHJldF9jYXN0PEdMTmF0aXZlV2luZG93VHlwZT4obV9uYXRpdmVTdXJmYWNl
SGFuZGxlKSwgJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNvbXBvc2l0aW5nKCkp
OwpAQCAtOTEsNiArMTAxLDIyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENv
bnRleHQoKQogICAgICAgICBpZiAobV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAg
ICAgICAgICAgIG1fY29udGV4dC0+c3dhcEludGVydmFsKDApOwogICAgIH0KKyNlbmRpZgorCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIGF1dG8mIHBsYXRmb3JtRGlzcGxheSA9IFBsYXRmb3JtRGlz
cGxheTo6c2hhcmVkRGlzcGxheSgpOworICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KSk7CisgICAgbV90YXJnZXQgPSBkb3duY2FzdDxQbGF0
Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMVGFyZ2V0KCp0aGlzLCBt
X2NvbXBvc2l0aW5nTWFuYWdlci5yZWxlYXNlQ29ubmVjdGlvbkZkKCkpOworICAgIEFTU0VSVCht
X3RhcmdldCk7CisgICAgbV90YXJnZXQtPmluaXRpYWxpemUobV92aWV3cG9ydFNpemUpOworCisg
ICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2luZG93KG1fdGFyZ2V0
LT5uYXRpdmVXaW5kb3coKSwgJnBsYXRmb3JtRGlzcGxheSk7CisgICAgaWYgKCFtX2NvbnRleHQp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJl
bnQoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3Np
dG9yOjppbnZhbGlkYXRlKCkKQEAgLTEwMCwxNiArMTI2LDIzIEBAIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjppbnZhbGlkYXRlKCkKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRh
c2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldIHsKICAgICAgICAg
bV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogICAgICAgICBtX2NvbnRleHQgPSBudWxscHRy
OworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV90YXJnZXQgPSBudWxscHRyOworI2VuZGlm
CiAgICAgICAgIG1fc2NlbmUgPSBudWxscHRyOwogICAgIH0pOwogI2lmIFVTRShSRVFVRVNUX0FO
SU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0
b3ItPmludmFsaWRhdGUoKTsKICNlbmRpZgogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wID0gbnVs
bHB0cjsKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQor
ICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CisjZW5kaWYKIH0KIAog
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3Np
dGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CisjaWYgUExBVEZPUk0oR1RLKQogICAgIG1fY29tcG9z
aXRpbmdSdW5Mb29wLT5zdG9wVXBkYXRlcygpOwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5w
ZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgaGFu
ZGxlXSB7CiAgICAgICAgIC8vIEEgbmV3IG5hdGl2ZSBoYW5kbGUgY2FuJ3QgYmUgc2V0IHdpdGhv
dXQgZGVzdHJveWluZyB0aGUgcHJldmlvdXMgb25lIGZpcnN0IGlmIGFueS4KQEAgLTEyMyw2ICsx
NTYsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZv
ckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKICAgICAgICAgICAgIG1fY29udGV4dCA9IG51
bGxwdHI7CiAgICAgICAgIH0KICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29t
cG9zaXRvcjo6c2V0U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpCkBAIC0xNDYsNiArMTgwLDEwIEBA
IHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRWaWV3cG9ydFNpemUoY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplLCBmbG9hdCBzY2FsCiB7CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBl
cmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCB2aWV3
cG9ydFNpemUsIHNjYWxlXSB7CiAgICAgICAgIG1fdmlld3BvcnRTaXplID0gdmlld3BvcnRTaXpl
OworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgaWYgKG1fdGFyZ2V0KQorICAgICAgICAgICAg
bV90YXJnZXQtPnJlc2l6ZSh2aWV3cG9ydFNpemUpOworI2VuZGlmCiAgICAgICAgIG1fc2NhbGVG
YWN0b3IgPSBzY2FsZTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IHRydWU7CiAgICAgICAgIG1f
Y29tcG9zaXRpbmdSdW5Mb29wLT5zY2hlZHVsZVVwZGF0ZSgpOwpAQCAtMTg5LDkgKzIyNywxOCBA
QCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkKICAgICBpZiAoIW1f
c2NlbmUgfHwgIW1fc2NlbmUtPmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgY3JlYXRlR0xDb250ZXh0
KCk7CisjZW5kaWYKKwogICAgIGlmICghbV9jb250ZXh0IHx8ICFtX2NvbnRleHQtPm1ha2VDb250
ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAg
bV90YXJnZXQtPmZyYW1lV2lsbFJlbmRlcigpOworI2VuZGlmCisKICAgICBpZiAobV9uZWVkc1Jl
c2l6ZSkgewogICAgICAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdmlld3BvcnRTaXplLndpZHRoKCks
IG1fdmlld3BvcnRTaXplLmhlaWdodCgpKTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IGZhbHNl
OwpAQCAtMjExLDcgKzI1OCwxMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5
ZXJUcmVlKCkKIAogICAgIG1fY29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKIAorI2lmIFBMQVRGT1JN
KFdQRSkKKyAgICBtX3RhcmdldC0+ZnJhbWVSZW5kZXJlZCgpOworI2VuZGlmCisKKyNpZiBQTEFU
Rk9STShHVEspCiAgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworI2VuZGlmCiB9CiAKIHZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjpzY2VuZVVwZGF0ZUZpbmlzaGVkKCkKQEAgLTI3MCw1ICszMjMs
MzIgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9u
V2l0aENsaWVudCgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0YXRpYyB2b2lk
IGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCkKK3sKKyAgICBzdGF0aWMgZG91YmxlIGxhc3RU
aW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZnJhbWVDb3VudCA9IDA7
CisKKyAgICBkb3VibGUgY3QgPSBjdXJyZW50VGltZSgpOworICAgIGZyYW1lQ291bnQrKzsKKwor
ICAgIGlmIChjdCAtIGxhc3RUaW1lID49IDUuMCkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwg
IlRocmVhZGVkQ29tcG9zaXRvcjogZnJhbWUgY2FsbGJhY2tzICUuMmYgRlBTXG4iLCBmcmFtZUNv
dW50IC8gKGN0IC0gbGFzdFRpbWUpKTsKKyAgICAgICAgbGFzdFRpbWUgPSBjdDsKKyAgICAgICAg
ZnJhbWVDb3VudCA9IDA7CisgICAgfQorfQorCit2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6ZnJh
bWVDb21wbGV0ZSgpCit7CisgICAgQVNTRVJUKG1fY29tcG9zaXRpbmdSdW5Mb29wLT5pc0N1cnJl
bnQoKSk7CisgICAgc3RhdGljIGJvb2wgcmVwb3J0RlBTID0gISFzdGQ6OmdldGVudigiV1BFX1RI
UkVBREVEX0NPTVBPU0lUT1JfRlBTIik7CisgICAgaWYgKHJlcG9ydEZQUykKKyAgICAgICAgZGVi
dWdUaHJlYWRlZENvbXBvc2l0b3JGUFMoKTsKKworICAgIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsK
K30KKyNlbmRpZgorCiB9CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVB
REVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVk
Q29tcG9zaXRvci5oCmluZGV4IDY3OTU0YTA3YTQ2Li5lYjEyNDU5NzU2YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaApA
QCAtNDIsNiArNDIsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlSZWZyZXNoTW9uaXRv
ci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdN
YW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlXUEUuaD4KKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ29vcmRpbmF0ZWRHcmFwaGljc1N0YXRl
OwogfQpAQCAtNTEsOCArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmU7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGllbnQ7
CiBjbGFzcyBUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcjsKK2NsYXNzIFdlYlBhZ2U7CiAK
LWNsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRlZENvbXBvc2l0b3I+
IHsKK2NsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRlZENvbXBvc2l0
b3I+CisjaWYgUExBVEZPUk0oV1BFKQorICAgICwgcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtRGlz
cGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQKKyNlbmRpZgorICAgIHsKICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShUaHJlYWRlZENvbXBvc2l0b3IpOwogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogcHVibGljOgpAQCAtNjQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAgICBlbnVtIGNsYXNz
IFNob3VsZERvRnJhbWVTeW5jIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGljIFJlZjxUaHJlYWRl
ZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxv
YXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAwLCBTaG91bGRE
b0ZyYW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXI6OlBhaW50RmxhZ3MgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4g
Y3JlYXRlKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAwLCBTaG91bGREb0Zy
YW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6
OlBhaW50RmxhZ3MgPSAwKTsKICAgICB2aXJ0dWFsIH5UaHJlYWRlZENvbXBvc2l0b3IoKTsKIAog
ICAgIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90KTsK
QEAgLTg3LDEzICs5NywxOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBUaHJl
YWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNj
YWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3lu
YywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyk7CisgICAgVGhyZWFkZWRDb21w
b3NpdG9yKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVT
eW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKIAogICAgIC8vIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudAogICAgIHZvaWQgcmVuZGVyTmV4dEZyYW1lKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpIG92ZXJyaWRlOwogICAgIHZvaWQgY29t
bWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IG9mZnNldCkgb3ZlcnJpZGU7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgLy8gV2ViQ29yZTo6
UGxhdGZvcm1EaXNwbGF5V1BFOjpTdXJmYWNlOjpDbGllbnQKKyAgICB2b2lkIGZyYW1lQ29tcGxl
dGUoKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgdm9pZCByZW5kZXJMYXllclRyZWUoKTsKICAg
ICB2b2lkIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsKIApAQCAtMTAxLDYgKzExNiwxMiBAQCBwcml2
YXRlOgogCiAgICAgQ2xpZW50JiBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29vcmRpbmF0ZWRHcmFw
aGljc1NjZW5lPiBtX3NjZW5lOworCisjaWYgUExBVEZPUk0oV1BFKQorICAgIENvbXBvc2l0aW5n
TWFuYWdlciBtX2NvbXBvc2l0aW5nTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29y
ZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ+IG1fdGFyZ2V0OworI2VuZGlmCisKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xDb250ZXh0PiBtX2NvbnRleHQ7CiAKICAgICBX
ZWJDb3JlOjpJbnRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdp
bmdBcmVhSW5mby5oCmluZGV4IDdmYzRkN2M0YjNmLi5hNDM1ZTE5YmI3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaApAQCAtMzQsNiArMzQsOCBAQCBlbnVtIERyYXdp
bmdBcmVhVHlwZSB7CiAgICAgRHJhd2luZ0FyZWFUeXBlVGlsZWRDb3JlQW5pbWF0aW9uLAogI2Vu
ZGlmCiAgICAgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAorI2VsaWYgUExBVEZPUk0o
V1BFKQorICAgIERyYXdpbmdBcmVhVHlwZVdQRQogI2Vsc2UKICAgICBEcmF3aW5nQXJlYVR5cGVJ
bXBsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudC5oCmluZGV4IGNiMWYxMThjODkyLi4xNGZkZGUyMjRlNSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC01MSw2ICs1MSwxMCBAQCB0
eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIE9CSkNfQ0xBU1MgV2ViRXZlbnQ7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZl
bnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQgOiBwdWJsaWMgV2ViS2V5Ym9hcmRFdmVudCB7CkBAIC02Miw2ICs2Niw4IEBAIHB1
YmxpYzoKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KEdka0V2ZW50KiwgY29uc3QgV2ViQ29y
ZTo6Q29tcG9zaXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2ZW50RmFrZWRGb3JD
b21wb3NpdGlvbiwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcyk7CiAjZWxpZiBQTEFURk9STShJ
T1MpCiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCg6OldlYkV2ZW50ICopOworI2VsaWYgUExB
VEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9r
ZXlib2FyZF9ldmVudCopOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNzIsNiArNzgs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zha2VFdmVudEZvckNvbXBvc2l0aW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9mYWtlRXZlbnRGb3JDb21wb3NpdGlvbjsgfQogI2VsaWYgUExBVEZPUk0oSU9T
KQogICAgIDo6V2ViRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVF
dmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQqIG5hdGl2
ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaAppbmRleCA4OGNkMTQx
MDkzOC4uMjgzZmMzMzQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRp
dmVXZWJNb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1v
dXNlRXZlbnQuaApAQCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVm
IHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQor
c3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50IDogcHVibGljIFdlYk1vdXNlRXZlbnQg
ewpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0
aXZlV2ViTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jik7CiAgICAgTmF0aXZl
V2ViTW91c2VFdmVudChHZGtFdmVudCosIGludCk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAg
TmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC01NSw2
ICs2MSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25z
dCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAg
ICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CisjZWxpZiBQ
TEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVy
biBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViVG91Y2hFdmVudC5oCmluZGV4IDExODEyNGNkZWJjLi44MmYzYjI0ZDQyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCkBAIC0zNCw2ICsz
NCw4IEBACiBzdHJ1Y3QgX1VJV2ViVG91Y2hFdmVudDsKICNlbGlmIFBMQVRGT1JNKEdUSykKICNp
bmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNp
bmNsdWRlIDx3cGUvaW5wdXQuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTQ2
LDYgKzQ4LDkgQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQoR2RrRXZlbnQqLCBW
ZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVXZWJUb3VjaEV2ZW50
KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZl
RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFU
Rk9STShXUEUpCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNo
X2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGNvbnN0IHN0cnVjdCB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBuYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQoKSBjb25zdCB7
IHJldHVybiAmbV9mYWxsYmFja1RvdWNoUG9pbnQ7IH0KICNlbmRpZgogCiBwcml2YXRlOgpAQCAt
NTUsNiArNjAsOCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIEdVbmlxdWVQ
dHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgc3Ry
dWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcgbV9mYWxsYmFja1RvdWNoUG9pbnQ7CiAjZW5k
aWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVl
bEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCmlu
ZGV4IDVkYjBiY2U4ZmViLi4xNWY5NTg2NzE3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
TmF0aXZlV2ViV2hlZWxFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NMQVNTIE5TVmll
dzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFU
Rk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNw
YWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQgOiBwdWJsaWMgV2ViV2hl
ZWxFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKEdUSykK
ICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKTsKICAg
ICBOYXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50Kik7CisjZWxpZiBQTEFURk9STShXUEUpCisg
ICAgTmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9h
dCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC01NSw2
ICs2MSw4IEBAIHB1YmxpYzoKICAgICBHZGtFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJl
dHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgY29u
c3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxs
cHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNThhYWVjMzFmZTMuLjllZmNlZjI4ZWQxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApA
QCAtODMsMTEgKzgzLDE0IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRRdWFkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVybGF5Lmg+Ci0jaW5j
bHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWxlY3Rpb25S
ZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNlbmRpZiAvLyBQTEFU
Rk9STShJT1MpCiAKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRl
IDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0Lmg+CiAjZW5kaWYKQEAgLTE0NzQsNiArMTQ3NywyMyBAQCBib29sIEFyZ3VtZW50Q29kZXI8
UGFzdGVib2FyZEltYWdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRJbWFn
ZSYgcAogCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3ZvaWQgQXJndW1lbnRDb2RlcjxQ
YXN0ZWJvYXJkV2ViQ29udGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQudGV4
dDsKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQubWFya3VwOworfQorCitib29sIEFyZ3VtZW50Q29k
ZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVi
b2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShjb250
ZW50LnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShjb250ZW50Lm1hcmt1cCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCisKIHZvaWQgQXJndW1lbnRDb2RlcjxEaWN0
YXRpb25BbHRlcm5hdGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBEaWN0YXRp
b25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAgZW5jb2RlciA8PCBk
aWN0YXRpb25BbHRlcm5hdGl2ZS5yYW5nZVN0YXJ0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDRhNjM2OWJhMjlmLi40OTk3YTY0YWRkNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAt
MTMxLDYgKzEzMSwxMiBAQCBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNldHRpbmdzOwogfQogI2Vu
ZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgUGFz
dGVib2FyZFdlYkNvbnRlbnRzOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUoQ09OVEVOVF9GSUxU
RVJJTkcpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb250ZW50RmlsdGVyVW5ibG9ja0hh
bmRsZXI7CkBAIC00MDgsNiArNDE0LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29k
ZXI8V2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzPiB7CiB9OwogI2VuZGlmCiAKKyNp
ZiBQTEFURk9STShXUEUpCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6
OlBhc3RlYm9hcmRXZWJDb250ZW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXIm
LCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHN0YXRpYyBib29s
IGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKK307Cisj
ZW5kaWYKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpDb21wb3Np
dGlvblVuZGVybGluZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3Qg
V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUo
RGVjb2RlciYsIFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAppbmRleCA3NTA2ZmFk
OWQzYS4uMGIyOGMxNTdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
cmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMzc2LDcgKzM3Niw3IEBACiAgICAgbWFjcm8oUGlj
dG9ncmFwaEZvbnRGYW1pbHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywg
IkFwcGxlIENvbG9yIEVtb2ppIiwgIiIsICIiKSBcCiAgICAgXAogCi0jZWxpZiBQTEFURk9STShH
VEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIAogI2RlZmluZSBGT1Jf
RUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAogICAgIG1hY3JvKFN0
YW5kYXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcsIFN0cmluZywgIlRp
bWVzIiwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9O
YXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uODY4M2I4MTJmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsMzgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKKwor
I2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKKyAgICA6IFdlYktleWJvYXJkRXZlbnQoV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSkKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRp
dmVXZWJNb3VzZUV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYjRkOWQ0M2RlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKworI2luY2x1ZGUgIldl
YkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViTW91c2VF
dmVudDo6TmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQq
IGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYk1vdXNlRXZlbnQoV2Vi
RXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3Rv
cikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMxNDE1MTU1Y2RmCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcApAQCAt
MCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2ZW50
LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9p
bnB1dF90b3VjaF9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAgIDog
V2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoZXZlbnQs
IGRldmljZVNjYWxlRmFjdG9yKSkKKyAgICAsIG1fZmFsbGJhY2tUb3VjaFBvaW50eyB3cGVfaW5w
dXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsLCAwLCAwLCAwLCAwIH0KK3sKKyAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAgICAg
IGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9pbnQu
dHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKSB7CisgICAgICAgICAgICBt
X2ZhbGxiYWNrVG91Y2hQb2ludCA9IHBvaW50OworICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
IH0KKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhOTYyZWQ0ZGNjCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcApA
QCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2
ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPGNzdGRp
bz4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYldoZWVsRXZlbnQ6Ok5hdGl2ZVdl
YldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2
aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViV2hlZWxFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uZDg3YTkyN2FiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKQEAgLTAsMCArMSw4NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKworI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HTGliVXRpbGl0aWVzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworc3RhdGljIFN0cmluZyBnZXRFeGVjdXRhYmxlUGF0aCgpCit7CisgICAg
Q1N0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpOworICAg
IGlmICghZXhlY3V0YWJsZVBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVybiBkaXJlY3RvcnlO
YW1lKHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGguZGF0
YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3RyaW5nIGZpbmRXZWJL
aXRQcm9jZXNzKGNvbnN0IGNoYXIqIHByb2Nlc3NOYW1lKQoreworICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJVF9FWEVDX1BBVEgiKTsKKyAgICBp
ZiAoZXhlY0RpcmVjdG9yeSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1BhdGggPSBwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVj
RGlyZWN0b3J5KSwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9jZXNz
UGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAgc3Rh
dGljIFN0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYg
KCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1BhdGgg
PSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZXhlY3V0YWJsZVBhdGgsIHByb2Nlc3NOYW1lKTsK
KyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQorICAgICAgICAgICAgcmV0dXJu
IHByb2Nlc3NQYXRoOworICAgIH0KKworICAgIHJldHVybiBwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihMSUJFWEVDRElSKSwgcHJvY2Vz
c05hbWUpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKQoreworICAg
IHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFV2ViUHJvY2VzcyIpOworfQorCitTdHJpbmcg
ZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0
UHJvY2VzcygiV1BFUGx1Z2luUHJvY2VzcyIpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhP
Zk5ldHdvcmtQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdlYktpdFByb2Nlc3MoIldQRU5l
dHdvcmtQcm9jZXNzIik7Cit9CisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJPQ0VTUykKK1N0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdl
YktpdFByb2Nlc3MoIldQRURhdGFiYXNlUHJvY2VzcyIpOworfQorI2VuZGlmCisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJF
dmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rv
cnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43ODg3YTlmOGFj
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRG
YWN0b3J5LmNwcApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
RXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbGJhci5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIv
R1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFdlYkV2ZW50OjpN
b2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVu
dCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICB1bnNpZ25lZCBl
dmVudE1vZGlmaWVycyA9IGV2ZW50LT5tb2RpZmllcnM7CisKKyAgICBpZiAoZXZlbnRNb2RpZmll
cnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfY29udHJvbCkKKyAgICAgICAgbW9kaWZp
ZXJzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdw
ZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9zaGlmdCkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdl
YkV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5
Ym9hcmRfbW9kaWZpZXJfYWx0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkFsdEtl
eTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJf
bWV0YSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5OworCisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVycyk7Cit9CisKK3N0
YXRpYyBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoc3RydWN0IHdwZV9p
bnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgY29uc3QgY2hhciogc2luZ2xlQ2hh
cmFjdGVyID0gd3BlX2lucHV0X3NpbmdsZV9jaGFyYWN0ZXJfZm9yX2tleV9ldmVudCh3cGVfaW5w
dXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoc2luZ2xlQ2hh
cmFjdGVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKHNpbmdsZUNoYXJhY3Rlcik7CisKKyAgICBn
bG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxndW5pY2hhcjI+IHVjaGFyMTYoZ191Y3M0X3Rv
X3V0ZjE2KCZldmVudC0+dW5pY29kZSwgMSwgMCwgJmxlbmd0aCwgbnVsbHB0cikpOworICAgIGlm
ICh1Y2hhcjE2KQorICAgICAgICByZXR1cm4gU3RyaW5nKHVjaGFyMTYuZ2V0KCkpOworICAgIHJl
dHVybiBTdHJpbmcoKTsKK30KKworc3RhdGljIFN0cmluZyBpZGVudGlmaWVyU3RyaW5nRm9yS2V5
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgY29u
c3QgY2hhciogaWRlbnRpZmllciA9IHdwZV9pbnB1dF9pZGVudGlmaWVyX2Zvcl9rZXlfZXZlbnQo
d3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCk7CisgICAgaWYgKGlk
ZW50aWZpZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoaWRlbnRpZmllcik7CisKKyAgICByZXR1
cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGV2ZW50LT51bmljb2RlKTsKK30KKworV2ViS2V5
Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgU3RyaW5nIHNpbmdsZUNo
YXJhY3RlclN0cmluZyA9IHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsK
KyAgICBTdHJpbmcgaWRlbnRpZmllclN0cmluZyA9IGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVu
dChldmVudCk7CisKKyAgICByZXR1cm4gV2ViS2V5Ym9hcmRFdmVudChldmVudC0+cHJlc3NlZCA/
IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZlbnQ6OktleVVwLAorICAgICAgICBzaW5nbGVDaGFy
YWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmllclN0cmluZywKKyAg
ICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRf
a2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KSwKKyAgICAgICAgZXZlbnQtPmtleUNv
ZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJNb3VzZUV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBXZWJFdmVudDo6VHlwZSB0eXBlID0g
V2ViRXZlbnQ6Ok5vVHlwZTsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdlYkV2
ZW50OjpNb3VzZU1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50
ZXJfZXZlbnRfdHlwZV9idXR0b246CisgICAgICAgIHR5cGUgPSBldmVudC0+c3RhdGUgPyBXZWJF
dmVudDo6TW91c2VEb3duIDogV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBXZWJNb3VzZUV2ZW50OjpCdXR0b24gYnV0dG9u
ID0gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgc3dpdGNoIChldmVudC0+dHlwZSkgewor
ICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgY2FzZSB3
cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAgaWYgKGV2ZW50LT5i
dXR0b24gPT0gMSkKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0
b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMikKKyAgICAgICAgICAgIGJ1
dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgICAgICBlbHNlIGlmIChldmVu
dC0+YnV0dG9uID09IDMpCisgICAgICAgICAgICBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpNaWRk
bGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZl
bnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAg
ICB1bnNpZ25lZCBjbGlja0NvdW50ID0gKHR5cGUgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93bikgPyAx
IDogMDsKKworICAgIC8vIEZJWE1FOiBQcm9wZXIgYnV0dG9uIHN1cHBvcnQuIE1vZGlmaWVycy4g
ZGVsdGFYL1kvWi4gQ2xpY2sgY291bnQuCisgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24o
ZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVG
YWN0b3IpOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRvbiwgcG9zaXRpb24s
IHBvc2l0aW9uLAorICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0aWNfY2FzdDxXZWJF
dmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJXaGVlbEV2ZW50IFdl
YkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNf
ZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICAvLyBGSVhNRTog
V2Ugc2hvdWxkbid0IGhhcmQtY29kZSB0aGlzLgorICAgIGVudW0gQXhpcyB7CisgICAgICAgIFZl
cnRpY2FsLAorICAgICAgICBIb3Jpem9udGFsLAorICAgICAgICBTbW9vdGgKKyAgICB9OworCisg
ICAgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3M7CisgICAgV2ViQ29yZTo6RmxvYXRTaXpl
IGRlbHRhOworICAgIHN3aXRjaCAoZXZlbnQtPmF4aXMpIHsKKyAgICBjYXNlIFZlcnRpY2FsOgor
ICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAv
IHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSkpOworICAgICAgICBkZWx0YSA9IHdoZWVsVGlja3M7Cisg
ICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSG9yaXpvbnRhbDoKKyAgICAgICAgd2hlZWxU
aWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZShldmVudC0+dmFsdWUgLyBzdGQ6OmFicyhldmVudC0+
dmFsdWUpLCAwKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAgICAgICBkZWx0YS5z
Y2FsZShXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFNtb290aDoKKyAgICAgICAgd2hlZWxUaWNrcyA9IFdlYkNvcmU6OkZs
b2F0U2l6ZSgwLCBldmVudC0+dmFsdWUgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgICAgIGRl
bHRhID0gd2hlZWxUaWNrczsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICB9OworCisgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRpb24oZXZlbnQtPngs
IGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOwor
ICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9zaXRpb24sIHBvc2l0
aW9uLAorICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVudDo6U2Nyb2xsQnlQ
aXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVu
dC0+dGltZSk7Cit9CisKK3N0YXRpYyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91
Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQgbWFpbkV2ZW50SWQsIGNvbnN0IHN0
cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2ludCkKK3sKKyAgICBpZiAocG9pbnQt
PmlkICE9IG1haW5FdmVudElkKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKworICAgIHN3aXRjaCAocG9pbnQtPnR5cGUpIHsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHJldHVy
biBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2VkOworICAgIGNhc2Ug
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICByZXR1cm4gV2ViS2l0
OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRf
dG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFr
OworICAgIH07CisKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRv
dWNoU3RhdGlvbmFyeTsKK30KKworV2ViVG91Y2hFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0
ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQsIGZsb2F0
IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVu
dDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hT
dGFydDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlw
ZV9tb3Rpb246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hNb3ZlOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICB0
eXBlID0gV2ViRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgIH0KKworICAgIFZlY3RvcjxXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludD4gdG91
Y2hQb2ludHM7CisgICAgdG91Y2hQb2ludHMucmVzZXJ2ZUNhcGFjaXR5KGV2ZW50LT50b3VjaHBv
aW50c19sZW5ndGgpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGV2ZW50LT50b3Vj
aHBvaW50c19sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRvJiBwb2ludCA9IGV2ZW50LT50b3Vj
aHBvaW50c1tpXTsKKyAgICAgICAgaWYgKHBvaW50LnR5cGUgPT0gd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIFdlYkNvcmU6
OkludFBvaW50IHBvaW50Q29vcmRpbmF0ZXM7CisgICAgICAgIHBvaW50Q29vcmRpbmF0ZXMuc2Nh
bGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgdG91Y2hQb2ludHMudW5jaGVja2Vk
QXBwZW5kKAorICAgICAgICAgICAgV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQocG9pbnQu
aWQsIHN0YXRlRm9yVG91Y2hQb2ludChldmVudC0+aWQsICZwb2ludCksCisgICAgICAgICAgICAg
ICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRlcykpOworICAgIH0KKworICAgIHJl
dHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMpLCBXZWJFdmVudDo6
TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJjNmRjODQ5YTAyCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApAQCAtMCwwICsx
LDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV2ViRXZlbnRGYWN0b3J5X2gKKyNkZWZpbmUgV2ViRXZlbnRGYWN0b3J5X2gKKwor
I2luY2x1ZGUgIldlYkV2ZW50LmgiCisKK3N0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudDsKK3N0
cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50OworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworY2xhc3MgV2ViRXZlbnRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViS2V5
Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9h
cmRfZXZlbnQqKTsKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVXZWJNb3VzZUV2ZW50
KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0
aWMgV2ViVG91Y2hFdmVudCBjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkV2ZW50RmFjdG9yeV9oCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUuLjdiZmEwMzdkYWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01NTcs
NCArNTU3LDggQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJ
KGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW0KICNpbmNsdWRlICJXS0FQSUNhc3RH
dGsuaCIKICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlICJX
S0FQSUNhc3RXUEUuaCIKKyNlbmRpZgorCiAjZW5kaWYgLy8gV0tBUElDYXN0X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjhhMWU3MTcwMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgK
QEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLQVBJQ2FzdFdQRV9oCisjZGVmaW5lIFdLQVBJQ2FzdFdQRV9o
CisKKyNpZm5kZWYgV0tBUElDYXN0X2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tBUElD
YXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1
ZGUgIldLVmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1l
c3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dL
X0FERF9BUElfTUFQUElORyhXS1ZpZXdSZWYsIFdLV1BFOjpWaWV3KQorCitpbmxpbmUgV2ViQ29y
ZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgdG9WaWV3U3RhdGVGbGFncyhXS1ZpZXdTdGF0ZSB3a1Zp
ZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25lZCB2aWV3U3RhdGVGbGFncyA9IDA7CisKKyAgICBpZiAo
d2tWaWV3U3RhdGUgJiBrV0tWaWV3U3RhdGVJc0luV2luZG93KQorICAgICAgICB2aWV3U3RhdGVG
bGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworICAgIGlmICh3a1Zp
ZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSkKKyAgICAgICAgdmlld1N0YXRlRmxhZ3Mg
fD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlOworCisgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzPih2aWV3U3RhdGVGbGFncyk7Cit9
CisKK30KKworI2VuZGlmIC8vIFdLQVBJQ2FzdFdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldLVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tW
aWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24p
Cit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUobnVsbHB0ciwgKnRvSW1w
bChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdC
YWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBXS1BhZ2VDb25maWd1cmF0
aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3Ojpj
cmVhdGUoYmFja2VuZCwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1BhZ2VSZWYg
V0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4gdG9BUEkoJnRvSW1w
bCh2aWV3KS0+cGFnZSgpKTsKK30KKwordm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVm
IHZpZXcsIFdLVmlld1N0YXRlIHZpZXdTdGF0ZSkKK3sKKyAgICB0b0ltcGwodmlldyktPnNldFZp
ZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdzKHZpZXdTdGF0ZSkpOworfQorCit2b2lkIFdLVmlld1Nl
dFZpZXdDbGllbnQoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVu
dCkKK3sKKyAgICB0b0ltcGwodmlldyktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NTllYzJiNDViNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdLVmlld19oCisjZGVmaW5lIFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tC
YXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworI2lmZGVmIF9fY3BsdXNw
bHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKwor
V0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7
CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCosIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOworCitXS19FWFBPUlQg
V0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmKTsKKworZW51bSB7CisgICAga1dLVmll
d1N0YXRlSXNJbldpbmRvdyA9IDEgPDwgMCwKKyAgICBrV0tWaWV3U3RhdGVJc1Zpc2libGUgPSAx
IDw8IDEsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1ZpZXdTdGF0ZTsKKworV0tfRVhQT1JUIHZv
aWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdLVmlld1JlZiwgV0tWaWV3U3RhdGUpOworCit0eXBlZGVm
IHZvaWQgKCpXS1ZpZXdGcmFtZURpc3BsYXllZCkoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQq
IGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRCYXNlIHsKKyAgICBp
bnQgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRC
YXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50
QmFzZSBiYXNlOworCisgICAgLy8gdmVyc2lvbiAwCisgICAgV0tWaWV3RnJhbWVEaXNwbGF5ZWQg
ZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmlld0NsaWVudFYwOworCitXS19FWFBPUlQgdm9pZCBXS1Zp
ZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworCisj
aWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tWaWV3X2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1
ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3Nh
Z2VzLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgi
CisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2Vu
ZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkNv
bXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZp
ZXcpCit7Cit9CisKK0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojp+Q29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmluaXRp
YWxpemUoKQoreworICAgIG1fdmlldy5wYWdlKCkucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRk
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6bWVzc2Fn
ZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcucGFnZSgpLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK3Zv
aWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRh
Y2htZW50JiBjb25uZWN0aW9uSGFuZGxlKQoreworICAgIGNvbm5lY3Rpb25IYW5kbGUgPSBJUEM6
OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcu
YmFja2VuZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4OTYwOWQzZmE1Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHlfaAorI2RlZmluZSBDb21wb3NpdGluZ01hbmFnZXJQcm94eV9oCisKKyNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNw
YWNlIElQQyB7CitjbGFzcyBBdHRhY2htZW50OworfQorCituYW1lc3BhY2UgV0tXUEUgeworY2xh
c3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFu
YWdlclByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKKyAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXJQcm94eSk7CitwdWJsaWM6CisgICAg
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5Db21w
b3NpdGluZ01hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKCk7CisKK3ByaXZh
dGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGUgeyB9
CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNv
ZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0dGFj
aG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbXBvc2l0aW5nTWFuYWdlclByb3h5X2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjE5YTAwNTU3Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
QEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkgeworICAgIEVzdGFibGlzaENvbm5lY3Rpb24oKSAtPiAoSVBDOjpB
dHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzYwYzQ2Yzc5MwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUu
Y3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVh
UHJveHlXUEUuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRl
ICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3
aW5nQXJlYVByb3h5V1BFOjpEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkK
KyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBwYWdlKQoreworfQor
CitEcmF3aW5nQXJlYVByb3h5V1BFOjp+RHJhd2luZ0FyZWFQcm94eVdQRSgpCit7Cit9CisKK3Zv
aWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6
ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKKyAgICAg
ICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJveHkuZGV2aWNlU2Nh
bGVGYWN0b3IoKSwgbV9zaXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJ
RCgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJp
bmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+IGNhbGxi
YWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5pc1ZhbGlkKCkpIHsKKyAg
ICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFs
aWRhdGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJ1bkxvb3A6Om1haW4oKS5k
aXNwYXRjaChbY2FsbGJhY2tGdW5jdGlvbl0geyBjYWxsYmFja0Z1bmN0aW9uKENhbGxiYWNrQmFz
ZTo6RXJyb3I6Ok5vbmUpOyB9KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjp1cGRh
dGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaWRV
cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVy
VHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit7CisgICAgQVNTRVJUKCFiYWNraW5nU3Rv
cmVTdGF0ZUlEKTsKKworICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVyVHJlZUNvbnRleHQ7
CisgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShsYXll
clRyZWVDb250ZXh0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpleGl0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3Qg
VXBkYXRlSW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVByb3h5V1BFOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBi
YWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjAzMDIwODU4M2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVBy
b3h5V1BFLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdpbmdBcmVhUHJveHlXUEVfaAorI2RlZmlu
ZSBEcmF3aW5nQXJlYVByb3h5V1BFX2gKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIK
KworI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2NsYXNzIERyYXdpbmdBcmVhUHJveHlXUEUgZmluYWwgOiBwdWJsaWMgRHJhd2luZ0FyZWFQcm94
eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eVdQRShXZWJQYWdlUHJv
eHkmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVByb3h5V1BFKCk7CisKK3ByaXZhdGU6Cisg
ICAgLy8gRHJhd2luZ0FyZWFQcm94eQorICAgIHZvaWQgZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFu
Z2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxs
YmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxl
cnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBV
cGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3Qg
TGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRy
ZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpIG92
ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0
X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRl
OworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250ZXh0LgorICAgIExheWVyVHJl
ZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQorCisKKyNlbmRpZiAvLyBEcmF3
aW5nQXJlYVByb3h5V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uODRlMTAyZWNmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSwzMjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisKKyNpbmNsdWRlICJEcmF3aW5n
QXJlYVByb3h5V1BFLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1
ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNpbmNsdWRlICJXZWJDb250ZXh0TWVudVBy
b3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworUGFnZUNsaWVu
dEltcGw6OlBhZ2VDbGllbnRJbXBsKFdLV1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZp
ZXcpCisgICAgLCBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8U2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXI+KCkpCit7Cit9CisKK1BhZ2VDbGllbnRJbXBsOjp+UGFnZUNs
aWVudEltcGwoKSA9IGRlZmF1bHQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5
PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCit7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFQcm94eVdQRT4obV92aWV3LnBhZ2UoKSk7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVzdFNjcm9sbChj
b25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29s
KQoreworfQorCitXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBsOjp2aWV3U2Nyb2xs
UG9zaXRpb24oKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1dlYkNvcmU6OkludFNpemUgUGFn
ZUNsaWVudEltcGw6OnZpZXdTaXplKCkKK3sKKyAgICByZXR1cm4gbV92aWV3LnNpemUoKTsKK30K
KworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZlKCkKK3sKKyAgICByZXR1
cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNB
Y3RpdmU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0ZvY3VzZWQoKQoreworICAg
IHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0Zv
Y3VzZWQ7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2libGUoKQoreworICAg
IHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zp
c2libGU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0luV2luZG93KCkKK3sKKyAg
ICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNJ
bldpbmRvdzsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpwYWdlQ2xvc2VkKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBs
Ojp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmlu
ZyYsIGJvb2wpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVx
dWVzdChEb3dubG9hZFByb3h5KikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hh
bmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpCit7Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkK
K3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpCit7Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFBy
b3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcygpCit7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6
OmNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVVbmRvUmVkbyhXZWJQYWdlUHJv
eHk6OlVuZG9PclJlZG8pCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1w
bDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZWN0KQor
eworICAgIHJldHVybiByZWN0OworfQorCitXZWJDb3JlOjpGbG9hdFJlY3QgUGFnZUNsaWVudElt
cGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7
CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNvcmU6OkludFBvaW50IFBhZ2VDbGllbnRJbXBs
OjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCkKK3sKKyAg
ICByZXR1cm4gcG9pbnQ7Cit9CisKK1dlYkNvcmU6OkludFJlY3QgUGFnZUNsaWVudEltcGw6OnJv
b3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1
cm4gcmVjdDsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudChjb25z
dCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmIHRvdWNo
RXZlbnQsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQoreworICAgIGlmICh3YXNFdmVudEhhbmRsZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hFdmVudC5uYXRpdmVGYWxsYmFja1RvdWNoUG9pbnQo
KTsKKyAgICBpZiAodG91Y2hQb2ludC0+dHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlw
ZV9udWxsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwYWdlID0gbV92aWV3LnBhZ2Uo
KTsKKworICAgIGlmIChtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyLT5oYW5kbGVFdmVudCh0b3Vj
aFBvaW50KSkgeworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVu
dCA9IG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmF4aXNFdmVudCgpOworICAgICAgICBpZiAo
YXhpc0V2ZW50LT50eXBlICE9IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVfbnVsbCkKKyAgICAg
ICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQo
YXhpc0V2ZW50LCBtX3ZpZXcucGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCBwb2lu
dGVyRXZlbnR7CisgICAgICAgIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91
Y2hQb2ludC0+dGltZSwKKyAgICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAg
ICAgICAgMSwgMAorICAgIH07CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAg
ICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJF
dmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAg
IHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOworICAgICAgICBwb2ludGVyRXZl
bnQuc3RhdGUgPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9l
dmVudF90eXBlX3VwOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2lu
dGVyX2V2ZW50X3R5cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVs
bDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9
CisKKyAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRl
ckV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hl
ZWxFdmVudCYpCit7Cit9CisKK1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxX
ZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94
eShXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNl
ckRhdGEmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQ
cm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJh
Y2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1v
dmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwor
dm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFt
ZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1w
bDo6cmVmVmlldygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7
Cit9CisKKyNpZiBFTkFCTEUoVklERU8pCitib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xp
Y3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxN
aXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKyNlbmRpZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9z
aXRpb24oKQoreworfQorCitXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBh
Z2VDbGllbnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1
cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9QYWdlQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yOGVkODMzZDJlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTAsMCArMSwxMzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBQYWdlQ2xpZW50
SW1wbF9oCisjZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKworI2luY2x1ZGUgIlBhZ2VDbGllbnQu
aCIKKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKKworY2xhc3MgUGFnZUNsaWVu
dEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudCB7CitwdWJsaWM6CisgICAgUGFnZUNsaWVu
dEltcGwoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50SW1wbCgpOworCitw
cml2YXRlOgorICAgIC8vIFBhZ2VDbGllbnQKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxE
cmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGlzVmlld0ZvY3VzZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3VmlzaWJs
ZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRl
OworCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRFeGl0KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGRpZFJlbGF1bmNoUHJvY2VzcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHByZWZlcmVuY2VzRGlk
Q2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIGRp
ZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5Kikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvcihj
b25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vy
c29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRy
aWJ1dGVzJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFu
ZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJl
ZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9P
clJlZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFn
ZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6Rmxv
YXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb1VzZXJTcGFj
ZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZG9u
ZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJU
b3VjaEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRX
YXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlk
ZTsKKworICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBjcmVhdGVQb3B1cE1l
bnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5V
UykKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVh
dGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4
dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2aXJ0dWFs
IHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250
ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENv
bXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIo
Y29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgb3ZlcnJpZGU7CisKKyAg
ICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0Zvcndh
cmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVy
ZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKCkgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0ZvcndhcmRMaXN0SXRl
bSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVy
ZVNuYXBzaG90KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmlyc3RWaXN1YWxs
eU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
VHlwZSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENv
bG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmVmlldygpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKKworI2lmIEVOQUJMRShWSURF
TykKKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdNZWRpYVBs
dWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Np
b25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBkaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6VXNl
ckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENoYW5nZUNsaXBUb1NhZmVBcmVhKGJvb2wpIG92ZXJy
aWRlIHsgfQorCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKKworICAgIHN0ZDo6dW5pcXVlX3B0
cjxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGFnZUNsaWVudEltcGxfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xs
R2VzdHVyZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5kYTEyYzhlYjM1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDgwIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIgorCisj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jv
b2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZUV2ZW50KGNvbnN0IHN0cnVjdCB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50KQoreworICAgIHN3aXRjaCAodG91Y2hQ
b2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoK
KyAgICAgICAgbV9zdGFydC50aW1lID0gdG91Y2hQb2ludC0+dGltZTsKKyAgICAgICAgbV9zdGFy
dC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9zdGFydC55ID0gdG91Y2hQb2ludC0+eTsK
KyAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgIG1fb2Zmc2V0Lnkg
PSB0b3VjaFBvaW50LT55OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSB3cGVfaW5w
dXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIGlmICghbV9oYW5kbGluZykgewor
ICAgICAgICAgICAgaW50MzJfdCBkZWx0YVggPSB0b3VjaFBvaW50LT54IC0gbV9zdGFydC54Owor
ICAgICAgICAgICAgaW50MzJfdCBkZWx0YVkgPSB0b3VjaFBvaW50LT55IC0gbV9zdGFydC55Owor
ICAgICAgICAgICAgdWludDMyX3QgZGVsdGFUaW1lID0gdG91Y2hQb2ludC0+dGltZSAtIG1fc3Rh
cnQudGltZTsKKworICAgICAgICAgICAgaW50IHBpeGVsc1BlckxpbmVTdGVwID0gV2ViQ29yZTo6
U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpOworICAgICAgICAgICAgbV9oYW5kbGluZyA9
IHN0ZDo6YWJzKGRlbHRhWCkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAgICB8
fCBzdGQ6OmFicyhkZWx0YVkpID49IHBpeGVsc1BlckxpbmVTdGVwCisgICAgICAgICAgICAgICAg
fHwgZGVsdGFUaW1lID49IDIwMDsKKyAgICAgICAgfQorICAgICAgICBpZiAobV9oYW5kbGluZykg
eworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0
X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb24sCisgICAgICAgICAgICAgICAgdG91Y2hQb2ludC0+dGlt
ZSwgbV9zdGFydC54LCBtX3N0YXJ0LnksCisgICAgICAgICAgICAgICAgMiwgKHRvdWNoUG9pbnQt
PnkgLSBtX29mZnNldC55KQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAgIG1fb2Zmc2V0Lngg
PSB0b3VjaFBvaW50LT54OworICAgICAgICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgaWYg
KG1faGFuZGxpbmcpIHsKKyAgICAgICAgICAgIG1faGFuZGxpbmcgPSBmYWxzZTsKKyAgICAgICAg
ICAgIG1fYXhpc0V2ZW50ID0geworICAgICAgICAgICAgICAgIHdwZV9pbnB1dF9heGlzX2V2ZW50
X3R5cGVfbnVsbCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwCisgICAgICAgICAgICB9
OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3ZDE3MjRhYWRjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApA
QCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIgeworcHVibGlj
OgorICAgIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyKCkgPSBkZWZhdWx0OworCisgICAgc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQoKSB7IHJldHVybiAmbV9heGlzRXZlbnQ7
IH0KKworICAgIGJvb2wgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgeworICAgICAgICB1aW50MzJfdCB0
aW1lIHsgMCB9OworICAgICAgICBpbnQzMl90IHggeyAwIH07CisgICAgICAgIGludDMyX3QgeSB7
IDAgfTsKKyAgICB9IG1fc3RhcnQ7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBpbnQzMl90IHgg
eyAwIH07CisgICAgICAgIGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fb2Zmc2V0OworCisgICAg
Ym9vbCBtX2hhbmRsaW5nIHsgZmFsc2UgfTsKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQgbV9heGlzRXZlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjdmOWYxMmNkMmQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTAsMCArMSwxNTMgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKworI2luY2x1ZGUgIkFQSVBhZ2VD
b25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgorI2lu
Y2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJUb3VjaEV2
ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIldlYlBh
Z2VHcm91cC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSA8d3BlL3Zp
ZXctYmFja2VuZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCituYW1lc3BhY2UgV0tX
UEUgeworCitWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25z
dCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQ29uZmlndXJhdGlvbikKKyAgICA6IG1fcGFn
ZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPigqdGhpcykpCisgICAgLCBt
X3NpemV7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0ZvY3Vz
ZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eSgqdGhp
cykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJhdGlvbi5jb3B5KCk7
CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVmZXJlbmNlcygpOwor
ICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCkpIHsKKyAg
ICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2VzKHByZWZlcmVuY2Vz
KTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHByZWZlcmVuY2VzLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5j
ZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBwcmVmZXJlbmNlcy0+
c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRXZWJTZWN1
cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0gY29uZmlndXJhdGlv
bi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNyZWF0ZVdlYlBhZ2Uo
Km1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAgICBtX2JhY2tlbmQg
PSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2JhY2tlbmQgPSB3cGVf
dmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaW5p
dGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2NsaWVudCBz
X2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAgICAgIFtdKHZvaWQq
IGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAg
ICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7Cisg
ICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAgICBbXSh2b2lkKiBk
YXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJlaW50ZXJwcmV0X2Nh
c3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3BsYXllZCgpOworICAg
ICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNrZW5kX2NsaWVudCht
X2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3RhdGljIHN0cnVjdCB3
cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0geworICAgICAgICAv
LyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdw
ZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1
dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2
aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfcG9pbnRlcl9ldmVu
dAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQq
IGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRf
Y2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlTW91c2VF
dmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVG
YWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhpc19ldmVudAorICAg
ICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50KQor
ICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3
Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJL
aXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkp
OworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQKKyAgICAgICAgW10o
dm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRh
KS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50KFdlYktpdDo6TmF0
aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSk7CisgICAg
ICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1dF9jbGllbnQobV9i
YWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmlld19iYWNrZW5kX2lu
aXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0aWFsaXplV2ViUGFn
ZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFja2VuZF9kZXN0cm95
KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVudChjb25zdCBXS1Zp
ZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlhbGl6ZShjbGllbnQp
OworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBtX2NsaWVudC5mcmFt
ZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAgaWYgKG1fcGFnZVBy
b3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJhd2luZ0FyZWEoKS0+
c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6OkludFNpemUoKSk7Cit9
CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdz
IGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFn
cyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8
IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxhZ3MgXiAoZGVmYXVs
dEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZhdWx0RmxhZ3MgfCBm
bGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFnZVByb3h5LT5hY3Rp
dml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdL
V1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM3MzZlOTNjYzUwCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5oCkBAIC0wLDAg
KzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXUEVWaWV3X2gKKyNkZWZpbmUgV1BFVmlld19oCisKKyNpbmNsdWRlICJBUElP
YmplY3QuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUg
IlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAi
V1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2lu
Y2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmll
d19iYWNrZW5kOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2Ns
YXNzIFdlYlByb2Nlc3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3
IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVi
bGljOgorICAgIHN0YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJh
Y2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAg
eworICAgICAgICByZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAg
fQorCisgICAgLy8gQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29u
c3QgV0tWaWV3Q2xpZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAg
IFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisK
KyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2Vu
ZDsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fc2l6ZTsgfQorCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0
YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3
KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYp
OworICAgIHZpcnR1YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBzaXplKTsKKworICAgIFZpZXdDbGllbnQgbV9jbGllbnQ7CisKKyAgICBzdGQ6
OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlQ2xpZW50SW1wbD4gbV9wYWdlQ2xpZW50OworICAgIFJl
ZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gbV9wYWdlUHJveHk7CisgICAgV2ViQ29yZTo6SW50
U2l6ZSBtX3NpemU7CisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgbV92aWV3U3Rh
dGVGbGFnczsKKworICAgIFdlYktpdDo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgbV9jb21wb3Np
dGluZ01hbmFnZXJQcm94eTsKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogbV9iYWNrZW5k
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKKworI2VuZGlmIC8vIFdQRVZpZXdfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWYxZjM3ZDllN2EKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xp
ZW50LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXUEVWaWV3
Q2xpZW50LmgiCisKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CisjaW5jbHVkZSAiV0tCYXNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVz
cGFjZSBXS1dQRSB7CisKK3ZvaWQgVmlld0NsaWVudDo6ZnJhbWVEaXNwbGF5ZWQoVmlldyYgdmll
dykKK3sKKyAgICBpZiAobV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQpCisgICAgICAgIG1fY2xpZW50
LmZyYW1lRGlzcGxheWVkKHRvQVBJKCZ2aWV3KSwgbV9jbGllbnQuYmFzZS5jbGllbnRJbmZvKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uODRkZmQ1YjE1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRVZp
ZXdDbGllbnRfaAorI2RlZmluZSBXUEVWaWV3Q2xpZW50X2gKKworI2luY2x1ZGUgIkFQSUNsaWVu
dC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKworbmFtZXNwYWNlIEFQSSB7Cit0ZW1w
bGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tWaWV3Q2xpZW50QmFzZT4geworICAgIHR5cGVk
ZWYgc3RkOjp0dXBsZTxXS1ZpZXdDbGllbnRWMD4gVmVyc2lvbnM7Cit9OworfQorCituYW1lc3Bh
Y2UgV0tXUEUgeworCitjbGFzcyBWaWV3OworCitjbGFzcyBWaWV3Q2xpZW50IDogcHVibGljIEFQ
STo6Q2xpZW50PFdLVmlld0NsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2b2lkIGZyYW1lRGlz
cGxheWVkKFZpZXcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisKKyNlbmRpZiAv
LyBXUEVWaWV3Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4MjA5MmJiZmVhCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mklu
c3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKQEAgLTAsMCArMSw2IEBACis8P3htbCB2ZXJzaW9u
PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGdyZXNvdXJjZXM+CisgIDxncmVzb3VyY2UgcHJl
Zml4PSIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSI+CisgICAgPGZpbGU+aW5zcGVj
dG9yUGFnZUluZGV4Lmh0bWw8L2ZpbGU+CisgIDwvZ3Jlc291cmNlPgorPC9ncmVzb3VyY2VzPgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MjdiZWMzNjIzMTUuLmZkODQ4Y2NlZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9pZCBDaGlsZFByb2Nl
c3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMm
IGxhdW5jaE8KICAgICBpZiAobV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJpb3JpdHkpCiAgICAg
ICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKEFTQ0lJTGl0ZXJh
bCgiYWx3YXlzLXJ1bnMtYXQtYmFja2dyb3VuZC1wcmlvcml0eSIpLCAidHJ1ZSIpOwogCi0jaWYg
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjaWYgRU5BQkxFKERFVkVM
T1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKQogICAgIGNvbnN0
IGNoYXIqIHZhcm5hbWU7CiAgICAgc3dpdGNoIChsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlKSB7
CiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWI6CkBAIC03OSw3ICs3
OSw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xh
dW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPCiAgICAgY29uc3QgY2hhciogcHJvY2Vzc0Nt
ZFByZWZpeCA9IGdldGVudih2YXJuYW1lKTsKICAgICBpZiAocHJvY2Vzc0NtZFByZWZpeCAmJiAq
cHJvY2Vzc0NtZFByZWZpeCkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4
ID0gU3RyaW5nOjpmcm9tVVRGOChwcm9jZXNzQ21kUHJlZml4KTsKLSNlbmRpZiAvLyBFTkFCTEUo
REVWRUxPUEVSX01PREUpICYmIFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBFTkFCTEUoREVWRUxP
UEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiB9CiAKIHZvaWQg
Q2hpbGRQcm9jZXNzUHJveHk6OmNvbm5lY3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmgKaW5k
ZXggOTM5YTdlMjFiNzguLjA3NDg3YmEzZTBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmgK
QEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0Q29u
bmVjdGlvbihXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uKikgZmluYWw7CiAKICAgICBib29sIHBs
YXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgVmVjdG9yPGNoYXI+JiBk
YXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBidWlsZFBhZ2VMaXN0KFZlY3Rvcjxj
aGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9y
U2VydmVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIv
d3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjI2ODNlM2Q3MTYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNw
cApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVs
ZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgorCisjaWYg
RU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JQcm94eS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRl
IDxnbW9kdWxlLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJv
eWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVj
dG9yU2VydmVyOjpwbGF0Zm9ybVJlc291cmNlRm9yUGF0aChjb25zdCBTdHJpbmcmIHBhdGgsIFZl
Y3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAgICAvLyBUaGUgcGFn
ZSBsaXN0IGNvbnRhaW5zIGFuIHVuZm9ybWF0ZWQgbGlzdCBvZiBwYWdlcyB0aGF0IGNhbiBiZSBp
bnNwZWN0ZWQgd2l0aCBhIGxpbmsgdG8gb3BlbiBhIHNlc3Npb24uCisgICAgaWYgKHBhdGggPT0g
Ii9wYWdlbGlzdC5qc29uIikgeworICAgICAgICBidWlsZFBhZ2VMaXN0KGRhdGEsIGNvbnRlbnRU
eXBlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3RhdGljIHN0ZDo6b25j
ZV9mbGFnIGZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgW10geworICAgICAgICBHTW9k
dWxlKiByZXNvdXJjZXNNb2R1bGUgPSBnX21vZHVsZV9vcGVuKCJsaWJXUEVXZWJJbnNwZWN0b3JS
ZXNvdXJjZXMuc28iLCBHX01PRFVMRV9CSU5EX0xBWlkpOworICAgICAgICBpZiAoIXJlc291cmNl
c01vZHVsZSkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBsb2FkaW5nIGxpYldQ
RVdlYkluc3BlY3RvclJlc291cmNlcy5zbzogJXMiLCBnX21vZHVsZV9lcnJvcigpKTsKKyAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGdfbW9kdWxlX21ha2VfcmVzaWRl
bnQocmVzb3VyY2VzTW9kdWxlKTsKKyAgICB9KTsKKworICAgIC8vIFBvaW50IHRoZSBkZWZhdWx0
IHBhdGggdG8gYSBmb3JtYXR0ZWQgcGFnZSB0aGF0IHF1ZXJpZXMgdGhlIHBhZ2UgbGlzdCBhbmQg
ZGlzcGxheSB0aGVtLgorICAgIENTdHJpbmcgcmVzb3VyY2VQYXRoID0gbWFrZVN0cmluZygiL29y
Zy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiLCAocGF0aCA9PSAiLyIgPyAiL2luc3BlY3Rv
clBhZ2VJbmRleC5odG1sIiA6IHBhdGgpKS51dGY4KCk7CisgICAgaWYgKHJlc291cmNlUGF0aC5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1VuaXF1ZU91dFB0cjxHRXJy
b3I+IGVycm9yOworICAgIEdSZWZQdHI8R0J5dGVzPiByZXNvdXJjZUJ5dGVzID0gYWRvcHRHUmVm
KGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHJlc291cmNlUGF0aC5kYXRhKCksIEdfUkVTT1VSQ0Vf
TE9PS1VQX0ZMQUdTX05PTkUsICZlcnJvci5vdXRQdHIoKSkpOworICAgIGlmICghcmVzb3VyY2VC
eXRlcykgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9oZWFkPjxib2R5PkVy
cm9yOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoZXJyb3ItPmNvZGUpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIgb2NjdXJy
ZWQgZHVyaW5nIGZldGNoaW5nIGluc3BlY3RvciByZXNvdXJjZSBmaWxlcy48L2JvZHk+PC9odG1s
PiIpOworCisgICAgICAgIENTdHJpbmcgZXJyb3JIVE1MID0gYnVpbGRlci50b1N0cmluZygpLnV0
ZjgoKTsKKyAgICAgICAgZGF0YS5hcHBlbmQoZXJyb3JIVE1MLmRhdGEoKSwgZXJyb3JIVE1MLmxl
bmd0aCgpKTsKKyAgICAgICAgY29udGVudFR5cGUgPSAidGV4dC9odG1sOyBjaGFyc2V0PXV0Zi04
IjsKKworICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIGZldGNoaW5nIHdlYmluc3BlY3RvciBy
ZXNvdXJjZSBmaWxlczogJWQsICVzIiwgZXJyb3ItPmNvZGUsIGVycm9yLT5tZXNzYWdlKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGdzaXplIHJlc291cmNlRGF0YVNpemU7
CisgICAgZ2NvbnN0cG9pbnRlciByZXNvdXJjZURhdGEgPSBnX2J5dGVzX2dldF9kYXRhKHJlc291
cmNlQnl0ZXMuZ2V0KCksICZyZXNvdXJjZURhdGFTaXplKTsKKyAgICBkYXRhLmFwcGVuZChzdGF0
aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3VyY2VEYXRhU2l6ZSk7CisK
KyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtaW1lVHlwZShnX2NvbnRlbnRfdHlwZV9ndWVzcyhyZXNv
dXJjZVBhdGguZGF0YSgpLCBzdGF0aWNfY2FzdDxjb25zdCBndWNoYXIqPihyZXNvdXJjZURhdGEp
LCByZXNvdXJjZURhdGFTaXplLCBudWxscHRyKSk7CisgICAgY29udGVudFR5cGUgPSBtaW1lVHlw
ZS5nZXQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JTZXJ2ZXI6
OmJ1aWxkUGFnZUxpc3QoVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKQor
eworICAgIC8vIGNocm9tZWRldnRvb2xzIChodHRwOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21l
ZGV2dG9vbHMpIDAuMy44IGV4cGVjdGVkIEpTT04gZm9ybWF0OgorICAgIC8vIHsKKyAgICAvLyAg
InRpdGxlIjogIkZvbyIsCisgICAgLy8gICJ1cmwiOiAiaHR0cDovL2ZvbyIsCisgICAgLy8gICJk
ZXZ0b29sc0Zyb250ZW5kVXJsIjogIi9NYWluLmh0bWw/d3M9bG9jYWxob3N0OjkyMjIvZGV2dG9v
bHMvcGFnZS8xIiwKKyAgICAvLyAgIndlYlNvY2tldERlYnVnZ2VyVXJsIjogIndzOi8vbG9jYWxo
b3N0OjkyMjIvZGV2dG9vbHMvcGFnZS8xIgorICAgIC8vIH0sCisKKyAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbICIpOworICAgIENsaWVudE1h
cDo6aXRlcmF0b3IgZW5kID0gbV9jbGllbnRNYXAuZW5kKCk7CisgICAgZm9yIChDbGllbnRNYXA6
Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRNYXAuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7Cisg
ICAgICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZSA9IGl0LT52YWx1ZS0+aW5zcGVjdGVkUGFnZSgp
OworICAgICAgICBpZiAoaXQgIT0gbV9jbGllbnRNYXAuYmVnaW4oKSkKKyAgICAgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJ7IFwiaWRcIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRsZVwiOiBcIiIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkudGl0bGUoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwidXJsXCI6IFwiIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwiaW5zcGVjdG9yVXJsXCI6IFwiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD9wYWdlPSIpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRM
aXRlcmFsKCJcIiwgXCJkZXZ0b29sc0Zyb250ZW5kVXJsXCI6IFwiIik7CisgICAgICAgIGJ1aWxk
ZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD93cz0iKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoYmluZEFkZHJlc3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIpOwor
ICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ3ZWJT
b2NrZXREZWJ1Z2dlclVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwo
IndzOi8vIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRBZGRyZXNzKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvZGV2dG9vbHMvcGFn
ZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOworICAgIH0KKyAgICBidWlsZGVyLmFwcGVuZExp
dGVyYWwoIiBdIik7CisgICAgQ1N0cmluZyBjc3RyID0gYnVpbGRlci50b1N0cmluZygpLnV0Zjgo
KTsKKyAgICBkYXRhLmFwcGVuZChjc3RyLmRhdGEoKSwgY3N0ci5sZW5ndGgoKSk7CisgICAgY29u
dGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCI7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAzOTk1MDY5NDhlZi4uYmE3N2My
YWM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAgICAgICBQcm9jZXNz
VHlwZSBwcm9jZXNzVHlwZTsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0cmFJ
bml0aWFsaXphdGlvbkRhdGE7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBMQVRG
T1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkpCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJlZml4OwogI2VuZGlm
CiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93
cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVu
Y2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNzAyM2M1NDIyMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKQEAgLTAs
MCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9yb2xhIE1v
YmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgiCisKKyNpbmNsdWRl
ICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8ZXJybm8uaD4KKyNpbmNsdWRl
IDxmY250bC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3cGUvcmVuZGVyZXItaG9z
dC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmlu
Zy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGli
L0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKKy8v
IEZJWE1FOiBNZXJnZSB3aXRoIFByb2Nlc3NMYXVuY2hlckd0az8KKwordXNpbmcgbmFtZXNwYWNl
IFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdm9pZCBjaGlsZFNldHVw
RnVuY3Rpb24oZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgaW50IHNvY2tldCA9IEdQT0lOVEVS
X1RPX0lOVCh1c2VyRGF0YSk7CisgICAgY2xvc2Uoc29ja2V0KTsKK30KKwordm9pZCBQcm9jZXNz
TGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQoreworICAgIEdQaWQgcGlkID0gMDsKKworICAgIElQ
Qzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpDb25uZWN0aW9uOjpj
cmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpDb25uZWN0aW9uT3B0aW9u
czo6U2V0Q2xvZXhlY09uU2VydmVyKTsKKworICAgIFN0cmluZyBleGVjdXRhYmxlUGF0aDsKKyAg
ICBDU3RyaW5nIHJlYWxFeGVjdXRhYmxlUGF0aDsKKyAgICBzd2l0Y2ggKG1fbGF1bmNoT3B0aW9u
cy5wcm9jZXNzVHlwZSkgeworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6
V2ViOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZXZWJQcm9jZXNz
KCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlw
ZTo6TmV0d29yazoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mTmV0
d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKERBVEFCQVNFX1BST0NF
U1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpEYXRhYmFzZToKKyAg
ICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCk7
CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICByZWFsRXhlY3V0YWJs
ZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGgpOworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IHdrU29ja2V0KGdfc3RyZHVwX3ByaW50ZigiJWQiLCBzb2NrZXRQYWly
LmNsaWVudCkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdwZVNvY2tldDsKKworICAgIHVuc2ln
bmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3IgZ19zcGF3bl9hc3lu
YygpCisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQcm9jZXNzTGF1bmNo
ZXI6OlByb2Nlc3NUeXBlOjpXZWIpIHsKKyAgICAgICAgd3BlU29ja2V0ID0gR1VuaXF1ZVB0cjxn
Y2hhcj4oZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHdwZV9yZW5kZXJlcl9ob3N0X2NyZWF0ZV9jbGll
bnQoKSkpOworICAgICAgICBuYXJncyA9IDU7CisgICAgfQorCisjaWYgRU5BQkxFKERFVkVMT1BF
Ul9NT0RFKQorICAgIFZlY3RvcjxDU3RyaW5nPiBwcmVmaXhBcmdzOworICAgIGlmICghbV9sYXVu
Y2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguaXNOdWxsKCkpIHsKKyAgICAgICAgVmVjdG9yPFN0
cmluZz4gc3BsaXRBcmdzOworICAgICAgICBtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZp
eC5zcGxpdCgnICcsIHNwbGl0QXJncyk7CisgICAgICAgIGZvciAoYXV0byBpdCA9IHNwbGl0QXJn
cy5iZWdpbigpOyBpdCAhPSBzcGxpdEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgICAgICBwcmVm
aXhBcmdzLmFwcGVuZChpdC0+dXRmOCgpKTsKKyAgICAgICAgbmFyZ3MgKz0gcHJlZml4QXJncy5z
aXplKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBjaGFyKiogYXJndiA9IGdfbmV3YShjaGFyKiwg
bmFyZ3MpOworICAgIHVuc2lnbmVkIGkgPSAwOworI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkK
KyAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4IGNvbW1hbmQsIHB1dCBpdCBiZWZvcmUgdGhlIHJl
c3Qgb2YgdGhlIGFyZ3MuCisgICAgZm9yIChhdXRvIGl0ID0gcHJlZml4QXJncy5iZWdpbigpOyBp
dCAhPSBwcmVmaXhBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICBhcmd2W2krK10gPSBjb25zdF9j
YXN0PGNoYXIqPihpdC0+ZGF0YSgpKTsKKyNlbmRpZgorICAgIGFyZ3ZbaSsrXSA9IGNvbnN0X2Nh
c3Q8Y2hhcio+KHJlYWxFeGVjdXRhYmxlUGF0aC5kYXRhKCkpOworICAgIGFyZ3ZbaSsrXSA9IHdr
U29ja2V0LmdldCgpOworICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJv
Y2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViKQorICAgICAgICBhcmd2W2krK10gPSB3cGVT
b2NrZXQuZ2V0KCk7CisgICAgYXJndltpKytdID0gbnVsbHB0cjsKKworICAgIEdVbmlxdWVPdXRQ
dHI8R0Vycm9yPiBlcnJvcjsKKyAgICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwgYXJndiwgMCwgR19T
UEFXTl9MRUFWRV9ERVNDUklQVE9SU19PUEVOLCBjaGlsZFNldHVwRnVuY3Rpb24sIEdJTlRfVE9f
UE9JTlRFUihzb2NrZXRQYWlyLnNlcnZlciksICZwaWQsICZlcnJvci5vdXRQdHIoKSkpIHsKKyAg
ICAgICAgZ19wcmludGVycigiVW5hYmxlIHRvIGZvcmsgYSBuZXcgV2ViUHJvY2VzczogJXMuXG4i
LCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIC8vIERvbid0IGV4cG9zZSB0aGUgcGFyZW50IHNvY2tldCB0byBwb3RlbnRpYWwgZnV0
dXJlIGNoaWxkcmVuLgorICAgIHdoaWxlIChmY250bChzb2NrZXRQYWlyLmNsaWVudCwgRl9TRVRG
RCwgRkRfQ0xPRVhFQykgPT0gLTEpCisgICAgICAgIFJFTEVBU0VfQVNTRVJUKGVycm5vICE9IEVJ
TlRSKTsKKworICAgIGNsb3NlKHNvY2tldFBhaXIuY2xpZW50KTsKKyAgICBtX3Byb2Nlc3NJZGVu
dGlmaWVyID0gcGlkOworCisgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNoaW5nIHRoZSBwcm9j
ZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCisgICAgUmVmUHRyPFByb2Nl
c3NMYXVuY2hlcj4gcHJvdGVjdG9yKHRoaXMpOworICAgIElQQzo6Q29ubmVjdGlvbjo6SWRlbnRp
ZmllciBzZXJ2ZXJTb2NrZXQgPSBzb2NrZXRQYWlyLnNlcnZlcjsKKyAgICBSdW5Mb29wOjptYWlu
KCkuZGlzcGF0Y2goW3Byb3RlY3RvciwgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAgICAgcHJv
dGVjdG9yLT5kaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzKHBpZCwgc2VydmVyU29ja2V0KTsKKyAg
ICB9KTsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVByb2Nlc3MoKQorewor
ICAgIGlmIChtX2lzTGF1bmNoaW5nKSB7CisgICAgICAgIGludmFsaWRhdGUoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9wcm9jZXNzSWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdLSUxMKTsKKyAgICBt
X3Byb2Nlc3NJZGVudGlmaWVyID0gMDsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnBsYXRm
b3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAxYzhlZjQ2M2NjMi4u
ODQ3ZmI1YzMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQ
cm94eS5oCkBAIC0yMjQsNyArMjI0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdlYlByZWZlcmVuY2Vz
JiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAotI2lmIFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIGNyZWF0ZUluc3Bl
Y3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRlSW5zcGVjdG9yV2luZG93VGl0bGUoKSBjb25z
dDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3Rl
Ym9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oCmluZGV4IDI2NTU3MzYxZjU1Li43NzJlMTA5MTVmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtOTQsNiArOTQsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgc2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiwg
dWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICAgICB2b2lkIHNldFBhc3RlYm9hcmRCdWZmZXJG
b3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVi
b2FyZFR5cGUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0X3Qgc2l6ZSwgdWlu
dDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RLKQogICAg
IHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25z
dCBXZWJTZWxlY3Rpb25EYXRhJik7CiAgICAgdm9pZCByZWFkRnJvbUNsaXBib2FyZChjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJTZWxlY3Rpb25EYXRhJik7CkBAIC0xMDEsNyArMTAy
LDE0IEBAIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQcm94eSogbV9wcmltYXJ5U2VsZWN0aW9uT3du
ZXIgeyBudWxscHRyIH07CiAgICAgV2ViRnJhbWVQcm94eSogbV9mcmFtZVdyaXRpbmdUb0NsaXBi
b2FyZCB7IG51bGxwdHIgfTsKICNlbmRpZiAvLyBQTEFURk9STShHVEspCi0gICAgCisKKyNpZiBQ
TEFURk9STShXUEUpCisgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0cmluZz4m
IHBhc3RlYm9hcmRUeXBlcyk7CisgICAgdm9pZCByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWlu
dDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJik7
CisgICAgdm9pZCB3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFz
dGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICB2b2lkIHdyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpOworI2VuZGlmCisKICAg
ICBXZWJQcm9jZXNzUHJveHlMaXN0IG1fd2ViUHJvY2Vzc1Byb3h5TGlzdDsKIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDczNmEwYWQ0NTFjLi43MDE1NDQzZWE4ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCkBA
IC01NSw0ICs1NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJveHkgewogICAgIFdy
aXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3QgV2ViS2l0OjpXZWJT
ZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogICAgIFJlYWRGcm9tQ2xpcGJvYXJkKFN0
cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYlNlbGVjdGlvbkRhdGEg
cGFzdGVib2FyZENvbnRlbnQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBHZXRQ
YXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpCisgICAgUmVhZFN0cmlu
Z0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFzdGVib2FyZFR5cGUpIC0+
IChTdHJpbmcgc3RyaW5nKQorICAgIFdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChzdHJ1Y3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudCkKKyAgICBXcml0ZVN0cmluZ1Rv
UGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0KQorI2VuZGlmCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAwZDMw
MmRkYWIxMy4uNGQzMjliNDBmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIFdlYlByb2Nlc3NQb29sOjpXZWJQcm9j
ZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKICAg
ICBub3RpZnlUaGlzV2ViUHJvY2Vzc1Bvb2xXYXNDcmVhdGVkKCk7CiB9CiAKLSNpZiAhUExBVEZP
Uk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogdm9pZCBX
ZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAzNzBmZjJiYTFjCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKQEAgLTAsMCArMSwx
NDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCisKKyNpbmNsdWRl
ICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0
YXRpYyBUZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CisKK2NvbnN0IFRleHRDaGVj
a2VyU3RhdGUmIFRleHRDaGVja2VyOjpzdGF0ZSgpCit7CisgICAgcmV0dXJuIHRleHRDaGVja2Vy
U3RhdGU7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldFRlc3RpbmdNb2RlKGJvb2wpCit7Cit9
CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzVGVzdGluZ01vZGUoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFRleHRDaGVja2VyOjppc0NvbnRp
bnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldENvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjb250aW51b3VzU3BlbGxD
aGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFibGVkU3RhdGVDaGFu
Z2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50NjRfdCBUZXh0Q2hl
Y2tlcjo6dW5pcXVlU3BlbGxEb2N1bWVudFRhZyhXZWJQYWdlUHJveHkqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRleHRDaGVja2VyOjpj
bG9zZVNwZWxsRG9jdW1lbnRXaXRoVGFnKGludDY0X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2hlY2tTcGVsbGluZ09mU3RyaW5nKGludDY0X3Qs
IFN0cmluZ1ZpZXcsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja0dyYW1tYXJPZlN0cmluZyhpbnQ2NF90LCBT
dHJpbmdWaWV3LCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBpbnQzMl90JiwgaW50
MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6
c3BlbGxpbmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxsaW5nVUlJc1Nob3dp
bmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVw
ZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVT
cGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoaW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
R3JhbW1hckRldGFpbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0
Q2hlY2tlcjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJiwgY29uc3Qg
U3RyaW5nJiwgaW50MzJfdCwgVmVjdG9yPFN0cmluZz4mLCBib29sKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmxlYXJuV29yZChpbnQ2NF90LCBjb25z
dCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNr
ZXI6Omlnbm9yZVdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tpbmdPZlN0cmluZyhQ
YXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4sIGludDMyX3QpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmFlZWUzYzE3ZgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUu
Y3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0
b3JQcm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViUGFn
ZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JXaW5kb3coKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1EaWRDbG9zZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZUZvckNyYXNoKCkKK3sKK30KKwordm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKwordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1IaWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1CcmluZ0luc3BlY3RlZFBhZ2VUb0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitib29sIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omlu
c3BlY3RvclBhZ2VVUkwoKQoreworICAgIHJldHVybiBTdHJpbmcoInJlc291cmNlOi8vL29yZy93
cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIik7Cit9CisKK1N0cmluZyBXZWJJ
bnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yVGVzdFBhZ2VVUkwoKQoreworICAgIHJldHVybiBTdHJp
bmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvVGVzdC5odG1s
Iik7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yQmFzZVVSTCgpCit7
CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlcklu
dGVyZmFjZS8iKTsKK30KKwordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5z
cGVjdGVkV2luZG93SGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biAwOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRX
aW5kb3dXaWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30K
Kwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGV0YWNo
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0
YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1TYXZlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJvb2wpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1B
cHBlbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaEF2YWlsYWJp
bGl0eUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUv
V2ViUGFnZVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFn
ZVByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGEy
MDJhYmViNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlBhZ2VQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlLmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRhcmRVc2VyQWdlbnQo
Y29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChMaW51eDsgeDg2XzY0
IEdOVS9MaW51eCkgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtlIEdlY2tvKSBWZXJzaW9u
LzguMCBTYWZhcmkvNjAxLjEiOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6c2F2ZVJlY2VudFNl
YXJjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpSZWNlbnRTZWFyY2g+
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6bG9h
ZFJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxXZWJDb3JlOjpSZWNlbnRTZWFy
Y2g+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYnNpdGVEYXRhU3Rv
cmU6OnBsYXRmb3JtUmVtb3ZlUmVjZW50U2VhcmNoZXMoc3RkOjpjaHJvbm86OnN5c3RlbV9jbG9j
azo6dGltZV9wb2ludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRlJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFByb3h5V1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGQzZDBlYjQ2ZDQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQ
cm94eVdQRS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2Vi
UGFzdGVib2FyZFByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtUGFzdGVib2Fy
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7Cit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6
Z2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMpCit7Cisg
ICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkuZ2V0VHlwZXMocGFzdGVib2FyZFR5cGVzKTsKK30KKwor
dm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRf
dCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcmIHZhbHVl
KQoreworICAgIHZhbHVlID0gUGxhdGZvcm1QYXN0ZWJvYXJkKCkucmVhZFN0cmluZyhpbmRleCwg
cGFzdGVib2FyZFR5cGUpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVXZWJD
b250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50JiBj
b250ZW50KQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLndyaXRlKGNvbnRlbnQpOworfQor
Cit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIFBsYXRm
b3JtUGFzdGVib2FyZCgpLndyaXRlKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KTsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlByZWZlcmVuY2VzV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2Vi
UHJlZmVyZW5jZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5mZjgxZmNkYTFjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlByZWZlcmVuY2Vz
OjpwbGF0Zm9ybUluaXRpYWxpemVTdG9yZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVTdHJpbmdWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlQm9vbFZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVVSW50MzJWYWx1ZUZvcktleShjb25zdCBTdHJp
bmcmLCB1aW50MzJfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBy
ZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYs
IGRvdWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlByZWZlcmVu
Y2VzOjpwbGF0Zm9ybVVwZGF0ZUZsb2F0VmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZmxvYXQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxh
dGZvcm1HZXRTdHJpbmdVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgU3RyaW5nJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXRCb29sVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYs
IGJvb2wmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldFVJbnQzMlVzZXJWYWx1ZUZvcktleShj
b25zdCBTdHJpbmcmLCB1aW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0RG91Ymxl
VXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRvdWJsZSYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQ
RS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmRlNGYzMTcyNDUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQ
b29sV1BFLmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMp
IDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Bvb2wuaCIKKworI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIgorI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCisj
aW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9y
U2VydmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oIgorI2lu
Y2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3Rl
bS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3dGYv
Z2xpYi9HVW5pcXVlUHRyLmg+CisKKy8vIEZJWE1FOiBNZXJnZSB3aXRoIFdlYlByb2Nlc3NQb29s
R3RrPyBBYnN0cmFjdCB0aGUgY29tbW9uIHBhcnRzPworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
I2lmIEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQorc3RhdGljIHZvaWQgaW5pdEluc3BlY3RvclNl
cnZlcigpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxzZTsKKyAgICBpZiAo
aW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRpYWxpemVkID0gdHJ1ZTsK
KyAgICBTdHJpbmcgc2VydmVyQWRkcmVzcyhnX2dldGVudigiV0VCS0lUX0lOU1BFQ1RPUl9TRVJW
RVIiKSk7CisKKyAgICBpZiAoIXNlcnZlckFkZHJlc3MuaXNOdWxsKCkpIHsKKyAgICAgICAgU3Ry
aW5nIGJpbmRBZGRyZXNzID0gIjEyNy4wLjAuMSI7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IHBv
cnQgPSAyOTk5OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsKKyAgICAgICAgc2Vy
dmVyQWRkcmVzcy5zcGxpdCgnOicsIHJlc3VsdCk7CisKKyAgICAgICAgaWYgKHJlc3VsdC5zaXpl
KCkgPT0gMikgeworICAgICAgICAgICAgYmluZEFkZHJlc3MgPSByZXN1bHRbMF07CisgICAgICAg
ICAgICBib29sIG9rID0gZmFsc2U7CisgICAgICAgICAgICBwb3J0ID0gcmVzdWx0WzFdLnRvSW50
KCZvayk7CisgICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAgICAgcG9ydCA9IDI5
OTk7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBwYXJzZSB0aGUgcG9ydC4g
VXNlIDI5OTkgaW5zdGVhZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlICVzLCB3cm9uZyBmb3JtYXQ/IFVzZSAx
MjcuMC4wLjE6Mjk5OSBpbnN0ZWFkLiIsIHNlcnZlckFkZHJlc3MudXRmOCgpLmRhdGEoKSk7CisK
KyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigpLmxpc3RlbihiaW5k
QWRkcmVzcywgcG9ydCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHN0YXJ0IGxp
c3RlbmluZyBvbjogSVAgYWRkcmVzcz0lcywgcG9ydD0lZC4iLCBiaW5kQWRkcmVzcy51dGY4KCku
ZGF0YSgpLCBwb3J0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIExPRyhJbnNwZWN0
b3JTZXJ2ZXIsICJUbyBzdGFydCBpbnNwZWN0b3Igc2VydmVyIHNldCBXRUJLSVRfSU5TUEVDVE9S
X1NFUlZFUiB0byAxMjcuMC4wLjE6Mjk5OSBmb3IgZXhhbXBsZS4iKTsKK30KKyNlbmRpZgorCitX
VEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0QXBwbGljYXRp
b25DYWNoZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3Rv
cnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImFwcGNh
Y2hlIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKworV1RGOjpTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhQ2FjaGVEaXJlY3Rvcnko
KQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJtZWRpYWNhY2hlIiwgbnVsbHB0cikp
OworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9u
KGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZv
cm1Jbml0aWFsaXplKCkKK3sKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3JlKQorICAgICAgICBt
X3dlYnNpdGVEYXRhU3RvcmUtPnJlZ2lzdGVyU2hhcmVkUmVzb3VyY2VMb2FkT2JzZXJ2ZXIoKTsK
K30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhX
ZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQoreworI2lmIEVOQUJMRShJ
TlNQRUNUT1JfU0VSVkVSKQorICAgIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKTsKKyNlbmRpZgorCisg
ICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlDYWNoZURpc2FibGVk
IHx8IGNhY2hlTW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7Cit9CisKK3ZvaWQg
V2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2Rpcigp
LCAid3BlIiwgImRhdGFiYXNlcyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3Ry
aW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7
Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0SW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGluZGV4ZWRE
QkRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2Rpcigp
LCAid3BlIiwgImRhdGFiYXNlcyIsICJpbmRleGVkZGIiLCBudWxscHRyKSk7CisgICAgcmV0dXJu
IFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oaW5kZXhlZERCRGF0
YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRm
b3JtRGVmYXVsdEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAoreworICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9k
aXIoKSwgIndwZSIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNv
cmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJhc2VEaXJlY3Rvcnku
Z2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVs
dExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gc3RvcmFn
ZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIs
ICJsb2NhbHN0b3JhZ2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zy
b21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7Cit9CisK
K1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFLZXlzU3Rv
cmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWVkaWFLZXlzU3RvcmFn
ZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIs
ICJtZWRpYWtleXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21G
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24obWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeS5nZXQoKSk7
Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TmV0d29y
a0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRpc2tDYWNoZURpcmVj
dG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiY2Fj
aGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVt
UmVwcmVzZW50YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdl
YlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRKYXZhU2NyaXB0Q29uZmlndXJhdGlv
bkRpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNjcmlwdENvcmVDb25m
aWdEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUi
LCAiSmF2YVNjcmlwdENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0Q29yZUNvbmZpZ0Rp
cmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtUmVzb2x2
ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaCBiL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDJQcmVmaXguaAppbmRleCA1NzUwOWI5N2E0Yy4uZTJiZTgwOWQ4ZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyUHJlZml4LmgKQEAgLTU3LDcgKzU3LDcgQEAKIAogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5l
IEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgMQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcAppbmRleCBjOTFiNDVhOWM1MS4uMDhhNjhkMDc5ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVkbygpCiAg
ICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1Jl
ZG8oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYlBhZ2VQcm94eTo6UmVkbykpLCBNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KHJlc3VsdCkpOwogfQogCi0jaWYg
IVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShHVEspICYm
ICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViRWRpdG9yQ2xpZW50
OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogICAgIGlmICht
X3BhZ2UtPmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KGV2ZW50KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFt
ZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNTUzN2YxOWYwNmQuLjJhYzVmZGE0MTA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTc5OCw0ICsxNzk4LDEzIEBAIHZvaWQg
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZ0ljb24odWludDY0X3QgbG9hZElk
ZW50aWZpZXIsIFNoYXJlZEJ1CiAgICAgfQogfQogCitib29sIFdlYkZyYW1lTG9hZGVyQ2xpZW50
OjpzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGNvbnN0Cit7Cisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisgICAgcmV0dXJuIHRy
dWU7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmgKaW5kZXggMjEyZjEwZmRkZTEuLjNmMDNlNjkzOWY1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCB1aW50NjRf
dCBjYWxsYmFja0lEKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaGVkTG9hZGluZ0ljb24odWludDY0
X3QgbG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGZpbmFsOwogCisgICAg
Ym9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVSTCYpIGNvbnN0IG92
ZXJyaWRlOworCiAgICAgV2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgUmVmUHRyPFBsdWdpblZpZXc+
IG1fcGx1Z2luVmlldzsKICAgICBib29sIG1faGFzU2VudFJlc3BvbnNlVG9QbHVnaW5WaWV3Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDJlZGY0Yjc2ZDU0Li5iMjU3
MTY4MGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMzYwLDQg
KzM2MCwzMSBAQCBSZWY8U2VsZWN0aW9uRGF0YT4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFk
RnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYgogCiAjZW5kaWYgLy8gUExBVEZPUk0o
R1RLKQogCisjaWYgUExBVEZPUk0oV1BFKQorLy8gUGFzdGVib2FyZFN0cmF0ZWd5CisKK3ZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpCit7
CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+
c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFzdGVib2FyZFR5cGVz
KCksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlczo6UmVw
bHkodHlwZXMpLCAwKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZFN0
cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlw
ZSkKK3sKKyAgICBTdHJpbmcgdmFsdWU7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFy
ZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJvYXJkVHlwZSksIE1l
c3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZDo6UmVw
bHkodmFsdWUpLCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2Vi
Q29udGVudCYgY29udGVudCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQ
cm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6Oldy
aXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb250ZW50KSwgMCk7Cit9CisKK3ZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2Fy
ZFByb3h5OjpXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChwYXN0ZWJvYXJkVHlwZSwgdGV4dCksIDAp
OworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGU0Mzg3YzkzMDIxLi5hZWM3OWJj
ZmMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC04NiwxMCArODYsMTgg
QEAgcHJpdmF0ZToKICAgICBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9yPFN0
cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKICAgICBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKICAgICB2b2lk
IHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgV2Vi
Q29yZTo6U2VsZWN0aW9uRGF0YSYpIG92ZXJyaWRlOwogICAgIFJlZjxXZWJDb3JlOjpTZWxlY3Rp
b25EYXRhPiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBv
dmVycmlkZTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwgdm9pZCBn
ZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgU3Ry
aW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2Fy
ZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBl
LCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkMDM0YjAyNjczCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUv
V2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpZiBFTkFCTEUoQ09OVEVY
VF9NRU5VUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6Omxvb2tVcEluRGljdGlv
bmFyeShXZWJDb3JlOjpGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9v
bCBXZWJDb250ZXh0TWVudUNsaWVudDo6aXNTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6
OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3RvcFNwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShD
T05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJkY2EzMDI0Y2VkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2Vi
RWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9F
ZGl0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBpZGVhIGZvciB0aGUgYXJy
YXkvbWFwIGJlbG93IGNvbWVzIGZyb20gQmxpbmsncyBFZGl0aW5nQmVoYXZpb3IuY3BwLgorCitz
dGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSAgPSAxIDw8IDA7CitzdGF0aWMgY29uc3QgdW5z
aWduZWQgQWx0S2V5ICAgPSAxIDw8IDE7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkg
PSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgTWV0YUtleSAgPSAxIDw8IDM7CisKKy8v
IEtleXMgd2l0aCBzcGVjaWFsIG1lYW5pbmcuIFRoZXNlIHdpbGwgYmUgZGVsZWdhdGVkIHRvIHRo
ZSBlZGl0b3IgdXNpbmcKKy8vIHRoZSBleGVjQ29tbWFuZCgpIG1ldGhvZAorc3RydWN0IEtleURv
d25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1bnNpZ25lZCBtb2RpZmll
cnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBLZXlQcmVzc0VudHJ5IHsK
KyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2RpZmllcnM7CisgICAgY29u
c3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3duRW50cnkga2V5RG93bkVu
dHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZUxl
ZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBT
aGlmdEtleSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVXb3JkTGVm
dCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtl
eSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVdvcmRMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwg
IDAsICAgICAgICAgICAgICAgICAgIk1vdmVSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVJpZ2h0
QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICBDdHJs
S2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVXb3JkUmlnaHRB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgMCwgICAgICAg
ICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBBbmRNb2RpZnlTZWxl
Y3Rpb24iICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNoaWZ0S2V5LCAgICAg
ICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZURvd24iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtleSwgICAgICAgICAg
ICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19O
RVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92
ZVBhcmFncmFwaEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAgIHsgVktfRE9XTiwg
ICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoRm9yd2FyZEFuZE1vZGlmeVNlbGVj
dGlvbiIgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVQYWdl
VXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQsICAgMCwg
ICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9CZWdpbm5p
bmdPZkxpbmUiICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIFNoaWZ0S2V5
LAorICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAgIEN0cmxLZXksICAg
ICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvQmVnaW5u
aW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0VuZE9mTGlu
ZSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgU2hpZnRLZXks
ICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICB9LAor
ICAgIHsgVktfRU5ELCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50
IiAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0cmxLZXkgfCBTaGlm
dEtleSwKKyAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFDSywgICAwLCAgICAg
ICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19CQUNLLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgMCwgICAgICAgICAg
ICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3JkQmFja3dhcmQiICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIEN0cmxLZXksICAgICAgICAg
ICAgIkRlbGV0ZVdvcmRGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdC
JywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ0knLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJU
b2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVScsICAg
ICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZVVuZGVybGluZSIgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAgICAgICAiQ2FuY2Vs
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfT0VNX1BFUklP
RCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RBQiwgICAgU2hpZnRL
ZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEN0cmxLZXksICAg
ICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRLZXkgfCBTaGlmdEtl
eSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19SRVRVUk4sIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydExpbmVCcmVhayIgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICAvLyBUaGVzZSBwcm9iYWJseSBuZWVkIGhhbmRsaW5nIHNv
bWV3aGVyZSBlbHNlIHNvIGRvIG5vdCBleGVjdXRlIHRoZW0uIFRoZQorICAgIC8vICdDdXQnIGNv
bW1hbmQgaXMgcmVtb3ZpbmcgdGV4dCBzbyBsZXQncyBhdm9pZCBsb3NpbmcgdGhlIHVzZXIgbG9z
aW5nIGRhdGEKKyAgICAvLyB1bnRpbCB3ZSBpbXBsZW1lbnQgY2xpcGJvYXJkIHN1cHBvcnQgd2hl
cmV2ZXIgaXQgc2hvdWxkIGJlLgorICAgIHsgVktfSU5TRVJULCBDdHJsS2V5LCAgICAgICAgICAg
ICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19J
TlNFUlQsIFNoaWZ0S2V5LCAgICAgICAgICAgIlBhc3RlIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAgICAgICAgICAiQ3V0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0MnLCAgICAg
ICAgIEN0cmxLZXksICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlBhc3RlIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdWJywgICAgICAgICBD
dHJsS2V5IHwgU2hpZnRLZXksICJQYXN0ZUFuZE1hdGNoU3R5bGUiICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ1gnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJDdXQiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQScsICAgICAgICAgQ3RybEtl
eSwgICAgICAgICAgIlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVW5kbyIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAgIEN0cmxLZXkgfCBT
aGlmdEtleSwgIlJlZG8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyAnWScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlJlZG8iICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgMCwgICAgICAgICAgICAgICAg
ICAiT3ZlcldyaXRlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsKKworc3Rh
dGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVzW10gPSB7CisgICAgeyAnXHQn
LCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0
QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICAw
LCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xp
bmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgU2hpZnRL
ZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEFsdEtleSB8IFNo
aWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
K307CisKK3N0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBLZXlib2Fy
ZEV2ZW50JiBldmVudCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SGFzaE1hcDxpbnQs
IGNvbnN0IGNoYXIqPj4ga2V5RG93bkNvbW1hbmRzTWFwOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlQcmVzc0NvbW1hbmRzTWFwOworCisg
ICAgaWYgKGtleURvd25Db21tYW5kc01hcC5nZXQoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5RG93bkVudHJpZXMpOyBp
KyspCisgICAgICAgICAgICBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuc2V0KGtleURvd25FbnRy
aWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURvd25FbnRyaWVzW2ldLnZpcnR1YWxLZXksIGtl
eURvd25FbnRyaWVzW2ldLm5hbWUpOworICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
V1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyBpKyspCisgICAgICAgICAgICBrZXlQ
cmVzc0NvbW1hbmRzTWFwLmdldCgpLnNldChrZXlQcmVzc0VudHJpZXNbaV0ubW9kaWZpZXJzIDw8
IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0VudHJpZXNbaV0ubmFt
ZSk7CisgICAgfQorCisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQu
c2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5OworICAgIGlmIChldmVu
dC5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAgICBpZiAoZXZlbnQu
Y3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKyAgICBpZiAoZXZlbnQu
bWV0YUtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTWV0YUtleTsKKworICAgIGlmIChldmVu
dC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkgeworICAgICAgICBpbnQgbWFw
S2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQua2V5Q29kZSgpOworICAgICAgICByZXR1cm4g
bWFwS2V5ID8ga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkpIDogbnVsbHB0cjsK
KyAgICB9CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQuY2hhckNv
ZGUoKTsKKyAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01hcC5nZXQoKS5nZXQo
bWFwS2V5KSA6IG51bGxwdHI7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtleVByZXNzKEZyYW1l
JiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVu
dCYgcGxhdGZvcm1FdmVudCkKK3sKKyAgICBTdHJpbmcgY29tbWFuZE5hbWUgPSBpbnRlcnByZXRL
ZXlFdmVudChldmVudCk7CisKKyAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1wdHkoKSkgeworICAg
ICAgICBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVjdXRlKCk7CisgICAg
ICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJhY3RlcnMgYXMgdGhleSBj
YW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCisgICAgaWYgKGV2ZW50LmNoYXJDb2Rl
KCkgPCAnICcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGluc2VydCBhbnl0aGlu
ZyBpZiBhIG1vZGlmaWVyIGlzIHByZXNzZWQgYW5kIGl0IGhhcyBub3QgYmVlbiBoYW5kbGVkIHll
dAorICAgIGlmIChwbGF0Zm9ybUV2ZW50LmN0cmxLZXkoKSB8fCBwbGF0Zm9ybUV2ZW50LmFsdEtl
eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUuZWRpdG9yKCkuaW5zZXJ0VGV4
dChwbGF0Zm9ybUV2ZW50LnRleHQoKSwgJmV2ZW50KSkKKyAgICAgICAgZXZlbnQuc2V0RGVmYXVs
dEhhbmRsZWQoKTsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihGcmFtZSYgZnJhbWUs
IEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKQorewor
ICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2ZW50KTsKKyAgICBp
ZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBz
aG91bGRuJ3QgaW5zZXJ0IHRleHQgdGhyb3VnaCB0aGUgZWRpdG9yLiBMZXQgV2ViQ29yZSBkZWNp
ZGUKKyAgICAvLyBob3cgdG8gaGFuZGxlIHRoYXQgKHNheSwgVGFiLCB3aGljaCBjb3VsZCBhbHNv
IGJlIHVzZWQgdG8KKyAgICAvLyBjaGFuZ2UgZm9jdXMpLgorICAgIEVkaXRvcjo6Q29tbWFuZCBj
b21tYW5kID0gZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSk7CisgICAgaWYgKGNv
bW1hbmQuaXNUZXh0SW5zZXJ0aW9uKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbW1hbmQu
ZXhlY3V0ZSgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9CisKK3ZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6OktleWJvYXJkRXZlbnQq
IGV2ZW50KQoreworICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwor
ICAgIEFTU0VSVChub2RlKTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5kb2N1bWVudCgpLmZy
YW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAgIC8vIEZJWE1FOiBSZW9yZGVyIHRoZSBj
aGVja3MgaW4gYSBtb3JlIHNlbnNpYmxlIHdheS4KKworICAgIGNvbnN0IFBsYXRmb3JtS2V5Ym9h
cmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOworICAgIGlmICghcGxh
dGZvcm1FdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgdGhpcyB3YXMgYW4gSU1F
IGV2ZW50IGRvbid0IGRvIGFueXRoaW5nLgorICAgIGlmIChwbGF0Zm9ybUV2ZW50LT53aW5kb3dz
VmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICByZXR1cm47CisKKyAg
ICAvLyBEb24ndCBhbGxvdyB0ZXh0IGluc2VydGlvbiBmb3Igbm9kZXMgdGhhdCBjYW5ub3QgZWRp
dC4KKyAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCkpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFRoaXMgaXMganVzdCBhIG5vcm1hbCB0ZXh0IGluc2VydGlvbiwgc28gd2FpdCB0
byBleGVjdXRlIHRoZSBpbnNlcnRpb24KKyAgICAvLyB1bnRpbCBhIGtleXByZXNzIGV2ZW50IGhh
cHBlbnMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgaW5zZXJ0aW9uIHdpbGwgbm90CisgICAg
Ly8gYmUgcmVmbGVjdGVkIGluIHRoZSBjb250ZW50cyBvZiB0aGUgZmllbGQgdW50aWwgdGhlIGtl
eXVwIERPTSBldmVudC4KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
cHJlc3NFdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleVByZXNzKCpmcmFtZSwgKmV2ZW50
LCAqcGxhdGZvcm1FdmVudCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygp
LmtleWRvd25FdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24oKmZyYW1lLCAqZXZl
bnQsICpwbGF0Zm9ybUV2ZW50KTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGllbnQ6OmhhbmRsZUlu
cHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBldmVudCkKK3sKKyAgICBj
b25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBldmVudC0+a2V5RXZl
bnQoKTsKKyAgICBpZiAocGxhdGZvcm1FdmVudCAmJiBwbGF0Zm9ybUV2ZW50LT53aW5kb3dzVmly
dHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBldmVudC0+cHJldmVudERl
ZmF1bHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBN
ZW51V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmFiODM3
YjBhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCkBAIC0wLDAgKzEsMzggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9O
b3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQb3B1cE1l
bnU6OnNldFVwUGxhdGZvcm1EYXRhKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBQbGF0Zm9ybVBv
cHVwTWVudURhdGEmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDYwZTkxNjc5OWIzLi5k
M2RmNDZhMTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAtNzQsMTAgKzc0LDEw
IEBAIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJlYWRlZENvb3JkaW5hdGVk
TGF5ZXJUcmVlSG9zdChXZWJQYWdlJiB3ZWJQCiAgICAgICAgIC8vIERvIG5vdCBkbyBmcmFtZSBz
eW5jIHdoZW4gcmVuZGVyaW5nIG9mZnNjcmVlbiBpbiB0aGUgd2ViIHByb2Nlc3MgdG8gZW5zdXJl
IHRoYXQgU3dhcEJ1ZmZlcnMgbmV2ZXIgYmxvY2tzLgogICAgICAgICAvLyBSZW5kZXJpbmcgdG8g
dGhlIGFjdHVhbCBzY3JlZW4gd2lsbCBoYXBwZW4gbGF0ZXIgYW55d2F5IHNpbmNlIHRoZSBVSSBw
cm9jZXNzIHNjaGVkdWxlcyBhIHJlZHJhdyBmb3IgZXZlcnkgdXBkYXRlLAogICAgICAgICAvLyB0
aGUgY29tcG9zaXRvciB3aWxsIHRha2UgY2FyZSBvZiBzeW5jaW5nIHRvIHZibGFuay4KLSAgICAg
ICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3NpdG9y
Q2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53aW5kb3coKSwgVGhy
ZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWludEZsYWdzKTsKKyAg
ICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3Np
dG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53
aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWlu
dEZsYWdzKTsKICAgICAgICAgbV9sYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCA9IG1fc3VyZmFj
ZS0+c3VyZmFjZUlEKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVh
ZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgc2NhbGVkU2l6ZSwgc2Nh
bGVGYWN0b3IpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNy
ZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9y
KTsKIAogICAgIGRpZENoYW5nZVZpZXdwb3J0KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCAyZTc4MGQ5MWJlNS4uNWYw
OTNhYzdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9E
cmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Ry
YXdpbmdBcmVhLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2lu
Y2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVkZSAiVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYVdQRS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5nQXJlYUltcGwuaCIKICNl
bmRpZgpAQCAtNTUsNiArNTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2luZ0FyZWE+IERyYXdp
bmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFnZQogI2VuZGlmCiAg
ICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWU6CiAgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPih3ZWJQYWdlLCBwYXJh
bWV0ZXJzKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjYXNlIERyYXdpbmdBcmVhVHlwZVdQ
RToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFXUEU+KHdlYlBh
Z2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKICAgICBjYXNlIERyYXdpbmdBcmVhVHlwZUltcGw6CiAg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhSW1wbD4od2ViUGFnZSwg
cGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKaW5kZXggMjFiMTJjZGJlMjMuLmU1MTJiYmI2Nzg1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDk1LDcgKzM0OTUsNyBAQCBO
b3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6Om5vdGlmaWNhdGlv
blBlcm1pc3Npb25SZXF1ZXN0TWFuYQogICAgIHJldHVybiBtX25vdGlmaWNhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShXUEUpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KEtl
eWJvYXJkRXZlbnQqIGV2dCkKIHsKICAgICBOb2RlKiBub2RlID0gZXZ0LT50YXJnZXQoKS0+dG9O
b2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAwYjA1NjFiYjE2Ny4uMjM0MWMxMzgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgcHJpdmF0ZToKICNlbmRp
ZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAm
JiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVu
dChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40ZTIzZDM0
MGQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKworI2luY2x1ZGUgIkNvbXBvc2l0
aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXI6On5Db21wb3NpdGluZ01hbmFnZXIo
KQoreworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25GZCA9PSAtMSk7Cit9CisKK3ZvaWQgQ29tcG9z
aXRpbmdNYW5hZ2VyOjplc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmIHdlYlBhZ2UpCit7Cisg
ICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGU7CisgICAgd2ViUGFnZS5zZW5kU3lu
YyhNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5lY3Rpb24o
KSwKKyAgICAgICAgTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpFc3RhYmxpc2hD
b25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSGFuZGxlKSk7CisKKyAgICBtX2Nvbm5lY3Rpb25G
ZCA9IGNvbm5lY3Rpb25IYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjI2MzFhMzFjOTk1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApAQCAt
MCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgQ29tcG9zaXRpbmdNYW5hZ2VyX2gKKyNkZWZpbmUgQ29tcG9zaXRpbmdN
YW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgQ29tcG9zaXRpbmdNYW5hZ2VyIGZpbmFs
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXIpOworcHVibGlj
OgorICAgIENvbXBvc2l0aW5nTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB+Q29tcG9zaXRpbmdN
YW5hZ2VyKCk7CisKKyAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZSYpOworICAg
IGludCByZWxlYXNlQ29ubmVjdGlvbkZkKCkgeyByZXR1cm4gc3RkOjpleGNoYW5nZShtX2Nvbm5l
Y3Rpb25GZCwgLTEpOyB9OworCitwcml2YXRlOgorICAgIGludCBtX2Nvbm5lY3Rpb25GZCB7IC0x
IH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbXBvc2l0aW5n
TWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9EcmF3aW5nQXJlYVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0RyYXdpbmdBcmVhV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uMzQ0N2FjOGNiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApAQCAtMCwwICsxLDE5MiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFXUEUuaCIKKworI2luY2x1ZGUgIkRy
YXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0b3JlLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL01haW5GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworRHJhd2luZ0FyZWFXUEU6OkRyYXdpbmdBcmVhV1BF
KFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKQorICAg
IDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlV1BFLCB3ZWJQYWdlKQoreworICAgIHdlYlBh
Z2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5nTW9kZSh0cnVlKTsK
KyAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDApOworfQorCitEcmF3aW5nQXJl
YVdQRTo6fkRyYXdpbmdBcmVhV1BFKCkKK3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6bGF5
ZXJIb3N0RGlkRmx1c2hMYXllcnMoKQoreworICAgIG1fd2ViUGFnZS5zZW5kKE1lc3NhZ2VzOjpE
cmF3aW5nQXJlYVByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDAsIG1fbGF5
ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7Cisg
ICAgbV9sYXllclRyZWVIb3N0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheSgp
OworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3Qg
SW50UmVjdCYgcmVjdCkKK3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5SW5SZWN0KHJl
Y3QpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY3JvbGwoY29uc3QgSW50UmVjdCYgc2Ny
b2xsUmVjdCwgY29uc3QgSW50U2l6ZSYpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7
CisgICAgbV9sYXllclRyZWVIb3N0LT5zY3JvbGxOb25Db21wb3NpdGVkQ29udGVudHMoc2Nyb2xs
UmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnBhZ2VCYWNrZ3JvdW5kVHJhbnNwYXJl
bmN5Q2hhbmdlZCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXll
clRyZWVIb3N0LT5wYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCitib29sIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnRBc3luYyh1aW50NjRfdCBj
YWxsYmFja0lEKQoreworICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QgJiYgbV9sYXllclRyZWVI
b3N0LT5mb3JjZVJlcGFpbnRBc3luYyhjYWxsYmFja0lEKTsKK30KKwordm9pZCBEcmF3aW5nQXJl
YVdQRTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sIGZyb3plbikKK3sKKyAgICBtX2xh
eWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBmcm96ZW47Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6
OnNldFBhaW50aW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVu
Y2VzU3RvcmUmIHN0b3JlKQoreworICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygp
LnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6Zm9yY2VDb21wb3NpdGluZ01vZGVLZXkoKSkpOworfQorCit2b2lkIERyYXdp
bmdBcmVhV1BFOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVy
VHJlZUhvc3QtPmNvbnRlbnRzU2l6ZUNoYW5nZWQoc2l6ZSk7Cit9CisKK0dyYXBoaWNzTGF5ZXJG
YWN0b3J5KiBEcmF3aW5nQXJlYVdQRTo6Z3JhcGhpY3NMYXllckZhY3RvcnkoKQoreworICAgIGlm
IChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QtPmdyYXBo
aWNzTGF5ZXJGYWN0b3J5KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgRHJhd2lu
Z0FyZWFXUEU6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVI
b3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsKK30KKwordm9pZCBE
cmF3aW5nQXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKQoreworICAgIGlm
IChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2NoZWR1bGVMYXll
ckZsdXNoKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNjaGVkdWxlQ29tcG9zaXRpbmdM
YXllckZsdXNoSW1tZWRpYXRlbHkoKQoreworICAgIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoKCk7Cit9CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SKQorUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gRHJhd2luZ0FyZWFX
UEU6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5
SUQpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0dXJuIG1fbGF5ZXJU
cmVlSG9zdC0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CisKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCit2b2lkIERyYXdpbmdBcmVhV1BFOjphdHRhY2hW
aWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqIGZyYW1lLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyAgICBpZiAoIWZyYW1lLT5p
c01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQobV9sYXllclRyZWVI
b3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdPdmVybGF5Um9vdExheWVyKHZpZXdP
dmVybGF5Um9vdExheWVyKTsKK30KKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJF
QURFRCkKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikKK3sKK30KKyNlbmRpZgorCisjaWYgVVNFKENP
T1JESU5BVEVEX0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCit2b2lkIERyYXdpbmdB
cmVhV1BFOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQoreworfQorI2VuZGlmCisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBi
b29sLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6
ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQoreworICAgIG1fd2ViUGFn
ZS5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgbV93ZWJQYWdl
LnNldFNpemUoc2l6ZSk7CisgICAgbV93ZWJQYWdlLmxheW91dElmTmVlZGVkKCk7CisgICAgbV93
ZWJQYWdlLnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlvbihzY3JvbGxPZmZz
ZXQpOworCisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0
LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFnZS5zaXplKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVh
V1BFOjpkaWRVcGRhdGUoKQoreworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjplbnRlckFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdNb2RlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIpCit7Cisg
ICAgQVNTRVJUKCFtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdCA9IExheWVy
VHJlZUhvc3Q6OmNyZWF0ZShtX3dlYlBhZ2UpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Um9v
dENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7CisgICAgbV9sYXllclRyZWVIb3N0LT5z
ZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKHRydWUpOworICAgIG1f
bGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjQ2YzUzNTRlNGZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oCkBAIC0wLDAgKzEsOTMg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lm
bmRlZiBEcmF3aW5nQXJlYVdQRV9oCisjZGVmaW5lIERyYXdpbmdBcmVhV1BFX2gKKworI2luY2x1
ZGUgIkRyYXdpbmdBcmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJl
YSB7CitwdWJsaWM6CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisg
ICAgdm9pZCBsYXllckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgor
ICAgIC8vIERyYXdpbmdBcmVhCisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRzRGlzcGxheSgpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Ny
b2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHBhZ2VCYWNrZ3JvdW5kVHJh
bnNwYXJlbmN5Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBmb3JjZVJlcGFp
bnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWludDY0
X3QgY2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldExheWVyVHJlZVN0
YXRlSXNGcm96ZW4oYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGxheWVyVHJlZVN0
YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZVN0YXRlSXNG
cm96ZW47IH0KKyAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0KKworICAgIHZpcnR1
YWwgdm9pZCBzZXRQYWludGluZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2ViQ29yZTo6R3JhcGhp
Y3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIq
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1
c2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVy
Rmx1c2hJbW1lZGlhdGVseSgpIG92ZXJyaWRlOworCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICB2aXJ0dWFsIFJlZlB0cjxXZWJDb3JlOjpEaXNw
bGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihXZWJDb3JlOjpQ
bGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwgdm9pZCBh
dHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqLCBXZWJDb3JlOjpH
cmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0QXR0cmlidXRlcyhX
ZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikgb3ZlcnJpZGU7CisjZW5kaWYKKworI2lmIFVT
RShDT09SRElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQorICAgIHZpcnR1
YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVycmlkZTsKKyNlbmRp
ZgorCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBi
b29sLCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkgb3ZlcnJpZGU7CisK
KyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV2ViQ29yZTo6R3JhcGhp
Y3NMYXllciopOworCisgICAgLy8gV2hlbiB0cnVlLCB3ZSBtYWludGFpbiB0aGUgbGF5ZXIgdHJl
ZSBpbiBpdHMgY3VycmVudCBzdGF0ZSBieSBub3QgbGVhdmluZyBhY2NlbGVyYXRlZCBjb21wb3Np
dGluZyBtb2RlCisgICAgLy8gYW5kIG5vdCBzY2hlZHVsaW5nIGxheWVyIGZsdXNoZXMuCisgICAg
Ym9vbCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9OworCisgICAgLy8gVGhlIGxh
eWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcuCisgICAg
UmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFXUEVfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BF
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzRjODQ0YmNiYTkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L1dlYkluc3BlY3RvclVJV1BFLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJJbnNwZWN0b3JVSS5oIgorCisjaW5jbHVkZSAiUmVtb3RlV2ViSW5zcGVjdG9y
VUkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yVUk6OmNhblNh
dmUoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclVJOjps
b2NhbGl6ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmlu
ZyBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0
dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yV1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzRlMGM2NWUwZWYKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dl
Ykluc3BlY3RvcldQRS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViSW5zcGVjdG9yLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworYm9vbCBXZWJJbnNwZWN0b3I6OmNhblNhdmUoKSBjb25zdAoreworICAgIHJl
dHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYkluc3BlY3Rvcjo6bG9jYWxpemVkU3RyaW5nc1VS
TCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVmMjRlNWRlZjkKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwCkBA
IC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgor
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2Vz
U3RvcmUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK3ZvaWQgV2Vi
UGFnZTo6cGxhdGZvcm1EZXRhY2goKQoreworfQorCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRWRp
dG9yU3RhdGUoRnJhbWUmLCBFZGl0b3JTdGF0ZSYsIEluY2x1ZGVQb3N0TGF5b3V0RGF0YUhpbnQp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0
Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGVyZm9ybURl
ZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdlYlBhZ2U6
OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQYWdlOjpjYWNoZWRS
ZXNwb25zZU1JTUVUeXBlRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGxhdGZvcm1DYW5I
YW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQYWdlOjpjYWNoZWRTdWdn
ZXN0ZWRGaWxlbmFtZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitSZWZQdHI8U2hhcmVkQnVmZmVyPiBXZWJQYWdl
OjpjYWNoZWRSZXNwb25zZURhdGFGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitTdHJpbmcgV2ViUGFnZTo6cGxhdGZv
cm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFpbldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0NjEwNzNiZTNlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5X
UEUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01haW5Vbml4LmgiCisK
KyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjaW5jbHVkZSA8Z2xpYi5o
PgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorCisjaW5jbHVkZSA8aW9zdHJlYW0+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2Vi
UHJvY2Vzc01haW4gZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFzZSB7CitwdWJsaWM6
CisgICAgYm9vbCBwbGF0Zm9ybUluaXRpYWxpemUoKSBvdmVycmlkZQorICAgIHsKKyAgICAgICAg
Ly8gVE9ETzogV3JhcCB3aXRoICNpZm5kZWYgTkRFQlVHCisgICAgICAgIGlmIChnX2dldGVudigi
V0VCS0lUMl9QQVVTRV9XRUJfUFJPQ0VTU19PTl9MQVVOQ0giKSkgeworICAgICAgICAgICAgZ19w
cmludGVycigiV2ViUHJvY2VzcyBQSUQ6ICVkXG4iLCBnZXRwaWQoKSk7CisgICAgICAgICAgICBX
VEY6OnNsZWVwKDMwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KworICAgIGJvb2wgcGFyc2VDb21tYW5kTGluZShpbnQgYXJnYywgY2hhcioqIGFyZ3YpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBBU1NFUlQoYXJnYyA9PSAzKTsKKyAgICAgICAgaWYgKGFyZ2Mg
PCAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlmICghQ2hpbGRQcm9j
ZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndikpCisgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaW50IHdwZUZkID0gYXRvaShhcmd2WzJdKTsKKyAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICAgICAgW3dwZUZkXSB7CisgICAg
ICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BFPihQbGF0Zm9y
bURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkpOworICAgICAgICAgICAgICAgIGRvd25jYXN0PFBs
YXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpLmluaXRp
YWxpemUod3BlRmQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KK307CisKK2ludCBXZWJQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQor
eworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFdlYlByb2Nlc3MsIFdlYlByb2Nlc3NNYWlu
PihhcmdjLCBhcmd2KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCmluZGV4IGM2
M2QxYTI2Zjc5Li4zNDc5YjFlZDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvY29uZmln
LmgKKysrIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKQEAgLTU4LDcgKzU4LDcgQEAKICNkZWZp
bmUgUExVR0lOX0FSQ0hJVEVDVFVSRShBUkNIKSAoZGVmaW5lZCBQTFVHSU5fQVJDSElURUNUVVJF
XyMjQVJDSCAmJiBQTFVHSU5fQVJDSElURUNUVVJFXyMjQVJDSCkKIAogI2lmbmRlZiBFTkFCTEVf
SU5TUEVDVE9SX1NFUlZFUgotI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYgUExBVEZPUk0oR1RL
KQorI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0o
V1BFKSkKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQogI2VuZGlmCiAjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluIGIvU291cmNl
L1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmU5OWMwMjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvd3BlL3dwZS13ZWJraXQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJlZml4PUBDTUFLRV9J
TlNUQUxMX1BSRUZJWEAKK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGlyPUBMSUJfSU5TVEFM
TF9ESVJACitpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6IFdlYktpdDIKK0Rl
c2NyaXB0aW9uOiBXUEUtZmxhdm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjogQFBST0pFQ1RfVkVS
U0lPTkAKK1JlcXVpcmVzLnByaXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40CitMaWJzOiAtTCR7
bGliZGlyfSAtbFdQRVdlYktpdCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vd3BlLUBX
UEVfQVBJX1ZFUlNJT05AIC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAvV1BF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9GaW5kTGliR0JNLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kMjA5MWNiZmI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JN
LmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0uCisjIE9uY2UgZG9u
ZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElSUyAtIHRoZSBnYm0g
aW5jbHVkZSBkaXJlY3RvcmllcworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8g
dXNlIGdibS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
ZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX0xJQkdCTSBnYm0p
CisKK2ZpbmRfcGF0aChMSUJHQk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMgZ2JtLmgKKyAgICBI
SU5UUyAke1BDX0xJQkdCTV9JTkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lOQ1VERURJUn0KKykK
KworZmluZF9saWJyYXJ5KExJQkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBnYm0KKyAgICBISU5U
UyAke1BDX0xJQkdCTV9MSUJSQVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJUn0KKykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVf
U1RBTkRBUkRfQVJHUyhMSUJHQk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJBUklFUykKKworbWFy
a19hc19hZHZhbmNlZChMSUJHQk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi42MTYxNTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFr
ZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8g
ZmluZCBXUEUtbWVzYS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVf
TUVTQV9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVTQV9JTkNMVURFX0RJ
UlMgLSB0aGUgV1BFLW1lc2EgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BFX01FU0FfTElCUkFS
SUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisj
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hl
Y2tfbW9kdWxlcyhQQ19XUEVfTUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmluZF9wYXRoKFdQRV9N
RVNBX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRh
YmxlLWRtYS1idWYuaAorICAgIEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVERURJUn0gJHtQQ19X
UEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTUVTQV9MSUJSQVJJ
RVMKKyAgICBOQU1FUyBXUEVCYWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0xJ
QkRJUn0gJHtQQ19XUEVfTUVTQV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQo
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRf
QVJHUyhXUEVfTUVTQSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVT
QV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkg
dG8gZmluZCBXUEUuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX0ZP
VU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNs
dWRlIGRpcmVjdG9yaWVzCisjICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BF
LgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
CisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3Bh
Y2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFVSUVUIHdwZSkKKwor
ZmluZF9wYXRoKFdQRV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9hZGVyLmgKKyAgICBI
SU5UUyAke1BDX1dQRV9JTkNMVURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJUlN9CispCisKK2Zp
bmRfbGlicmFyeShXUEVfTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2VuZAorICAgIEhJTlRT
ICR7UENfV1BFX0xJQkRJUn0gJHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2Fk
dmFuY2VkKFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFj
a2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJH
UyhXUEUgUkVRVUlSRURfVkFSUyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hMjg3
MDYzZTEyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMTM4IEBACitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQorCitzZXQoUFJPSkVD
VF9WRVJTSU9OX01BSk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDApCitzZXQoUFJP
SkVDVF9WRVJTSU9OX1BBVENIIDIwMTcwMzMwKQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pF
Q1RfVkVSU0lPTl9NQUpPUn0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJT
SU9OX1BBVENIfSkKK3NldChXUEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAoV1RGX0NQVV9YODZf
NjQpCisgICAgc2V0KEVOQUJMRV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkKKyAgICBzZXQoRU5B
QkxFX0ZUTF9ERUZBVUxUIE9GRikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJT05fQkVHSU4oKQor
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQ
VUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZB
VEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VOQUJMRV9GVExfREVG
QVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQ
VUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xP
Q0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQUklWQVRFIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVCTElDIE9OKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBVQkxJQyBPTikKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19UUkFDSyBQVUJMSUMg
T04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NT
U19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKworV0VCS0lUX09QVElP
Tl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3Ig
R1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VCS0lUX09QVElPTl9FTkQoKQorCitzZXQo
RU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dF
QktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9NT0RFfSkKK3NldChF
TkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChKYXZh
U2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVfTElCUkFSWV9UWVBF
IFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkKK3NldChXZWJLaXQy
X1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChXZWJLaXQyX05ldHdv
cmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0
YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKKworZmluZF9wYWNr
YWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQg
Q09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCitmaW5kX3Bh
Y2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4y
IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5k
X3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEhhcmZCdXp6
IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJ
UkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEVH
TCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCisKK3NldChV
U0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQor
ICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGlscykKKyAgICBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAgaWYgKEVOQUJMRV9W
SURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFn
KQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICAgICAgbGlz
dChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBTRVRfQU5EX0VYUE9T
RV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAgZW5kaWYgKCkKKwor
ICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09NUE9ORU5UUyAke0dT
VFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklYTUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1
cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYgKEVOQUJMRV9NRURJ
QV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMp
CisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VS
Uk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NUUkVBTSBhbmQgRU5B
QkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09N
UE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9E
QVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBU
UlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8z
RCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJV
RSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUl9HTCBUUlVFKQor
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUyBUUlVFKQorU0VU
X0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIFRS
VUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRv
IHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5vdCB0byBiZSB1c2Vk
IHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4KK2lmIChOT1QgREVW
RUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZM
QUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChDTUFLRV9DWFhfRkxB
R1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRl
biAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQppbmRleCBkNTgwMGExZTlkNC4uZWIy
MGY3MGYzZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1
Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFy
Y2hpdmUKQEAgLTE2Myw3ICsxNjMsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28oZGlyZWN0b3J5KToK
IAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVs
bFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycs
ICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0
aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICAjIEZJWE1FOiBJbWFnZURpZmYgc2hvdWxk
IGJlIGJ1aWx0IHdpdGggdGhlIGhvc3QgU0RLLCA8cmRhcjovL3Byb2JsZW0vMzAyNjYwMzg+Lgog
ICAgICMgQW4gYXBwcm9hY2ggc2ltaWxhciB0byB0aGUgb25lIHVzZWQgZm9yIExheW91dFRlc3RS
ZWxheSBpbiByMTkwNTE1IHNob3VsZCBiZSBpbWxlbWVudGVkLgpAQCAtMTgyLDcgKzE4Miw3IEBA
IGRlZiBhcmNoaXZlQnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBmdWxsUGxh
dGZvcm0pOgogCiAgICAgICAgIHNodXRpbC5ybXRyZWUodGhpbkRpcmVjdG9yeSkKIAotICAgIGVs
aWYgcGxhdGZvcm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0
Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9ybSA9PSAnd3BlJzoK
ICAgICAgICAgIyBPbiBHVEsrL0VGTCB3ZSBkb24ndCBuZWVkIHRoZSBpbnRlcm1lZGlhdGUgc3Rl
cCBvZiBjcmVhdGluZyBhIHRoaW5EaXJlY3RvcnkKICAgICAgICAgIyB0byBiZSBjb21wcmVzc2Vk
IGluIGEgWklQIGZpbGUsIGJlY2F1c2Ugd2UgY2FuIGNyZWF0ZSB0aGUgWklQIGRpcmVjdGx5Lgog
ICAgICAgICAjIFRoaXMgaXMgZmFzdGVyIGFuZCByZXF1aXJlcyBsZXNzIGRpc2sgcmVzb3VyY2Vz
LgpAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZiB1bnppcEFyY2hpdmUoZGlyZWN0b3J5VG9FeHRyYWN0
VG8sIGNvbmZpZ3VyYXRpb24pOgogCiAKIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0KGNvbmZpZ3Vy
YXRpb24sIHBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywg
J2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2lu
JywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBhcmNoaXZlRmlsZSA9IG9zLnBh
dGguam9pbihfdG9wTGV2ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlvbiArICcuemlwJykK
IApAQCAtMjI1LDcgKzIyNSw3IEBAIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRp
b24sIHBsYXRmb3JtKToKIAogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAg
ICAgICByZXR1cm4gdW56aXBBcmNoaXZlKF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1
cmF0aW9uKQotICAgIGVsaWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZvcm0gPT0gJ2d0aycg
b3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBwbGF0
Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9ybSA9PSAnd3BlJzoK
ICAgICAgICAgcHJpbnQgJ0V4dHJhY3RpbmcnLCBfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5
CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX2NvbmZpZ3VyYXRpb25CdWlsZERpcmVjdG9y
eSwgY29uZmlndXJhdGlvbikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQv
dGVzdC1yZXN1bHQtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0
LWFyY2hpdmUKaW5kZXggM2MyYjBiZDdhMzYuLjk4MGYwNzFjMTRmIDEwMDY0NAotLS0gYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCisrKyBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKQEAgLTQ2LDcgKzQ2LDcgQEAgZGVmIG1h
aW4oKToKICAgICByZXR1cm4gYXJjaGl2ZVRlc3RSZXN1bHRzKG9wdGlvbnMuY29uZmlndXJhdGlv
biwgb3B0aW9ucy5wbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpCiAKIGRlZiBhcmNoaXZl
VGVzdFJlc3VsdHMoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGly
KToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAn
d2luY2Fpcm8nLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywg
J2d0aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9zJywgJ3dwZScpCiAKICAgICB0cnk6CiAgICAg
ICAgIG9zLnVubGluayhhcmNoaXZlRmlsZSkKQEAgLTY2LDcgKzY2LDcgQEAgZGVmIGFyY2hpdmVU
ZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIp
OgogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAgICAgICBpZiBzdWJwcm9j
ZXNzLmNhbGwoWyJkaXR0byIsICItYyIsICItayIsICItLXNlcXVlc3RlclJzcmMiLCAiLS16bGli
Q29tcHJlc3Npb25MZXZlbCIsICIyIiwgbGF5b3V0VGVzdFJlc3VsdHNEaXIsIGFyY2hpdmVGaWxl
XSk6CiAgICAgICAgICAgICByZXR1cm4gMQotICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3aW4nLCAn
Z3RrJywgJ2VmbCcsICd3aW5jYWlybycpOgorICAgIGVsaWYgcGxhdGZvcm0gaW4gKCd3aW4nLCAn
Z3RrJywgJ2VmbCcsICd3aW5jYWlybycsICd3cGUnKToKICAgICAgICAgaWYgc3VicHJvY2Vzcy5j
YWxsKFsiemlwIiwgIi1yIiwgIi0yIiwgYXJjaGl2ZUZpbGUsICIuIl0sIGN3ZD1sYXlvdXRUZXN0
UmVzdWx0c0Rpcik6CiAgICAgICAgICAgICByZXR1cm4gMQogCmRpZmYgLS1naXQgYS9Ub29scy9D
TWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IDRiMmVkYjhkZTk3Li41
YjljZDM5Yjk5MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ01ha2VMaXN0cy50eHQKKysrIGIvVG9vbHMv
Q01ha2VMaXN0cy50eHQKQEAgLTM1LDYgKzM1LDExIEBAIGVsc2VpZiAoIiR7UE9SVH0iIFNUUkVR
VUFMICJKU0NPbmx5IikKICAgICBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAgICAgICAgYWRkX3N1
YmRpcmVjdG9yeShUZXN0V2ViS2l0QVBJKQogICAgIGVuZGlmICgpCitlbHNlaWYgKCIke1BPUlR9
IiBTVFJFUVVBTCAiV1BFIikKKyAgICBpZiAoREVWRUxPUEVSX01PREUpCisgICAgICAgIGFkZF9z
dWJkaXJlY3RvcnkoSW1hZ2VEaWZmKQorICAgICAgICBhZGRfc3ViZGlyZWN0b3J5KFdlYktpdFRl
c3RSdW5uZXIpCisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChXSU4zMikKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0NGUwNmVkMmM0Mi4u
NzA5NWNkM2Y4MDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2IHRocmVh
ZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJraXQtZGV2
LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBBZGQgV1BFIHN1cHBvcnQgdG8gdmFy
aW91cyB0b29saW5nIHNjcmlwdHMsIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktpdFRlc3RSdW5uZXIu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9k
dWN0LWFyY2hpdmU6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJj
aGl2ZToKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBJbWFnZURpZmYvUGxh
dGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvYnVpbGQtZHVtcHJlbmRl
cnRyZWU6CisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAgICAgICogU2NyaXB0
cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyOgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtp
dC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnM6
IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQv
d3BlLnB5OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtl
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9JbmplY3RlZEJ1bmRsZUNvbnRy
b2xsZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGlsaXRpZXNX
UEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcDogQ29w
aWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcDogQWRkZWQuCisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L0luamVjdGVkQnVuZGxlV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0
Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9y
bVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNw
cDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFj
a2VuZC5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHA6IEFkZGVk
LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcDog
QWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBq
aGJ1aWxkL2poYnVpbGQtd3JhcHBlcjoKKyAgICAgICAgKiB3cGUvZ2VuZXJhdGUtaW5zcGVjdG9y
LWdyZXNvdXJjZS1tYW5pZmVzdC5weTogQWRkZWQuCisgICAgICAgICogd3BlL2poYnVpbGQubW9k
dWxlczogQWRkZWQuCisgICAgICAgICogd3BlL2poYnVpbGRyYzogQWRkZWQuCisgICAgICAgICog
d3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNo
OiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMt
YS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2g6IEFkZGVkLgorICAg
ICAgICAqIHdwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQt
Zml4LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1z
dHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3Bl
L3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3Bh
dGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0
Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0
bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2g6
IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0
ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaDogQWRkZWQu
CisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVj
b2RlLXRpbWUucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdHJlYW1lci10
eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhlLS5wYXRjaDog
QWRkZWQuCisKIDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4
LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4g
V2ViS2l0RlMgYW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Ub29scy9JbWFnZURp
ZmYvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRiMGVlNTMyOGJhCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAg
KzEgQEAKK2luY2x1ZGUoQ2Fpcm8uY21ha2UpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2J1
aWxkLWR1bXByZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZQpp
bmRleCBjMzA5YjgyZDk4Yy4uNjliNGQwZTQ2NWQgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
YnVpbGQtZHVtcHJlbmRlcnRyZWUKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1wcmVuZGVy
dHJlZQpAQCAtNjYsNyArNjYsNyBAQCBjaGRpciBGaWxlOjpTcGVjLT5jYXRkaXIoIlRvb2xzIiwg
IkR1bXBSZW5kZXJUcmVlIikgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FX
ZWJLaXQoKSkgewogICAgICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgiRHVtcFJlbmRlclRy
ZWUiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lmIChpc0d0aygpIHx8
IGlzRWZsKCkgfHwgaXNBbnlXaW5kb3dzKCkpIHsKK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNFZmwo
KSB8fCBpc0FueVdpbmRvd3MoKSB8fCBpc1dQRSgpKSB7CiAgICAgIyBHdGssIEVGTCwgYW5kIFdp
bmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0
aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKaW5kZXgg
YWIyNTJhYzY1MGYuLmZmNGNiMGM0ZjMxIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1aWxk
LXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAtMTAxLDYgKzEwMSw3
IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRvIHBhc3MgdG8gYnVp
bGQgc3lzdGVtXQogCiAgIC0tZWZsICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0
aGUgRUZMIHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRo
ZSBHVEsrIHBvcnQKKyAgLS13cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHRo
ZSBXUEUgcG9ydAogICAtLXdpbmNhaXJvICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdXNp
bmcgQ2Fpcm8gKHJhdGhlciB0aGFuIENvcmVHcmFwaGljcykgb24gV2luZG93cwogCiAgIC0taW5z
cGVjdG9yLWZyb250ZW5kICAgICAgICAgICAgICBDb3B5IFdlYiBJbnNwZWN0b3IgdXNlciBpbnRl
cmZhY2UgcmVzb3VyY2VzIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lciBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Vi
a2l0dGVzdHJ1bm5lcgppbmRleCA0NGUyNWEzODUxOC4uMGZlNTFlMDgyMzQgMTAwNzU1Ci0tLSBh
L1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgorKysgYi9Ub29scy9TY3JpcHRz
L2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKQEAgLTYxLDcgKzYxLDcgQEAgY2hkaXIgIlRvb2xzL1dl
YktpdFRlc3RSdW5uZXIiIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIldlYktpdFRlc3RSdW5u
ZXIiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lmIChpc0d0aygpIHx8
IGlzRWZsKCkpIHsKK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSB7CiAg
ICAgIyBHVEsrIGFuZCBFRkwgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0
byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IDM4OTNkYWZkOGVlLi5lZWQ1
ZjZiZGVhMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhi
dWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0y
NSw5ICsyNSwxMCBAQCB1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsK
IG15ICRwbGF0Zm9ybSA9ICIiOwogJHBsYXRmb3JtID0gImVmbCIgaWYgaXNFZmwoKTsKICRwbGF0
Zm9ybSA9ICJndGsiIGlmIGlzR3RrKCk7CiskcGxhdGZvcm0gPSAid3BlIiBpZiBpc1dQRSgpOwog
CiBpZiAoISRwbGF0Zm9ybSkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAi
IC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOworICAgIGRpZSAiTm8g
cGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGssIC0t
ZWZsIG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlMRF9X
SVBFX09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMyw3ICsxMzQsNyBAQCBkZWxldGUgJEVOVntBUl9G
TEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNE
aXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0g
KCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiICk7CitteSAlcHJldHR5UGxhdGZvcm0g
PSAoICJlZmwiID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIsICJ3cGUiID0+ICJXUEUiICk7CiAK
IGlmICghJGZvcmNlICYmICFqaGJ1aWxkQ29uZmlndXJhdGlvbkNoYW5nZWQoKSkgewogICAgIHBy
aW50ICRwcmV0dHlQbGF0Zm9ybXskcGxhdGZvcm19IC4gIiBwb3J0IGRlcGVuZGVuY2llcyBhcmUg
YWxyZWFkeSB1cCB0byBkYXRlXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2Via2l0d3BlLWxpYnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicwpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYjIzZmJkZTZiODMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicwpAQCAtMCwwICsx
LDI0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAyMDExIElnYWxpYSBT
LkwuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgorIworIyBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisj
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv
bjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9u
KSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJS
QU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJ
TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisj
IExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlv
dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0
byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKwordXNlIEZpbmRC
aW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0ZGlyczsKKworbXkgJHNjcmlw
dHNEaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKK3N5c3RlbSgicGVybCIsICIkc2NyaXB0c0Rp
ci91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCIsICItLXdwZSIsIEBBUkdWKSA9PSAwIG9yIGRp
ZSAkITsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBjNDBhZmY2ZjgyOC4uYmNiMWQzZWMwMmUgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdGRpcnMucG0KQEAgLTEwOCw2ICsxMDgsNyBAQCB1c2UgY29uc3RhbnQgewogICAgIE1hYyAg
ICAgID0+ICJNYWMiLAogICAgIEpTQ09ubHkgID0+ICJKU0NPbmx5IiwKICAgICBXaW5DYWlybyA9
PiAiV2luQ2Fpcm8iLAorICAgIFdQRSAgICAgID0+ICJXUEUiLAogICAgIFVua25vd24gID0+ICJV
bmtub3duIgogfTsKIApAQCAtNDQ3LDYgKzQ0OCw3IEBAIHN1YiBhcmd1bWVudHNGb3JDb25maWd1
cmF0aW9uKCkKICAgICBwdXNoKEBhcmdzLCAnLS02NC1iaXQnKSBpZiAoaXNXaW42NCgpKTsKICAg
ICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBpc0d0aygpOwogICAgIHB1c2goQGFyZ3MsICctLWVm
bCcpIGlmIGlzRWZsKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNXUEUoKTsKICAg
ICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAgIHB1c2goQGFy
Z3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFyZ3MsICctLWlu
c3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAgLTY4Miw3ICs2
ODQsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVjdERpcmVjdG9y
eSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0gICAgaWYgKGlz
RWZsKCkgfHwgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkgeworICAgIGlmIChpc0VmbCgpIHx8IGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0
b3J5ID0gImJpbiI7CiAgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsKICAgICAgICAgJGJp
bmFyeURpcmVjdG9yeSA9IGlzV2luNjQoKSA/ICJiaW42NCIgOiAiYmluMzIiOwpAQCAtOTQzLDYg
Kzk0NSw5IEBAIHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAgICAgIHJldHVybiAi
JGJhc2VQcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGNvbmZpZ3VyYXRpb24v
JGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kbGlicmFyeU5hbWUubGliIjsKICAgICAgICAgfQog
ICAgIH0KKyAgICBpZiAoaXNXUEUoKSkgeworICAgICAgICByZXR1cm4gIiRjb25maWd1cmF0aW9u
UHJvZHVjdERpci9saWIvbGliV1BFV2ViS2l0LnNvIjsKKyAgICB9CiAKICAgICBkaWUgIlVuc3Vw
cG9ydGVkIHBsYXRmb3JtLCBjYW4ndCBkZXRlcm1pbmUgYnVpbHQgbGlicmFyeSBsb2NhdGlvbnMu
XG5UcnkgYGJ1aWxkLXdlYmtpdCAtLWhlbHBgIGZvciBtb3JlIGluZm9ybWF0aW9uLlxuIjsKIH0K
QEAgLTEwNTgsNyArMTA2Myw4IEBAIHN1YiBkZXRlcm1pbmVQb3J0TmFtZSgpCiAgICAgICAgIGVm
bCA9PiBFZmwsCiAgICAgICAgIGd0ayA9PiBHVEssCiAgICAgICAgICdqc2Mtb25seScgPT4gSlND
T25seSwKLSAgICAgICAgd2luY2Fpcm8gPT4gV2luQ2Fpcm8KKyAgICAgICAgd2luY2Fpcm8gPT4g
V2luQ2Fpcm8sCisgICAgICAgIHdwZSA9PiBXUEUKICAgICApOwogCiAgICAgZm9yIG15ICRhcmcg
KHNvcnQga2V5cyAlYXJnVG9Qb3J0TmFtZSkgewpAQCAtMTA5Myw2ICsxMDk5LDcgQEAgc3ViIGRl
dGVybWluZVBvcnROYW1lKCkKICAgICAgICAgICAgICAgICAtLWVmbAogICAgICAgICAgICAgICAg
IC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAgICAgICAgIC0td3Bl
CiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3BlY2lmeSB3aGljaCBX
ZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBvcHRpb25zOiIK
ICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAtMTEyNSw2ICsxMTMy
LDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIEpTQ09ubHk7
CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkgZXEgV1BFOworfQor
CiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5zcGlyZSwgb3Igc29t
ZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0xNTI4LDYgKzE1NDAs
OCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRz
UGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXZWJLaXQoKSkgewog
ICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZhcmkiOworICAgIH0g
ZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9y
dW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MzksNiArMTU1Myw4IEBAIHN1YiBsYXVuY2hlck5h
bWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAoaXNBcHBsZVdpbldl
YktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAgIH0gZWxzaWYgKGlz
V1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAgfQogfQogCkBAIC0x
ODQwLDYgKzE4NTYsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgICAgICBwdXNoKEBqaGJ1
aWxkUGF0aCwgIkRlcGVuZGVuY2llc0VGTCIpOwogICAgIH0gZWxzaWYgKGlzR3RrKCkpIHsKICAg
ICAgICAgcHVzaChAamhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNHVEsiKTsKKyAgICB9IGVsc2lm
IChpc1dQRSgpKSB7CisgICAgICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzV1BF
Iik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZGllICJDYW5ub3QgZ2V0IEpIQnVpbGQgcGF0aCBm
b3IgcGxhdGZvcm0gdGhhdCBpc24ndCBHVEsrIG9yIEVGTC5cbiI7CiAgICAgfQpAQCAtMTg4Miw2
ICsxOTAwLDggQEAgc3ViIHdyYXBwZXJQcmVmaXhJZk5lZWRlZCgpCiAgICAgICAgICAgICBwdXNo
KEBwcmVmaXgsICItLWVmbCIpOwogICAgICAgICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAgICAg
ICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIpOworICAgICAgICB9IGVsc2lmIChpc1dQRSgpKSB7
CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLXdwZSIpOwogICAgICAgICB9CiAgICAgICAg
IHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBAIC0yMDQwLDcgKzIwNjAsNyBAQCBzdWIgZ2VuZXJh
dGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKICAgICBwdXNoIEBhcmdzLCAnLURTSE9XX0JJ
TkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1M9MScgdW5sZXNzICgkd2lsbFVzZU5pbmphICYmIC10
IFNURE9VVCk7CiAKICAgICAjIFNvbWUgcG9ydHMgaGF2ZSBwcm9kdWN0aW9uIG1vZGUsIGJ1dCBi
dWlsZC13ZWJraXQgc2hvdWxkIGFsd2F5cyB1c2UgZGV2ZWxvcGVyIG1vZGUuCi0gICAgcHVzaCBA
YXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc0pT
Q09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNFZmwo
KSB8fCBpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCk7CiAKICAgICAjIERvbid0IHdh
cm4gdmFyaWFibGVzIHdoaWNoIGFyZW4ndCB1c2VkIGJ5IGNtYWtlIHBvcnRzLgogICAgIHB1c2gg
QGFyZ3MsICItLW5vLXdhcm4tdW51c2VkLWNsaSI7CkBAIC0yMTIxLDYgKzIxNDEsMTAgQEAgc3Vi
IGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCQkJEApCiAgICAgICAgIHN5c3RlbSgicGVybCIsICIk
c291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdGd0ay1saWJzIikgPT0gMCBvciBk
aWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzV1BFKCkgJiYgY2hlY2tGb3JBcmd1bWVudEFuZFJl
bW92ZUZyb21BUkdWKCItLXVwZGF0ZS13cGUiKSkgeworICAgICAgICBzeXN0ZW0oInBlcmwiLCAi
JHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGlicyIpID09IDAgb3Ig
ZGllICQhOworICAgIH0KKwogICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1cyhnZW5lcmF0ZUJ1
aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcHJlZml4UGF0aCwgQGNtYWtlQXJncykpOwogICAg
IGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwogCmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBl
cmwvRmVhdHVyZUxpc3QucG0KaW5kZXggYjc3ZTJhMGRmMmMuLjRjNzRkOWM0MGUxIDEwMDY0NAot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0xNDcsMTAgKzE0NywxMCBAQCBw
cm9oaWJpdFVua25vd25Qb3J0KCk7CiAKIG15IEBmZWF0dXJlcyA9ICgKICAgICB7IG9wdGlvbiA9
PiAiM2QtcmVuZGVyaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIFJlbmRlcmluZyBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0ID0+IChpc0Fw
cGxlQ29jb2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSks
IHZhbHVlID0+IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8
fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFjY2Vs
ZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMg
c3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMi
LCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwK
KyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQg
PT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVyYXRlZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAg
ICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxkIiwgZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1v
bmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZh
dWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBcJGFsbEluT25lQnVpbGQgfSwKQEAgLTE4Myw3
ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1Nf
SU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFn
ZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3NzLWltYWdlLXNldCIs
IGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0IHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSks
IHZhbHVlID0+IFwkY3NzSW1hZ2VTZXRTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9DU1NfSU1BR0VfU0VUIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BF
KCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+
IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwgZGVmYXVsdCA9
PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNlIE9y
aWVudGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVO
VEFUSU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVu
dGF0aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFU
SU9OIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRk
ZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2ZW50
cy1jb25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3RvcnMi
LAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBkZWZh
dWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4g
XCRkb200RXZlbnRzQ29uc3RydWN0b3IgfSwKQEAgLTIyNSw3ICsyMjUsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GT05UX0xPQURfRVZFTlRTIiwgZGVmYXVs
dCA9PiAwLCB2YWx1ZSA9PiBcJGZvbnRMb2FkRXZlbnRzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gImZ0bC1qaXQiLCBkZXNjID0+ICJUb2dnbGUgRlRMSklUIHN1cHBvcnQiLAotICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYg
KGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCRmdGxKSVRT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZnRwZGlyIiwgZGVzYyA9PiAiVG9nZ2xlIEZU
UCBEaXJlY3Rvcnkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GVFBESVIiLCBk
ZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkZnRwRGlyU3VwcG9ydCB9LApAQCAtMjM3LDcgKzIzNyw3
IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dBTUVQQUQiLCBk
ZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZ2FtZXBhZFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJnZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBHZW9sb2NhdGlvbiBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUg
PT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xP
Q0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwg
aXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBpLWNhbnZhcyIsIGRlc2MgPT4gIlRv
Z2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9I
SUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkpLCB2YWx1ZSA9PiBc
JGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyArMjQ2LDcgQEAgbXkgQGZlYXR1cmVz
ID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRBVEFCQVNFIiwgZGVmYXVsdCA9PiAh
aXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2MgPT4gIlRvZ2dsZSBJbmRleGVkIERh
dGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFT
RSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNHdGso
KSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktp
dCgpIHx8IGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRpbmRleGVk
RGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5wdXQtc3BlZWNoIiwgZGVz
YyA9PiAiVG9nZ2xlIElucHV0IFNwZWVjaCBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0lOUFVUX1NQRUVDSCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRpbnB1dFNwZWVjaFN1
cHBvcnQgfSwKQEAgLTMxMiw3ICszMTIsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9NRVRFUl9FTEVNRU5UIiwgZGVmYXVsdCA9PiAhaXNBcHBsZVdpbldlYktp
dCgpLCB2YWx1ZSA9PiBcJG1ldGVyRWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJtaHRtbCIsIGRlc2MgPT4gIlRvZ2dsZSBNSFRNTCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUg
PT4gXCRtaHRtbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX01IVE1MIiwgZGVm
YXVsdCA9PiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJG1odG1s
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1vdXNlLWN1cnNvci1zY2FsZSIsIGRlc2Mg
PT4gIlRvZ2dsZSBTY2FsZWQgbW91c2UgY3Vyc29yIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIiwgZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9
PiBcJG1vdXNlQ3Vyc29yU2NhbGVTdXBwb3J0IH0sCkBAIC0zMjQsNyArMzI0LDcgQEAgbXkgQGZl
YXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkFWSUdBVE9SX0hXQ09OQ1VSUkVO
Q1kiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkaGFyZHdhcmVDb25jdXJyZW5jeVN1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4tYXBpIiwgZGVzYyA9PiAiVG9n
Z2xlIE5ldHNjYXBlIFBsdWdpbiBBUEkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9ORVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUg
PT4gXCRuZXRzY2FwZVBsdWdpbkFQSVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+ICghaXNJT1NXZWJLaXQoKSAmJiAhaXNX
UEUoKSksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAibm9zbmlmZiIsIGRlc2MgPT4gIlRvZ2dsZSBzdXBwb3J0IGZvciAnWC1Db250ZW50
LVR5cGUtT3B0aW9uczogbm9zbmlmZiciLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTk9TTklG
RiIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRub3NuaWZmU3VwcG9ydCB9LApAQCAt
MzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4g
XCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwZXJmb3Jt
YW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBUaW1lbGluZSBzdXBw
b3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJTUVMSU5FIiwgZGVm
YXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0IH0s
CisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1bHQg
PT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFuY2VUaW1lbGluZVN1
cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRzIiwgZGVzYyA9PiAi
VG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHByb3hpbWl0eUV2
ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAg
ICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1ldmVudHMi
LCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc0Vm
bCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRzU3VwcG9ydCB9LAorICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQo
KSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdG91Y2hFdmVu
dHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtaWNvbi1sb2FkaW5nIiwgZGVz
YyA9PiAiVG9nZ2xlIFRvdWNoIEljb24gTG9hZGluZyBTdXBwb3J0IiwKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCR0
b3VjaEljb25Mb2FkaW5nU3VwcG9ydCB9LApAQCAtMzc4LDE2ICszNzgsMTYgQEAgbXkgQGZlYXR1
cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklCUkFUSU9OIiwgZGVmYXVsdCA9PiBp
c0VmbCgpLCB2YWx1ZSA9PiBcJHZpYnJhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJ2aWRlbyIsIGRlc2MgPT4gIlRvZ2dsZSBWaWRlbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1ZJREVPIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkg
fHwgaXNFZmwoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8
IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAidmlkZW8tdHJhY2siLCBkZXNjID0+ICJUb2dnbGUgVmlkZW8gVHJhY2sgc3Vw
cG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIsIGRlZmF1bHQgPT4g
KGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJHZpZGVv
VHJhY2tTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIsIGRl
ZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUo
KSksIHZhbHVlID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3
ZWItYW5pbWF0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2
YWx1ZSA9PiBcJHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2Vi
LWF1ZGlvIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSks
IHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9X
RUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZh
bHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLXJlcGxh
eSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+
ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4gaXNBcHBsZUNvY29hV2ViS2l0KCksIHZh
bHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAtNDAyLDEwICs0MDIsMTAgQEAgbXkgQGZl
YXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1RJTUlORyIsIGRlZmF1bHQg
PT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
d2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2ViQXNzZW1ibHkgc3VwcG9ydCIsCi0gICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkg
JiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkd2ViQXNzZW1ibHlTdXBw
b3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4g
KGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFs
dWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWJnbCIs
IGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBp
c0VmbCgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwgaXNHdGsoKSB8
fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdlYmdsU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gIndyaXRhYmxlU3RyZWFtQVBJIiwgZGVzYyA9PiAiVG9nZ2xlIFdyaXRhYmxl
U3RyZWFtIEFQSSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dSSVRBQkxFX1NU
UkVBTV9BUEkiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd3JpdGFibGVTdHJlYW1BUElTdXBw
b3J0IH0sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
cnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCA3YzZkZGM4MzlmMy4uNTcyZThhNWU3N2QgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVz
dHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtp
dF90ZXN0cy5weQpAQCAtNDI0LDcgKzQyNCw3IEBAIGRlZiBfc2V0X3VwX2Rlcml2ZWRfb3B0aW9u
cyhwb3J0LCBvcHRpb25zKToKICAgICAgICAgb3B0aW9ucy52ZXJib3NlID0gVHJ1ZQogCiAgICAg
IyBUaGUgR1RLKyBhbmQgRUZMIHBvcnRzIG9ubHkgc3VwcG9ydCBXZWJLaXQyIHNvIHRoZXkgYWx3
YXlzIHVzZSBXS1RSLgotICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gPT0gImd0ayIgb3Igb3B0aW9u
cy5wbGF0Zm9ybSA9PSAiZWZsIjoKKyAgICBpZiBvcHRpb25zLnBsYXRmb3JtIGluIFsiZWZsIiwg
Imd0ayIsICJ3cGUiXToKICAgICAgICAgb3B0aW9ucy53ZWJraXRfdGVzdF9ydW5uZXIgPSBUcnVl
CiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkg
Yi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRleCBjNjFkMTdmNjUz
NC4uYTcxNjQ5OWIzMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9m
YWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CkBA
IC01Niw2ICs1Niw5IEBAIGRlZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9icz1GYWxzZSk6CiAg
ICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycsIGFjdGlvbj0nc3RvcmVfY29uc3Qn
LCBkZXN0PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2d0ayonIGlmIHVzZV9nbG9i
cyBlbHNlICdndGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1n
dGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3RrJykpLAorICAg
ICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0b3JlX2NvbnN0Jywg
ZGVzdD0ncGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBpZiB1c2VfZ2xvYnMg
ZWxzZSAnd3BlJyksCisgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09d3Bl
JykpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1uby1pbnN0YWxsJywgYWN0aW9u
PSdzdG9yZV9jb25zdCcsCiAgICAgICAgICAgICBjb25zdD1GYWxzZSwgZGVmYXVsdD1UcnVlLCBk
ZXN0PSdpbnN0YWxsJywKICAgICAgICAgICAgIGhlbHA9J1NraXAgaW5zdGFsbCBzdGVwIGZvciBk
ZXZpY2UgYW5kIHNpbXVsYXRvciB0ZXN0aW5nJyksCkBAIC05Nyw2ICsxMDAsNyBAQCBjbGFzcyBQ
b3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAndGVzdC5UZXN0UG9ydCcsCiAgICAgICAgICd3
aW4uV2luQ2Fpcm9Qb3J0JywKICAgICAgICAgJ3dpbi5XaW5Qb3J0JywKKyAgICAgICAgJ3dwZS5X
UEVQb3J0JywKICAgICApCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9zdCk6CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3dwZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uY2M4MzllN2ZjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvd3BlLnB5CkBAIC0wLDAgKzEsNzggQEAKKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5cmln
aHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBHb29n
bGUgbmFtZSBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQg
dG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0aGlzIHNvZnR3
YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIworIyBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorIyBPV05F
UiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisjIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zyb20gd2Via2l0cHku
Y29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAorZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVz
dHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb24KK2Zy
b20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtpdHB5LnBvcnQubGlu
dXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IKKworY2xhc3MgV1BF
UG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNlbGYpLl9faW5p
dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRfdXNlX2poYnVp
bGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxmLnBhdGhfZnJv
bV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKSwgJy0t
d3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgnd3JhcHBl
cicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYgZGVmYXVsdF90
aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVmIF9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxk
X3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJyYXJpZXNfcGF0
aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCdsaWIn
LCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzdXBlcihXUEVQ
b3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisgICAgICAg
IGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAgICAgICAgZW52
aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSddID0gc2VsZi5f
YnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5zbycpCisgICAg
ICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10gPSBzZWxmLl9i
dWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50WydXRUJLSVRf
RVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICByZXR1cm4gZW52
aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoc2Vs
Zik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1aWxkX3R5cGUg
aW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5hcHBl
bmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNoaXRlY3R1cmU9
J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBjb25maWd1cmF0
aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQorCisgICAgZGVm
IF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNl
bGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAgICAgICBuYW1l
ID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2UgbmFtZQorICAg
ICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFuLCBz
ZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9n
KHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsx
LDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01B
S0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3NldChURVNUV0VC
S0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJVEFQSV9SVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVz
ZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2ViS2l0MgorIyBk
aXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBXZWJLaXQyIGhl
YWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisKK2FkZF9jdXN0
b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09NTUFORCAk
e1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJk
aW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJUn0gLS1vdXRw
dXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBsYXRmb3JtIHNv
dXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK3NldChG
b3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0QVBJLWZvcndh
cmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZPUldBUkRJTkdf
SEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZhU2NyaXB0Q29y
ZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9JTkNMVURFX0RJ
UlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3RfbWFpbl9TT1VS
Q0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisKK3NldChidW5k
bGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQUEVORCBUZXN0
V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9HVW5p
cXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL1dvcmtR
dWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFibGUoVGVzdFdl
YkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3Jl
L0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0V2ViQ29yZSAk
e3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0V2ViQ29yZSAk
e0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRkX3Rlc3QoVGVz
dFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViQ29y
ZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3JlIFBST1BFUlRJ
RVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJU
SUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQ
VVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVjdGVkQnVuZGxl
Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZv
cm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGls
aXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMjFj
MWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRm
b3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQor
eworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGljIGNoYXIqIGdl
dEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hhciogdmFyaWFi
bGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1l
KTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVudmlyb25tZW50
IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhpdCgxKTsK
KyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVuYW1lX3Rv
X3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tTdHJpbmdSZWYg
Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVj
dGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KCJU
RVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShpbmpl
Y3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUuc28i
LCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGlu
amVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxGb3JS
ZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQorewor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5hbWVGcm9tRW52
aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VSQ0VT
X1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1lKGdfc3RyZHVw
X3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291cmNlc1BhdGgu
Z2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRyPEdG
aWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChyZXNvdXJj
ZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVSSShnX2Zp
bGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tVUkxDcmVhdGVX
aXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBV
dGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2YzMyZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxlci5oIgorCitp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRlc3RXZWJLaXRB
UEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9T
VUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cAppbmRleCAwYTEzMGQ0ZThkZC4uZGUyYmUzZTdiY2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBXS0FjY2Vzc2li
aWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
R1RLKSAmJiAhUExBVEZPUk0oRUZMKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShF
RkwpICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsKICAgICBXS0J1bmRsZVBhZ2VSZWYg
cGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBhZ2UoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA1Y2YwZDczOWMxZS4uYzhkNzhlNzdhMTIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTczLDcgKzczLDcgQEAgcHJpdmF0ZToK
IAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOb3RpZmljYXRpb25IYW5kbGVy
PiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0jZWxzZQorI2VsaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlOb3RpZmljYXRpb25I
YW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYKIH07CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAyMzNmZjdkMjAzNC4uYjhhZjZmMTZjYTggMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtNzgsNyArNzgsNyBAQCBib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBjb25zdCB7IHJldHVybiBmYWxzZTsg
fQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBtZXRob2RzIG9uIHZhcmlvdXMgcGxhdGZv
cm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90aGVyIHBsYXRmb3JtcyB0aGlzIGxpc3Qg
c2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICghUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZM
KSkgfHwgIUhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRG
T1JNKEVGTCkgJiYgIVBMQVRGT1JNKFdQRSkpIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCiBKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hhcmFjdGVyQXRP
ZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxp
bmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50LmgKaW5kZXggNTUwOWFmMjE3N2QuLjZkMDcwNjc4YjllIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaApAQCAtMzE3LDcgKzMxNyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRVSUVs
ZW1lbnRzV2l0aEF0dHJpYnV0ZShKU1N0cmluZ1JlZiwgVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiA+JikgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8
fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lk
IGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYpOwog
ICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCk7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IGFmZmM0MGYwZTQzLi4wMTkxMzYyMzc0ZCAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCkBAIC05
OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwgbV9kYXRhYmFzZU1h
eFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0
cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRG
T1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVuTG9vcDo6bWFpbigp
LCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJGaXJlZCkKICNlbmRp
ZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9U
ZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuaAppbmRleCA4ZGM4OWNhMzE1ZS4uNGRiMjhhZDRhMmMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0zOCw3ICsz
OCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPENvcmVGb3VuZGF0
aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGltZXJSZWY+IFBs
YXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogbmFtZXNwYWNlIFdU
UiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lOTRj
MmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDcx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlz
IGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29y
CisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFs
IFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl
IGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlv
biwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIx
MTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYgaWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9ybU5hbWUo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cm9vdEVs
ZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3Jl
YXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphZGROb3Rp
ZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpyZW1v
dmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5kaWYgLy8gSEFWRShB
Q0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0OTE1MGE1NDAKLS0t
IC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlz
IGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAq
ICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBp
biB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBX
QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hB
TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBH
TlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor
ICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2Vy
IEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVT
QQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJOb3RJbXBs
ZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50QXRQb2ludChp
bnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hpbGQoQWNjZXNz
aWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVuc2lnbmVk
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojphcmlh
T3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5zaWduZWQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVm
UHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFD
b250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb3dBdElu
ZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5kZXgodW5z
aWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVtZW50cygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitkb3VibGUg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYg
YXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30K
KworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJheUF0dHJp
YnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVm
IGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRyaWJ1dGVW
YWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNBdHRy
aWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZU5h
bWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZSgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJvbGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVzY3JpcHRp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb21wdXRl
ZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRl
c2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp4KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3aWR0aCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
bGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFkoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpt
aW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQor
Citkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmNy
ZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVjcmVtZW50
QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlvbkFjdGl2ZSgpIGNv
bnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0lu
ZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGllcmFyY2hpY2FsTGV2
ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzcGVhaygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9v
bCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZmZWN0cygpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworaW50
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24oaW50LCBpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJh
bmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFu
Z2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
ZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0
UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdS
ZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9vbCwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0VGV4dFdp
dGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmLCBKU1N0cmlu
Z1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29sdW1ucygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNP
ZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRy
aWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
aW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAw
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aG9yaXpv
bnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQsIHVuc2lnbmVk
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNyZW1lbnQoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5z
aWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2lnbmVkIGlu
ZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYgZnVuY3Rpb25DYWxs
YmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNN
dWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlzaWJsZSgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2luZ2xlTGluZSgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rpb24oKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVt
b3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZVRl
eHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0
TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
UmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpw
cmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRNYXJrZXIoQWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFu
Z2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJh
bmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJvdW5kcyhpbnQs
IGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGludCwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRNYXJrZXIoQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0
cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmLCBBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4Rm9y
VGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpp
c1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvckluZGV4KGlu
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitS
ZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0
YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNl
bGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9sbFRvR2xv
YmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZvY3VzKGlu
dCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9ydGVkQWN0aW9u
cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBh
dGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNEZXNjcmlwdGlv
bigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNs
YXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZv
bnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzNjZjcy
MWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0NSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVkZSA8Zm9udGNvbmZp
Zy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5oPgorI2lu
Y2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK0NTdHJp
bmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9wTGV2ZWxEaXJlY3Rv
cnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICByZXR1cm4gdG9wTGV2
ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgd2Fzbid0
IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAgIC8vIFdlYktpdEJ1
aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0aGlzIHdpbGwgZmFp
bCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5kYXJkLCBidXQgd2Ug
Y2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXJl
bnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgoKS5kYXRh
KCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChnX2J1aWxkX2ZpbGVu
YW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxwdHIpKTsKKyAgICBH
VW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRoKGxheW91dFRlc3Rz
UGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVsUGF0aC5nZXQoKTsK
K30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNoYXIqIHdlYmtpdE91
dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAgaWYgKHdlYmtpdE91
dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQYXRoKCkuZGF0YSgp
LCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1dERpci5nZXQoKTsK
K30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBDU3RyaW5nIHdlYmtp
dE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gZm9udHNQ
YXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIkRlcGVuZGVuY2ll
c1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0cikpOworICAgIGlm
IChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19G
SUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBm
b250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9udHMgcGF0aC4KKyAg
ICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRwdXREaXIuZGF0YSgp
LCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdfZmlsZV90ZXN0KGZv
bnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9FWElTVFMg
fCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRzUGF0aC5nZXQoKTsK
KworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVGb250cygpCit7Cisg
ICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVSX0ZPTlRDT05GSUdf
SU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJbml0KCk7CisKKyAg
ICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9yIHJlbW92ZWQgdmlh
IHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRvIHJlc2V0IHRoZSBG
b250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFmZmVjdGluZyBvdGhl
ciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBGY0ZvbnRTZXQqIGFw
cEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOworICAgIGlm
IChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250ID09IG51bUZvbnRz
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1cmF0aW9uIGZpbGUs
IHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAgIC8vIG5hbWVzIGxp
a2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyogY29uZmlnID0gRmND
b25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29uZmlnRmlsZW5hbWUo
Z19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYiLCBudWxscHRyKSk7
CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCksIEdfRklMRV9U
RVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmluZCBmb250cy5jb25m
IGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlmICghRmNDb25maWdQ
YXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihmb250Q29uZmln
RmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGRuJ3QgbG9hZCBm
b250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdGaWxlbmFtZS5nZXQo
KSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgpOworICAgIGlmIChm
b250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2NhdGUgdGVz
dCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9udHNQYXRoLmRhdGEo
KSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdfZGlyX29wZW4oZm9u
dHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25zdCBjaGFyKiBkaXJl
Y3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5nZXQoKSkpIHsKKyAg
ICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLnR0ZiIpICYmICFn
X3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdfYnVpbGRfZmlsZW5h
bWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIpKTsKKyAgICAgICAg
aWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxk
IG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAgIH0KKworICAgIC8v
IEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5pcXVlUHRyPGdjaGFy
PiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJBSEVN
X19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNv
bmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxlbmFtZS5nZXQoKSkp
KQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGFoZW1Gb250
RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmb250RmlsZW5hbWVz
W10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIsCisgICAgICAgICJX
ZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVy
MzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0ZiIsCisgICAgICAg
ICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRj
aGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiIsCisgICAg
ICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRX
YXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9yIChzaXplX3QgaSA9
IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBm
b250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgIi4uIiwgIi4uIiwg
ImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAgICBpZiAoIUZjQ29u
ZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihmb250
RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZv
bnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisgICAgLy8gQSBmb250
IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZv
bnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05G
X0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIpKTsKKyAgICBpZiAo
IUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgq
Pihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisgICAgICAgIGdfZXJy
b3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1ZhbGlkRW5jb2RpbmdG
aWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJlbnQoY29uZmlnKSkK
KyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBmb250IGNvbmZpZ3Vy
YXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmlnLCBGY1Nl
dEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0ZWRCdW5k
bGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5q
ZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAtMCwwICsxLDM1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgorCituYW1lc3BhY2Ug
V1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKFdLVHlwZVJl
ZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1NgotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RS
dW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRl
c3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmKQoreworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1bm5lcjo6
aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxpZGF0ZVdhaXRUb0R1
bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLnN0b3Ao
KTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2
b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVk
KCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3QobV90aW1lb3V0IC8g
MTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
UGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNrYWdlKExpYkdCTSBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlSRUQpCisKK2FkZF9j
dXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09N
TUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1m
b3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRfVEVTVFJVTk5FUl9E
SVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUKKykK
Kworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1FIFdlYktpdFRl
c3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVu
bmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fpcm8vVGVzdEludm9j
YXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvRXZlbnRT
ZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0hlYWRs
ZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9QbGF0
Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9UZXN0
Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL21haW4u
Y3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9ESVJFQ1RPUklF
UworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRsZS93cGUKKyAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9CisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9CisgICAgJHtX
UEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30K
KyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9CispCisK
K2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VTCisgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY2Nlc3NpYmlsaXR5
Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExF
X0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVT
VFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcAorICAg
ICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvSW5qZWN0ZWRCdW5k
bGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dw
ZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisgICAgLURGT05UU19D
T05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2ZvbnRzIgorICAgIC1E
VE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDcxYTRlNzY2MTc2Li41NDJmMDM2NmQ1NyAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01Myw2ICs1MywxMSBA
QCB0eXBlZGVmIGNhaXJvX3N1cmZhY2VfdCAqUGxhdGZvcm1JbWFnZTsKICNlbGlmIFBMQVRGT1JN
KEVGTCkKIHR5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBFY29y
ZV9FdmFzKiBQbGF0Zm9ybVdpbmRvdzsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKK2NsYXNzIEhlYWRs
ZXNzVmlld0JhY2tlbmQ7Cit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdLVmlldzsKK3R5cGVk
ZWYgSGVhZGxlc3NWaWV3QmFja2VuZCogUGxhdGZvcm1XaW5kb3c7Cit0eXBlZGVmIGNhaXJvX3N1
cmZhY2VfdCogUGxhdGZvcm1JbWFnZTsKICNlbmRpZgogCiBuYW1lc3BhY2UgV1RSIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWI3MDllMzZmNzUuLmFk
MTlmMTBiNDI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9s
bGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcApA
QCAtNzY3LDcgKzc2Nyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNp
c3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgLy8gc29tZSBvdGhl
ciBjb2RlIGRvaW5nIHRoaXMsIGl0IHNob3VsZCBwcm9iYWJseSBiZSByZXNwb25zaWJsZSBmb3Ig
Y2xlYW51cCB0b28uCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcyhvcHRp
b25zKTsKIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShXUEUpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5h
YmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi41MWVlMGZjMmU1NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEs
MTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFNlbmRlclByb3h5LmgiCisKK25h
bWVzcGFjZSBXVFIgeworCitFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRlclByb3h5KFRlc3RD
b250cm9sbGVyKiB0ZXN0Q29udHJvbGxlcikKKyAgICA6IG1fdGVzdENvbnRyb2xsZXIodGVzdENv
bnRyb2xsZXIpCisgICAgLCBtX3RpbWUoMCkKKyAgICAsIG1fbGVmdE1vdXNlQnV0dG9uRG93bihm
YWxzZSkKKyAgICAsIG1fY2xpY2tDb3VudCgwKQorICAgICwgbV9jbGlja1RpbWUoMCkKKyAgICAs
IG1fY2xpY2tCdXR0b24oa1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uKQoreworfQorCitFdmVu
dFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2
b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQsIFdLRXZlbnRNb2RpZmllcnMp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8oZG91YmxlLCBkb3Vi
bGUpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeShpbnQsIGlu
dCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVs
QW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCwgaW50LCBib29sKQorewor
fQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCkKK3sKK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmLCBXS0V2ZW50TW9kaWZpZXJz
LCB1bnNpZ25lZCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjphZGRUb3VjaFBvaW50
KGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnVwZGF0ZVRvdWNoUG9p
bnQoaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRUb3Vj
aE1vZGlmaWVyKFdLRXZlbnRNb2RpZmllcnMsIGJvb2wpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5k
ZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojp0b3VjaFN0YXJ0KCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5
Ojp0b3VjaE1vdmUoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnRvdWNoRW5kKCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaENhbmNlbCgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cygpCit7Cit9CisKK3ZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQoaW50KQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQoreworfQorCit9IC8vIG5hbWVzcGFj
ZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmll
d0JhY2tlbmQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFj
a2VuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU2MGI0MGEz
ZWZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVhZGxl
c3NWaWV3QmFja2VuZC5jcHAKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkhlYWRsZXNzVmlld0JhY2tlbmQuaCIKKworI2luY2x1ZGUgPGNhc3NlcnQ+CisjaW5jbHVk
ZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworLy8gRklYTUU6IERlcGxveSBnb29k
IHByYWN0aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9jZXNzIGV4aXQuCitz
dGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKK3sKKyAgICBzdGF0aWMgRUdMRGlzcGxh
eSBzX2Rpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKKyAgICBpZiAoc19kaXNwbGF5ID09IEVHTF9O
T19ESVNQTEFZKSB7CisgICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvZHJpL3JlbmRlckQxMjgi
LCBPX1JEV1IgfCBPX0NMT0VYRUMgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0spOworICAgICAgICBp
ZiAoZmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAg
IHN0cnVjdCBnYm1fZGV2aWNlKiBkZXZpY2UgPSBnYm1fY3JlYXRlX2RldmljZShmZCk7CisgICAg
ICAgIGlmICghZGV2aWNlKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisg
ICAgICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IGVnbEdldERpc3BsYXkoZGV2aWNlKTsKKyAgICAg
ICAgaWYgKGRpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAgICByZXR1cm4gRUdM
X05PX0RJU1BMQVk7CisKKyAgICAgICAgaWYgKCFlZ2xJbml0aWFsaXplKGRpc3BsYXksIG51bGxw
dHIsIG51bGxwdHIpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAg
ICAgIGlmICghZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkpCisgICAgICAgICAgICByZXR1
cm4gRUdMX05PX0RJU1BMQVk7CisKKyAgICAgICAgc19kaXNwbGF5ID0gZGlzcGxheTsKKyAgICB9
CisKKyAgICByZXR1cm4gc19kaXNwbGF5OworfQorCitIZWFkbGVzc1ZpZXdCYWNrZW5kOjpIZWFk
bGVzc1ZpZXdCYWNrZW5kKCkKK3sKKyAgICBtX2VnbC5kaXNwbGF5ID0gZ2V0RUdMRGlzcGxheSgp
OworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb25maWdBdHRyaWJ1dGVzWzEzXSA9IHsKKyAg
ICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAgICAgIEVHTF9SRURf
U0laRSwgMSwKKyAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAgIEVHTF9CTFVFX1NJ
WkUsIDEsCisgICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBFR0xfUkVOREVSQUJM
RV9UWVBFLCBFR0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05FCisgICAgfTsKKwor
ICAgIEVHTGludCBudW1Db25maWdzOworICAgIEVHTEJvb2xlYW4gcmV0ID0gZWdsQ2hvb3NlQ29u
ZmlnKG1fZWdsLmRpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbC5jb25maWcsIDEsICZu
dW1Db25maWdzKTsKKyAgICBpZiAoIXJldCB8fCAhbnVtQ29uZmlncykKKyAgICAgICAgcmV0dXJu
OworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb250ZXh0QXR0cmlidXRlc1szXSA9IHsKKyAg
ICAgICAgRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04sIDIsCisgICAgICAgIEVHTF9OT05FCisg
ICAgfTsKKworICAgIG1fZWdsLmNvbnRleHQgPSBlZ2xDcmVhdGVDb250ZXh0KG1fZWdsLmRpc3Bs
YXksIG1fZWdsLmNvbmZpZywgRUdMX05PX0NPTlRFWFQsIGNvbnRleHRBdHRyaWJ1dGVzKTsKKyAg
ICBpZiAobV9lZ2wuY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKCFlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpKQorICAgICAgICByZXR1cm47CisKKyAgICBt
X2VnbC5jcmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMQ1JFQVRFSU1BR0VLSFJQ
Uk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VLSFIiKSk7CisgICAgbV9lZ2wu
ZGVzdHJveUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9D
PihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hSIikpOworICAgIG1fZWdsLmlt
YWdlVGFyZ2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5HTEVHTElNQUdFVEFS
R0VUVEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdMSW1hZ2VUYXJnZXRU
ZXh0dXJlMkRPRVMiKSk7CisKKyAgICBtX2V4cG9ydGFibGUgPSB3cGVfbWVzYV92aWV3X2JhY2tl
bmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xpZW50LCB0aGlzKTsK
KworICAgIG1fdXBkYXRlU291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXcobV9mcmFtZVJhdGUg
LyAxMDAwKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV91cGRhdGVTb3VyY2UsCisgICAg
ICAgIFtdKGdwb2ludGVyIGRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAgICAgIGF1dG8mIGJh
Y2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworICAgICAg
ICAgICAgYmFja2VuZC5wZXJmb3JtVXBkYXRlKCk7CisgICAgICAgICAgICByZXR1cm4gVFJVRTsK
KyAgICAgICAgfSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0YWNoKG1fdXBkYXRl
U291cmNlLCBnX21haW5fY29udGV4dF9kZWZhdWx0KCkpOworfQorCitIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjp+SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgaWYgKG1fdXBkYXRlU291cmNlKQor
ICAgICAgICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291cmNlKTsKKworICAgIGlmIChhdXRv
IGltYWdlID0gc3RkOjpnZXQ8MD4obV9wZW5kaW5nSW1hZ2Uuc2Vjb25kKSkKKyAgICAgICAgbV9l
Z2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKyAgICBpZiAoYXV0byBpbWFn
ZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSkKKyAgICAgICAgbV9lZ2wuZGVz
dHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKworICAgIGZvciAoYXV0byBpdCA6IG1f
ZXhwb3J0TWFwKSB7CisgICAgICAgIGludCBmZCA9IGl0LnNlY29uZDsKKyAgICAgICAgaWYgKGZk
ID49IDApCisgICAgICAgICAgICBjbG9zZShmZCk7CisgICAgfQorCisgICAgaWYgKG1fZWdsLmNv
bnRleHQpCisgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KG1fZWdsLmRpc3BsYXksIG1fZWdsLmNv
bnRleHQpOworfQorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6YmFja2VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9l
eHBvcnRhYmxlX2RtYV9idWZfZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFibGUpOworfQorCitj
YWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNuYXBzaG90KCkKK3sK
KyAgICBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBFR0xJbWFnZUtIUiBpbWFnZSA9IHN0ZDo6Z2V0
PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICBpZiAoIWltYWdlKQorICAgICAgICByZXR1
cm4gbnVsbHB0cjsKKworICAgIHVpbnQzMl90IHdpZHRoID0gc3RkOjpnZXQ8MT4obV9sb2NrZWRJ
bWFnZS5zZWNvbmQpOworICAgIHVpbnQzMl90IGhlaWdodCA9IHN0ZDo6Z2V0PDI+KG1fbG9ja2Vk
SW1hZ2Uuc2Vjb25kKTsKKworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1aW50OF90WzQgKiB3
aWR0aCAqIGhlaWdodF07CisgICAgYm9vbCBzdWNjZXNzZnVsU25hcHNob3QgPSBmYWxzZTsKKwor
ICAgIG1ha2VDdXJyZW50KCk7CisKKyAgICBHTHVpbnQgaW1hZ2VUZXh0dXJlOworICAgIGdsR2Vu
VGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJF
XzJELCBpbWFnZVRleHR1cmUpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdM
X1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFSKTsKKyAgICBnbFRl
eFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1MsIEdMX0NMQU1QX1RP
X0VER0UpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX1dS
QVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhJbWFnZTJEKEdMX1RFWFRVUkVfMkQs
IDAsIEdMX0JHUkFfRVhULCB3aWR0aCwgaGVpZ2h0LCAwLCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdO
RURfQllURSwgbnVsbHB0cik7CisKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyhH
TF9URVhUVVJFXzJELCBpbWFnZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9URVhUVVJFXzJELCAw
KTsKKworICAgIEdMdWludCBpbWFnZUZyYW1lYnVmZmVyOworICAgIGdsR2VuRnJhbWVidWZmZXJz
KDEsICZpbWFnZUZyYW1lYnVmZmVyKTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJV
RkZFUiwgaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xGcmFtZWJ1ZmZlclRleHR1cmUyRChHTF9G
UkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVfMkQsIGltYWdlVGV4
dHVyZSwgMCk7CisKKyAgICBnbEZsdXNoKCk7CisgICAgaWYgKGdsQ2hlY2tGcmFtZWJ1ZmZlclN0
YXR1cyhHTF9GUkFNRUJVRkZFUikgPT0gR0xfRlJBTUVCVUZGRVJfQ09NUExFVEUpIHsKKyAgICAg
ICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkFfRVhULCBHTF9VTlNJ
R05FRF9CWVRFLCBidWZmZXIpOworICAgICAgICBzdWNjZXNzZnVsU25hcHNob3QgPSB0cnVlOwor
ICAgIH0KKworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCAwKTsKKyAgICBn
bERlbGV0ZUZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xEZWxldGVU
ZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKKworICAgIGlmICghc3VjY2Vzc2Z1bFNuYXBzaG90
KSB7CisgICAgICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgfQorCisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBjYWlyb19pbWFnZV9z
dXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsCisgICAgICAgIENBSVJPX0ZPUk1BVF9BUkdC
MzIsIHdpZHRoLCBoZWlnaHQsIGNhaXJvX2Zvcm1hdF9zdHJpZGVfZm9yX3dpZHRoKENBSVJPX0ZP
Uk1BVF9BUkdCMzIsIHdpZHRoKSk7CisgICAgY2Fpcm9fc3VyZmFjZV9tYXJrX2RpcnR5KGltYWdl
U3VyZmFjZSk7CisKKyAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IGJ1ZmZlcktleTsK
KyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoaW1hZ2VTdXJmYWNlLCAmYnVmZmVyS2V5
LCBidWZmZXIsCisgICAgICAgIFtdKHZvaWQqIGRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIGJ1
ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKKyAgICAgICAgICAgIGRlbGV0ZVtd
IGJ1ZmZlcjsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gaW1hZ2VTdXJmYWNlOworfQorCiti
b29sIEhlYWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KCkKK3sKKyAgICByZXR1cm4gZWds
TWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNF
LCBtX2VnbC5jb250ZXh0KTsKK30KKwordm9pZCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpwZXJmb3Jt
VXBkYXRlKCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0ltYWdlLmZpcnN0KQorICAgICAgICByZXR1
cm47CisKKyAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2Rpc3Bh
dGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgaWYgKG1fbG9ja2VkSW1hZ2Uu
Zmlyc3QpIHsKKyAgICAgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1
Zl9kaXNwYXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9ja2VkSW1hZ2UuZmly
c3QpOworICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxheSwgc3RkOjpnZXQ8
MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKTsKKyAgICB9CisKKyAgICBtX2xvY2tlZEltYWdlID0g
bV9wZW5kaW5nSW1hZ2U7CisgICAgbV9wZW5kaW5nSW1hZ2UgPSBzdGQ6OnBhaXI8dWludDMyX3Qs
IHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IHsgfTsKK30KKwor
c3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IEhl
YWRsZXNzVmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAgICAvLyBleHBvcnRf
ZG1hX2J1ZgorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRf
ZXhwb3J0YWJsZV9kbWFfYnVmX2RhdGEqIGltYWdlRGF0YSkKKyAgICB7CisgICAgICAgIGF1dG8m
IGJhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRhdGEpOworCisg
ICAgICAgIGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpOworICAgICAgICBpZiAo
aW1hZ2VEYXRhLT5mZCA+PSAwKSB7CisgICAgICAgICAgICBhc3NlcnQoYmFja2VuZC5tX2V4cG9y
dE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9PSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgp
KTsKKworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmluc2VydCh7IGltYWdl
RGF0YS0+aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0pLmZpcnN0OworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhh
bmRsZSkgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAgICAgICBpdCA9IGJh
Y2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSk7CisgICAgICAgIH0KKwor
ICAgICAgICBhc3NlcnQoaXQgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAg
IHVpbnQzMl90IGhhbmRsZSA9IGl0LT5maXJzdDsKKyAgICAgICAgaW50MzJfdCBmZCA9IGl0LT5z
ZWNvbmQ7CisKKyAgICAgICAgYmFja2VuZC5tYWtlQ3VycmVudCgpOworCisgICAgICAgIEVHTGlu
dCBhdHRyaWJ1dGVzW10gPSB7CisgICAgICAgICAgICBFR0xfV0lEVEgsIHN0YXRpY19jYXN0PEVH
TGludD4oaW1hZ2VEYXRhLT53aWR0aCksCisgICAgICAgICAgICBFR0xfSEVJR0hULCBzdGF0aWNf
Y2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+aGVpZ2h0KSwKKyAgICAgICAgICAgIEVHTF9MSU5VWF9E
Uk1fRk9VUkNDX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmZvcm1hdCksCisg
ICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBmZCwKKyAgICAgICAgICAgIEVH
TF9ETUFfQlVGX1BMQU5FMF9PRkZTRVRfRVhULCAwLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZf
UExBTkUwX1BJVENIX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPnN0cmlkZSks
CisgICAgICAgICAgICBFR0xfTk9ORSwKKyAgICAgICAgfTsKKyAgICAgICAgRUdMSW1hZ2VLSFIg
aW1hZ2UgPSBiYWNrZW5kLm1fZWdsLmNyZWF0ZUltYWdlKGJhY2tlbmQubV9lZ2wuZGlzcGxheSwg
RUdMX05PX0NPTlRFWFQsIEVHTF9MSU5VWF9ETUFfQlVGX0VYVCwgbnVsbHB0ciwgYXR0cmlidXRl
cyk7CisgICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGltYWdlRGF0YS0+aGFuZGxl
LCBzdGQ6Om1ha2VfdHVwbGUoaW1hZ2UsIGltYWdlRGF0YS0+d2lkdGgsIGltYWdlRGF0YS0+aGVp
Z2h0KSB9OworICAgIH0sCit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5iMDU0ZjgzNDIyMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnYm0uaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5j
bHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3LWJhY2tlbmQtZXhw
b3J0YWJsZS1kbWEtYnVmLmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8R0xF
UzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUgPEVHTC9lZ2xleHQu
aD4KKworY2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZCB7CitwdWJsaWM6CisgICAgSGVhZGxlc3NW
aWV3QmFja2VuZCgpOworICAgIH5IZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CisKKyAgICBzdHJ1Y3Qg
d3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIGNvbnN0OworCisgICAgY2Fpcm9fc3VyZmFjZV90
KiBjcmVhdGVTbmFwc2hvdCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFrZUN1cnJlbnQoKTsK
KyAgICB2b2lkIHBlcmZvcm1VcGRhdGUoKTsKKworICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX21lc2Ff
dmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgc19leHBvcnRhYmxlQ2xpZW50
OworCisgICAgc3RydWN0IHsKKyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5OworICAgICAgICBF
R0xDb25maWcgY29uZmlnOworICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisKKyAgICAgICAg
UEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGNyZWF0ZUltYWdlOworICAgICAgICBQRk5FR0xERVNU
Uk9ZSU1BR0VLSFJQUk9DIGRlc3Ryb3lJbWFnZTsKKyAgICAgICAgUEZOR0xFR0xJTUFHRVRBUkdF
VFRFWFRVUkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVM7CisgICAgfSBtX2VnbDsK
KworICAgIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmKiBt
X2V4cG9ydGFibGU7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDMyX3QsIGludDMyX3Q+
IG1fZXhwb3J0TWFwOworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFn
ZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9OworICAgIHN0ZDo6
cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90
Pj4gbV9sb2NrZWRJbWFnZSB7IH07CisKKyAgICBHU291cmNlKiBtX3VwZGF0ZVNvdXJjZTsKKyAg
ICBnaW50NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVSX1NFQyAvIDYwIH07Cit9OwpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk1MDQzOTRiZDQ2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJWaWV3V1BFLmNw
cApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJW
aWV3LmgiCisKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisjaW5jbHVkZSA8V2Vi
S2l0L1dLSW1hZ2VDYWlyby5oPgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Y3N0ZGlv
PgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3Bh
Y2UgV1RSIHsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXcoV0tQYWdlQ29uZmln
dXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYgb3B0aW9ucykKKyAg
ICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRpb25zKQoreworICAg
IG1fd2luZG93ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgbV92aWV3ID0gV0tWaWV3
Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKG1fd2luZG93LT5iYWNrZW5kKCksIGNvbmZpZ3VyYXRpb24p
OworfQorCitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQoreworICAgIGRlbGV0
ZSBtX3dpbmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6ZVRvKHVuc2lnbmVk
LCB1bnNpZ25lZCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK1dLUGFnZVJlZiBQbGF0Zm9y
bVdlYlZpZXc6OnBhZ2UoKQoreworICAgIHJldHVybiBXS1ZpZXdHZXRQYWdlKG1fdmlldyk7Cit9
CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7Cit9CisKK1dLUmVjdCBQbGF0Zm9y
bVdlYlZpZXc6OndpbmRvd0ZyYW1lKCkKK3sKKyAgICByZXR1cm4gV0tSZWN0eyAwLCAwLCAxLCAx
IH07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFtZShXS1JlY3QsIFdl
YlZpZXdTaXppbmdNb2RlKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6ZGlkSW5pdGlh
bGl6ZUNsaWVudHMoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6YWRkQ2hyb21lSW5w
dXRGaWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVDaHJvbWVJbnB1
dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZFRvV2luZG93KCkKK3sK
K30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUZyb21XaW5kb3coKQoreworfQorCit2
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKK3sK
KyAgICBtX3dpbmRvd0lzS2V5ID0gd2luZG93SXNLZXk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJW
aWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkKK3sKK30KKworY2Fpcm9fc3VyZmFjZV90
KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQoreworICAgIHsKKyAgICAg
ICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgICAgICBUaW1lb3V0VGltZXIoKQorICAg
ICAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGltZW91dFRpbWVy
OjpmaXJlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aW1lci5zdGFydE9uZVNo
b3QoMS4wIC8gNjApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2b2lkIGZpcmVkKCkg
eyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgICAgICBSdW5Mb29wOjpUaW1lcjxU
aW1lb3V0VGltZXI+IHRpbWVyOworICAgICAgICB9IHRpbWVvdXRUaW1lcjsKKworICAgICAgICBS
dW5Mb29wOjptYWluKCkucnVuKCk7CisgICAgfQorCisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFn
ZVN1cmZhY2UgPSBtX3dpbmRvdy0+Y3JlYXRlU25hcHNob3QoKTsKKyAgICByZXR1cm4gaW1hZ2VT
dXJmYWNlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlV2luZG93U2NhbGVJZk5l
ZWRlZChmbG9hdCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldE5hdmlnYXRpb25H
ZXN0dXJlc0VuYWJsZWQoYm9vbCkKK3sKK30KKworYm9vbCBQbGF0Zm9ybVdlYlZpZXc6OnZpZXdT
dXBwb3J0c09wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdAoreworICAgIHJldHVybiB0
cnVlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9yY2VXaW5kb3dGcmFtZXNDaGFuZ2Vk
KCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjBjYzNkZWRlOTg2Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTM5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorCisjaW5jbHVkZSA8Z2xp
Yi5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBUZXN0Q29udHJvbGxlcjo6bm90aWZ5
RG9uZSgpCit7CisgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKK30KKwordm9pZCBUZXN0Q29u
dHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK1dLUHJlZmVyZW5jZXNSZWYgVGVzdENvbnRyb2xs
ZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQoreworICAgIHJldHVybiBXS1BhZ2VHcm91cEdldFBy
ZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6
cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1J
bml0aWFsaXplQ29udGV4dCgpCit7Cit9CisKK3N0YXRpYyBHTWFpbkNvbnRleHQqIHRocmVhZERl
ZmF1bHRDb250ZXh0KCkKK3sKKyAgICBpZiAoR01haW5Db250ZXh0KiBjb250ZXh0ID0gZ19tYWlu
X2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpCisgICAgICAgIHJldHVybiBjb250ZXh0Owor
ICAgIHJldHVybiBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3VibGUgdGltZW91dCkK
K3sKKyAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgVGltZW91dFRpbWVyKCkKKyAg
ICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGltZW91dFRpbWVyOjpm
aXJlZCkKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9pZCBmaXJlZCgpIHsgUnVuTG9vcDo6bWFp
bigpLnN0b3AoKTsgfQorICAgICAgICBSdW5Mb29wOjpUaW1lcjxUaW1lb3V0VGltZXI+IHRpbWVy
OworICAgIH0gdGltZW91dFRpbWVyOworCisgICAgdGltZW91dFRpbWVyLnRpbWVyLnNldFByaW9y
aXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKKyAgICBpZiAodGltZW91dCA+PSAwKQorICAg
ICAgICB0aW1lb3V0VGltZXIudGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQpOworCisgICAgUnVu
TG9vcDo6bWFpbigpLnJ1bigpOworCisgICAgdGltZW91dFRpbWVyLnRpbWVyLnN0b3AoKTsKK30K
Kwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EaWRDb21taXRMb2FkRm9yRnJhbWUoV0tQ
YWdlUmVmLCBXS0ZyYW1lUmVmKQoreworfQorCitzdGF0aWMgY2hhciogZ2V0RW52aXJvbm1lbnRW
YXJpYWJsZUFzVVRGOFN0cmluZyhjb25zdCBjaGFyKiB2YXJpYWJsZU5hbWUpCit7CisgICAgY29u
c3QgY2hhciogdmFsdWUgPSBnX2dldGVudih2YXJpYWJsZU5hbWUpOworICAgIGlmICghdmFsdWUp
IHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3Qg
Zm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMCk7CisgICAgfQorICAgIGdz
aXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191dGY4KHZhbHVlLCAt
MSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRp
YWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChn
ZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKCJURVNUX1JVTk5FUl9JTkpFQ1RFRF9C
VU5ETEVfRklMRU5BTUUiKSk7CisgICAgbV9pbmplY3RlZEJ1bmRsZVBhdGguYWRvcHQoV0tTdHJp
bmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocGF0aC5nZXQoKSkpOworfQorCit2b2lkIFRlc3RDb250
cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpCit7Cit9CisKK3ZvaWQgVGVz
dENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopCit7Cit9CisKK1dLQ29udGV4
dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtTGlicmFyeVBh
dGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBUZXN0Q29u
dHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBUZXN0SW52b2NhdGlv
biYpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVzZXRQcmVmZXJlbmNl
c1RvQ29uc2lzdGVudFZhbHVlcygpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnVwZGF0
ZVBsYXRmb3JtU3BlY2lmaWNUZXN0T3B0aW9uc0ZvclRlc3QoVGVzdE9wdGlvbnMmLCBjb25zdCBz
dGQ6OnN0cmluZyYpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MC4uNmNmMmI3ZmYzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUg
IlRlc3RDb250cm9sbGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKK3sK
KyAgICBXVFI6OlRlc3RDb250cm9sbGVyIGNvbnRyb2xsZXIoYXJnYywgY29uc3RfY2FzdDxjb25z
dCBjaGFyKio+KGFyZ3YpKTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL2po
YnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKaW5k
ZXggZjZjNDAzZDMxYjAuLmUzZWVjZGZjZTg3IDEwMDc1NQotLS0gYS9Ub29scy9qaGJ1aWxkL2po
YnVpbGQtd3JhcHBlcgorKysgYi9Ub29scy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgpAQCAtMzEs
NiArMzEsOCBAQCBkZWYgZGV0ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAgIHJldHVybiAiZWZs
IjsKICAgICBpZiAnLS1ndGsnIGluIHN5cy5hcmd2OgogICAgICAgICByZXR1cm4gImd0ayI7Cisg
ICAgaWYgJy0td3BlJyBpbiBzeXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJ3cGUiCiAgICAgcmFp
c2UgVmFsdWVFcnJvcignTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciBqaGJ1aWxkLXdyYXBwZXIu
JykKIAogdHJ5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVz
b3VyY2UtbWFuaWZlc3QucHkgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJj
ZS1tYW5pZmVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYWIx
OTQ3NDRjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVjdG9y
LWdyZXNvdXJjZS1tYW5pZmVzdC5weQpAQCAtMCwwICsxLDc3IEBACisjIS91c3IvYmluL2VudiBw
eXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisjCisjIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwor
IyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBl
aXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhl
IGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZ
OyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZ
IG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVz
c2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyMKKyMgWW91IHNo
b3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1Ymxp
YworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRo
ZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitpbXBvcnQgYXJncGFy
c2UKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworQ09NUFJFU1NJQkxFX0VY
VEVOU0lPTlMgPSBbJy5odG1sJywgJy5qcycsICcuY3NzJywgJy5zdmcnXQorQkFTRV9ESVIgPSAn
V2ViSW5zcGVjdG9yVUkvJworCisKK2RlZiBnZXRfZmlsZW5hbWVzKGFyZ3MpOgorICAgIGZpbGVu
YW1lcyA9IFtdCisKKyAgICBmb3IgcGF0dGVybiBpbiBhcmdzOgorICAgICAgICBwYXRocyA9IGds
b2IuZ2xvYihwYXR0ZXJuKQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcGF0aHM6CisgICAgICAg
ICAgICBiYXNlX2Rpcl9pbmRleCA9IGZpbGVuYW1lLnJmaW5kKEJBU0VfRElSKQorICAgICAgICAg
ICAgaWYgYmFzZV9kaXJfaW5kZXggIT0gLTE6CisgICAgICAgICAgICAgICAgbmFtZSA9IGZpbGVu
YW1lW2Jhc2VfZGlyX2luZGV4ICsgbGVuKEJBU0VfRElSKTpdCisgICAgICAgICAgICAgICAgIyBU
aGUgcmVzdWx0IHNob3VsZCB1c2UgZm9yd2FyZCBzbGFzaGVzLCB0aHVzIG1ha2Ugc3VyZSBhbnkg
b3Mtc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciwgYWRkZWQgYnkgdGhlIGds
b2IuZ2xvYigpIGNhbGwsIGlzIHByb3Blcmx5IHJlcGxhY2VkCisgICAgICAgICAgICAgICAgaWYg
b3Muc2VwICE9ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5hbWUucmVwbGFjZShv
cy5zZXAsICcvJykKKyAgICAgICAgICAgICAgICBmaWxlbmFtZXMuYXBwZW5kKG5hbWUpCisgICAg
cmV0dXJuIGZpbGVuYW1lcworCisKK2RlZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUpOgorICAg
IHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXSBpbiBDT01QUkVTU0lCTEVfRVhU
RU5TSU9OUworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAgcGFyc2VyID0gYXJn
cGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0dlbmVyYXRlIGEgR1Jlc291cmNlcyBm
aWxlIGZvciB0aGUgaW5zcGVjdG9yLicpCisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnLS1vdXRw
dXQnLCBuYXJncz0nPycsIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3cnKSwgZGVmYXVsdD1zeXMu
c3Rkb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndGhlIG91dHB1dCBmaWxlJykK
KyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlbmFtZXMnLCBtZXRhdmFyPSdGSUxFUycsIG5h
cmdzPScrJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBsaXN0IG9mIGZpbGVz
IHRvIGluY2x1ZGUnKQorCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdzKHN5cy5hcmd2WzE6
XSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRlKFwKKyAgICAiIiI8P3htbCB2ZXJzaW9uPTEuMCBl
bmNvZGluZz1VVEYtOD8+CisgICAgPGdyZXNvdXJjZXM+CisgICAgICAgIDxncmVzb3VyY2UgcHJl
Zml4PSIvb3JnL3dwZS9pbnNwZWN0b3IiPgorIiIiKQorCisgICAgZm9yIGZpbGVuYW1lIGluIGdl
dF9maWxlbmFtZXMoYXJncy5maWxlbmFtZXMpOgorICAgICAgICBsaW5lID0gJyAgICAgICAgICAg
IDxmaWxlJworICAgICAgICBpZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUpOgorICAgICAgICAg
ICAgbGluZSArPSAnIGNvbXByZXNzZWQ9InRydWUiJworICAgICAgICBpZiAnSW1hZ2VzL2d0ay8n
IGluIGZpbGVuYW1lOgorICAgICAgICAgICAgbGluZSArPSAnIGFsaWFzPSIlcyInICUgZmlsZW5h
bWUucmVwbGFjZSgnZ3RrLycsICcnKQorICAgICAgICBsaW5lICs9ICc+JXM8L2ZpbGU+XG4nICUg
ZmlsZW5hbWUKKworICAgICAgICBhcmdzLm91dHB1dC53cml0ZShsaW5lKQorCisgICAgYXJncy5v
dXRwdXQud3JpdGUoXAorICAgICIiIiAgICA8L2dyZXNvdXJjZT4KKzwvZ3Jlc291cmNlcz4KKyIi
IikKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dwZS9q
aGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJl
ZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcwpA
QCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURPQ1RZUEUgbW9kdWxl
c2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1zdHlsZXNoZWV0IHR5cGU9InRleHQv
eHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxlc2V0PgorCisgIDxtZXRhbW9kdWxl
IGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+
CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGlic291
cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJm
b250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBlNiIvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24i
Lz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJn
c3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtbGliYXYiLz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9IndwZS1tZXNhIi8+
CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVsZT4KKworICA8cmVwb3NpdG9yeSB0
eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1taXJyb3IiCisgICAgICBocmVmPSJo
dHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0LmNvbS8iLz4KKyAgPHJlcG9z
aXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9yZyIKKyAgICAgIGhyZWY9Imh0
dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9
ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2NhaXJvZ3JhcGhpY3Mub3Jn
Ii8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZyZWVkZXNrdG9wLm9yZyIK
KyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5
IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRlc2t0b3Aub3JnIgorICAgICAgaHJl
Zj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9
ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9ImdpdDovL2dpdGh1Yi5jb20iLz4K
KyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ3N0cmVhbWVyIgorICAgICAgaHJl
Zj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3JjLyIvPgorICA8cmVwb3NpdG9y
eSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3JnIgorICAgICAgaHJlZj0iaHR0cDov
L3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0ic2F2
YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5zYXZhbm5haC5nbnUu
b3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGliZmZpL2xpYmZmaS0zLjAuMTAudGFy
Lmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAgcmVwbz0ic291cmNld2FyZS5vcmct
bWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmMDFlYjkwMjdlOWViNTZhZWFlZWY2
MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVmM2I0OTJmIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZHRyYWNlIj4K
KyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJmZmkiLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9NRS9zb3VyY2VzL2ds
aWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249IjIuNDQuMSIKKyAgICAgICAgICAg
IHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ODgxMWRlYWNh
ZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUzZDczMGQyMTEyNzM1ZDVlY2EwNyI+
CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZpeC5wYXRjaCIgc3RyaXA9IjEiLz4K
KyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwt
d2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5nIj4KKyAgICA8ZGVwZW5kZW5jaWVz
PgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAg
PGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGliLW5ldHdvcmtpbmcvMi40Mi9n
bGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lvbj0iMi40Mi4wIgorICAgICAgICAg
ICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjozMDRkZDll
NGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZjMzE4NjUzNmQxMTQ1ODY3N2Q4MjBk
Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYnNvdXAiCisgICAgICAg
ICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRpc2FibGUtaW50cm9zcGVjdGlv
biI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYi1uZXR3b3Jr
aW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05P
TUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4LjAudGFyLnh6IiB2ZXJzaW9uPSIy
LjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5MGQwNjkxZTlkOTczNDY4ZGU0NDg3
OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0i
Zm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIKKyAgICAgICAgICAgICBza2lw
LWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJt
cm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBjaGVja291dGRpcj0id2Via2l0Z3Rr
LXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29s
cyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIKKyAgICAgICAgICAg
ICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9k
dWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMuZ2l0IiBjaGVja291dGRpcj0id2Vi
a2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiPgorICAgIDxicmFu
Y2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEudGFyLmJ6MiIgdmVyc2lvbj0iMi40
LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgICAgICAgIGhh
c2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUzNGQ3Y2EzNzFjOTgzMTBmZWM4NzY3
N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1c3VtPSJiOTM0MzU0ODg5NDI0ODZj
OGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZnJlZXR5cGU2LTIuNC4xMS10
cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25maWciIGF1dG9nZW4t
c2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
ZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNv
ZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuMTEuMS50YXIuZ3oiIHZlcnNp
b249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAg
ICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRjMGRmYmFlOWQzNjEyMmIzODA5NGY0
ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAgICAgbWQ1c3VtPSJlNzVlMzAzYjRm
Nzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAg
ICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13aXRoLWdsaWI9bm8gLS13aXRoLWZy
ZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZnJl
ZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9InNvZnR3
YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMudGFyLmJ6MiIKKyAgICAgICAgICAg
IHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tvdXRkaXI9ImhhcmZidXp6LTEuMy4z
IgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2JjYzE4ZjdmMTIxMTE1ZmQ3Yjg4ZGM4
YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09Ijk3YWUxNWE3MmE5M2YxZjI3MzI0
YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90
b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAg
ICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3RrPW5vIj4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oiIHZlcnNpb249IjAuMzIuNiIKKyAg
ICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hh
MjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3OTNjYzdlM2U5MTBlNzQ4YThiYjBm
MGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iY2Fpcm8i
IGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5hYmxlLWdsZXN2MiI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgICAgPGRlcCBwYWNr
YWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9InBpeG1hbiIvPgorICAgIDwv
ZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxlYXNlcy9jYWlyby0xLjE0Ljgu
dGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNz
Lm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5OTk4NmY5M2M5ZGY3ODY1M2MzZTZh
M2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0iY2Fpcm8tZWdsLWRldmljZS1jcmVh
dGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jjb21tb24iPgorICAgIDxicmFuY2gg
bW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAudGFyLnh6IiB2ZXJzaW9uPSIwLjUu
MCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmciCisgICAgICAgICAgICBoYXNoPSJz
aGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZiZTViZmEiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJs
ZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvd2F5bGFuZC0x
LjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAgICAgICAgcmVwbz0id2F5bGFuZC5m
cmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OWM4NzcwNzIwYWEwMDM0
NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMxMmUxMzViNzMwMWVmYSIvPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
b3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQuMTciCisgICAgICAgICAgICByZXBv
PSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGZjN2NjYTQ4YzU5ZmZmMjNh
ZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1NzhkMWQ1ZDdlOCIKKyAgICAgICAg
ICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4NWUyYTEyYTEiLz4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVyIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJy
YW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNp
b249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5M2RjNzc3Y2I3MTZkYzk4Yzhj
Y2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVzdW09IjcxMWFkYTc5YjYzZTQ3YWM5
NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFtZXItdHlwZWZpbmQt
T25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2giIHN0cmlwPSIx
Ii8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9Imdz
dC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAg
ICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1k
b2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdHJlYW1lciIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1i
YXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgor
ICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjE1
YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3NjExZWQyYzJkOTE5MTdjYjkwMGYy
ZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZlYjc0NzlkNWY1Nzc2ZTkxN2JhMzBl
MjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWdv
b2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlzYWJsZS1leGFtcGxl
cyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5j
aWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWdvb2QvZ3N0LXBsdWdpbnMt
Z29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBv
PSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjEwM2UxNzkyMWQ2Nzg5NGU4
MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2ZmZWFkMDk3MiIKKyAgICAgICAg
ICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRlMDNkNDciPgorICAgICAgPHBh
dGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNo
IiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0
LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaCIgc3Ry
aXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBp
ZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSIt
LWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1kaXNhYmxlLWludHJvc3BlY3Rp
b24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5z
LWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBs
dWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44
LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQyN2ZkYWZkYmRhN2I5MGI0ZTE1ZDAz
Yjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUwOGRhMmE4YTVjM2QxMjI2NGZlMzQx
NWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMt
cG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZp
bGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tp
bmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+Cisg
IDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1saWJhdiIgYXV0b2dlbi1zaD0i
Y29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4dHJhLWNvbmZpZ3VyZT0nLS1k
aXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+
CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2ZXJzaW9ufS50YXIu
eHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYzNDZhMjI0N2NkN2ZiYWZiMGU4
YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAgICAgICBtZDVzdW09Ijg1ZjFhMDQ3
NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxjbWFrZSBp
ZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZv
cm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAgICAgICAgIHRhZz0iNWUyYTI5ZDJj
Y2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4KKyAgPC9jbWFrZT4KKworICA8Y21h
a2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdl
PSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiIC8+CisgICAgICA8ZGVwIHBhY2th
Z2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1vbiIgLz4KKyAgICA8
L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iV2Vi
UGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0IgorICAgICAgICAgICAgdGFn
PSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2FiYTIxMTQxIiAvPgorICA8L2NtYWtl
PgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhidWlsZHJjIGIvVG9vbHMv
d3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTJm
YTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvamhidWlsZHJjCkBAIC0wLDAg
KzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBG
cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vu
c2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGli
cmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAor
IyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitzeXMucGF0aC5pbnNlcnQoMCwg
b3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLi9qaGJ1aWxkIikgKQor
aW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19jb21tb24uaW5pdChnbG9iYWxzKCks
ICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGlyIGJ1aWxkcy4KK2J1aWxkcm9vdCA9
IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tvdXRyb290KSwgIkJ1aWxkIikKZGlm
ZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1l
Z2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3Jl
YXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hl
cy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gKQEAgLTAsMCAr
MSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2ZDc1ZWVmNDk5Y2ZmZmEzMjU2NSBN
b24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBEb2JlcnNlayA8emRvYmVyc2VrQGln
YWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAxOjIzOjE1IC0wODAwCitTdWJqZWN0
OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWdsX3N1cmZhY2UoKS4K
KworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2NiArKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3JjL2NhaXJvLWdsLmggICAgICAgICAg
fCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25z
KC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYyBiL3NyYy9jYWlyby1l
Z2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5IDEwMDY0NAorLS0tIGEvc3JjL2Nh
aXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitAQCAtNDgs
NyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWdsX2NvbnRleHQgeworICAgICBFR0xE
aXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29udGV4dDsKKyAKKy0gICAgRUdMU3Vy
ZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNlIHN1cmZhY2U7CisrICAgIGNhaXJv
X2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBFR0xDb250ZXh0IHByZXZpb3VzX2Nv
bnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3VyZmFjZTsKK0BAIC03NCw3ICs3NSw3
IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4KQor
IHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCA9PSBOVUxMIHx8CisgICAgICAg
ICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQp
KSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOworKwlyZXR1cm4gIGN0eC0+c3VyZmFj
ZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19lZ2xfc3VyZmFjZV90ICopIGN0eC0+
YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEsOCArMTUyLDggQEAgX2VnbF9kZXN0
cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVnbE1ha2VDdXJyZW50IChjdHgtPmRp
c3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fQ09O
VEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCist
ICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBjdHgtPmR1bW15X3N1cmZh
Y2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNlICYmIGN0eC0+c3VyZmFjZSAhPSBF
R0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lTdXJmYWNlIChjdHgtPmRpc3BsYXks
IGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWlyb19ib29sX3QKK0BAIC0yMTgsMTMg
KzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENv
bnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwgZWdsLCBFR0xfQ09ORklHX0lELCAm
Y29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25maWcgKGRweSwgY29uZmlnX2F0dHJp
YnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0JY3R4LT5kdW1teV9zdXJmYWNlID0g
ZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBhdHRyaWJzKTsKKy0JaWYgKGN0
eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+aXNfZHVtbXlfc3VyZmFjZSA9IFRS
VUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZp
ZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0gTlVMTCkgeworIAkgICAgZnJlZSAo
Y3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENB
SVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlmICghZWdsTWFrZUN1cnJlbnQgKGRw
eSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1cmZhY2UsIGVnbCkpIHsKKysJaWYg
KCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2UsIGN0eC0+c3VyZmFjZSwgZWdsKSkg
eworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVh
dGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CitAQCAtMjM4LDggKzI0
MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5i
YXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CistCWlmIChjdHgtPmR1bW15X3N1
cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xEZXN0cm95U3VyZmFjZSAoZHB5LCBj
dHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNF
KQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5zdXJmYWNlKTsKKysJZnJlZSAo
Y3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVz
KTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAoZHB5LCBFR0xfTk9fU1VSRkFDRSwg
RUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysKKysgICAgcmV0dXJuICZjdHgtPmJh
c2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9kZXZpY2VfY3Jl
YXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsLCBFR0xT
dXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xfY29udGV4dF90ICpjdHg7CisrICAg
IGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4ID0gY2FsbG9jICgxLCBzaXplb2Yg
KGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVubGlrZWx5IChjdHggPT0gTlVMTCkp
CisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRV
U19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkgPSBkcHk7CisrICAgIGN0eC0+Y29u
dGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3VyZmFjZTsKKysKKysgICAgY3R4LT5i
YXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0eC0+YmFzZS5yZWxlYXNlID0gX2Vn
bF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJyZW50ID0gX2VnbF9tYWtlX2N1cnJl
bnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBfZWdsX3N3YXBfYnVmZmVyczsKKysg
ICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7CisrCisrICAgIC8qIFdlIGFyZSBh
Ym91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIEVHTCwgc28gd2Ugc2hvdWxkCisr
ICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFjZSBub3cgaW5zdGVhZCBvZiBsYXRl
ci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRlIChjdHgpOworKworKwlpZiAoIWVn
bE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2UsIGVnbCkpIHsKKysJICAgIGZyZWUg
KGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChD
QUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xf
ZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwgZWdsR2V0UHJvY0FkZHJlc3MpOwor
KyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9j
YWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAg
ICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKysgICAgaWYg
KHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7CisgCXJldHVybiBfY2Fpcm9fZ2xf
Y29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisgICAgIH0KK2RpZmYgLS1naXQgYS9z
cmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRleCA5ZmQ3NjA4Li5hOTRmNTgxIDEw
MDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3NyYy9jYWlyby1nbC5oCitAQCAtMTMy
LDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYyAoY2Fpcm9fZGV2aWNl
X3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2RldmljZV90ICoKKyBjYWlyb19lZ2xf
ZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKTsKKyAKKytjYWly
b19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9l
Z2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1
cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNlX3QgKgorIGNhaXJvX2dsX3N1
cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90CSpkZXZpY2UsCisgCQkJCSBFR0xT
dXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMt
MTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gg
Yi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3
ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFs
LWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20gNzA2OWQ3MTdlOTgy
YWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitEYXRlOiBTdW4sIDIyIEFwciAyMDEy
IDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMrKzExIHJlcXVpcmVzIGEgc3BhY2Ug
YmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1JlcG9ydGVkIGJ5IEJ1Z2FuaW5pCist
LS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQs
IDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2ZvbnRjb25m
aWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK2luZGV4IDBlMmNhNTAu
LmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2ZvbnRjb25maWcuaAorKysrIGIvZm9u
dGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEyLDkgQEAgdHlwZWRlZiBpbnQJCUZj
Qm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJkZWNvcmF0aXZlIgkvKiBCb29sIC0g
dHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFudCAqLworICNkZWZpbmUgRkNfTENE
X0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLworIAorLSNkZWZpbmUgRkNfQ0FDSEVf
U1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorLSNkZWZpbmUgRkNfRElSX0NB
Q0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorLSNkZWZpbmUgRkNf
VVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJGQ19DQUNIRV9WRVJTSU9OCisrI2Rl
ZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIgRkNfQ0FDSEVfVkVSU0lPTgorKyNk
ZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJ
T04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5jYWNoZS0iIEZDX0NB
Q0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSByYXN0ZXJpemVyICovCisgI2RlZmlu
ZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJbnQgKi8KKy0tIAorMS44LjMuMgor
CmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBl
LWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQu
MTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNo
CkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4NzBhNWFkNjBiMmM0NTg2ZTljMjgx
MzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdlcm5lciBMZW1iZXJnIDx3
bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAxMDowNzowNyArMDAwMAorU3ViamVj
dDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyogc3JjL3RydWV0eXBlL3R0b2Jqcy5j
ICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVyaW5nCitlbmdpbmUgdXNlcyByb3Vu
ZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2NlbmRlciB0byBjb21wdXRlCit0aGUg
VHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1naXQgYS9zcmMvdHJ1ZXR5cGUvdHRv
YmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4IGM2MWIyMTguLjU5MGI2NmMgMTAw
NjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysrKyBiL3NyYy90cnVldHlwZS90dG9i
anMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgICBPYmpl
Y3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCistLyogIENvcHlyaWdodCAxOTk2LTIw
MTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
KysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBUdXJuZXIsIFJvYmVydCBXaWxoZWxt
LCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAgICAgICAgICovCisgLyogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEZyZWVUeXBlIHByb2pl
Y3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLworQEAgLTExNzcsMTEgKzExNzcsMTIg
QEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmFzY2VuZGVy
LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5kZXNjZW5kZXIgPQorICAg
ICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuZGVzY2VuZGVyLCBtZXRy
aWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5oZWlnaHQgPQorLSAgICAgICAgRlRf
UElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVpZ2h0LCBtZXRyaWNzLT55X3NjYWxl
ICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9CisgICAgICAgICBGVF9QSVhfUk9V
TkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5jZV93aWR0aCwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3NjYWxlICkgKTsKKysKKysgICAgICAv
KiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVkIHZhbHVlcyAqLworKyAgICAgIG1l
dHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0gbWV0cmljcy0+ZGVzY2VuZGVyOwor
ICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5zZm9ybWF0aW9uICovCistLQorY2dp
dCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mt
c3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9n
ZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjYjk1MWExOWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxp
dGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDNhN2VmZDU5OGQzOTM2
NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t
OiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwgOCBGZWIgMjAxNiAwMDowNjowNiAr
MDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1cHByZXNzIHN0cmluZyBmb3JtYXQg
bGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9mIEdDQyBlbWl0IGFuIGVycm9yIGhl
cmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnLzc2
MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl
cnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRlLmMgYi9nbGliL2dkYXRlLmMKK2lu
ZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9nbGliL2dkYXRlLmMKKysrKyBiL2ds
aWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBnX2RhdGVfc3RyZnRpbWUgKGdjaGFy
ICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0aGVyIHN0cmZ0aW1lIGFjdHVhbGx5
IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAgICAqLworICAgICAgIHRtcGJ1Zlsw
XSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNoCisrICAgICAgI3By
YWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRlcmFsIgorICAgICAg
IHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNpemUsIGxvY2FsZV9mb3JtYXQsICZ0
bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAKKyAgICAgICBpZiAodG1w
bGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAgICAgICB7CistLSAKKzIuNy4wCisK
ZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2ggYi9U
b29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gKQEAgLTAsMCArMSwzNCBAQAor
RnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEyNWExOWMxOTVkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRhbnphcm9AZ25vbWUu
b3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1MjozMyAtMDUwMAorU3ViamVjdDogW1BB
VENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0b3JhZ2UgY2xhc3Mgd2FybmluZ3MK
KworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dlcnMgd2FybmluZ3Mgb24gbm90ZXdv
cnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3MgZGVwcmVjYXRlZCBpbiBDKysgYW5k
IGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRoZSBsYW5ndWFnZS4gVGhlcmUgaXMg
bm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAxOTgwCithbnltb3JlLgorCitodHRw
czovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwOTE4CistLS0KKyBnb2Jq
ZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgMyBpbnNl
cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ29iamVjdC9nbGliLWdl
bm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMKK2luZGV4IGJlNDE1MWEuLmNh
NzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCisrKysgYi9nb2Jq
ZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQxMiw5IEBAIGdlbmVyYXRlX21hcnNo
YWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdfZnByaW50ZiAoZm91dCwgIiVzJXMg
ZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9pbnRlciIpKTsKKyAKKyAgICAgICAv
KiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAg
cmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CistICAgICAg
Z19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSop
IGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJlZ2lzdGVyIGdwb2lu
dGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnByaW50ZiAoZm91dCwgIiAgR01hcnNo
YWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CisrICAgICAgZ19mcHJpbnRmIChmb3V0
LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKysgICAgICBn
X2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworICAgICAgIGlm
IChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChmb3V0LCAiICAlcyB2X3JldHVybjtc
biIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQuMgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0w
MDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkMTA2NGVkNWU5Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1w
b3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCArMSwyMzYgQEAKK0Zyb20gZTkzODkz
MzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+CitEYXRlOiBXZWQsIDI2IE9j
dCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHM6IHBvcnQgdG8gT3Bl
blNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2UgdGhlIHdyYXBwZXIgZnVuY3Rpb25z
IHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNlcnZlCisgIGJhY2t3YXJkIGNv
bXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9ucworCistIFJlbW92ZSB0aGUg
dXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50X21lc3NhZ2VzKSIsIHNpbmNl
CisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNlIFJTQV9nZW5lcmF0ZV9rZXlfZXgg
aW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVfa2V5CisKK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAKKy0tLQorIGV4dC9kdGxzL2dz
dGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBleHQvZHRscy9nc3RkdGxzY29ubmVj
dGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0K
KyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2Rp
ZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0
bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5NjAyIDEwMDY0NAorLS0tIGEvZXh0
L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVyYXRlZCAoR3N0RHRsc0NlcnRp
ZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9rZXkgPSBOVUxMOworICAgICByZXR1
cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9rZXkgaXMgYWN0dWFsbHkgZGVw
cmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEw
MDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgsIFJTQV9GNCwgTlVMTCwgTlVM
TCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7CisrICBpZiAocnNhICE9IE5VTEwpIHsK
KysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBpZiAoZSAhPSBOVUxMICYmIEJOX3Nl
dF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0FfZ2VuZXJhdGVfa2V5X2V4IChyc2Es
IDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUgKHJzYSk7CisrICAgICAgcnNhID0g
TlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysgIH0KKysjZW5kaWYKKyAKKyAgIGlm
ICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwgImZhaWxlZCB0byBnZW5l
cmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jIGIv
ZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXggMzZmNmQ2My4uNzI4ZjVhNyAxMDA2
NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKKysrKyBiL2V4dC9kdGxzL2dz
dGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBACisgI2luY2x1ZGUgPG9wZW5zc2wv
ZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CisgCisrI2luY2x1ZGUgPHN0cmluZy5o
PgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVi
dWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxzX2Nvbm5lY3Rpb25fZGVidWcK
KyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5lY3Rpb24sIGdzdF9kdGxzX2Nv
bm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYgKzIxOCwzOCBAQCBnc3RfZHRsc19j
b25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkKKyAgIEdfT0JKRUNUX0NMQVNT
IChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZpbmFsaXplIChnb2JqZWN0KTsK
KyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAwMDAxTAorK3N0YXRp
YyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQgKnB0cikKKyt7CisrICBiaW8t
PnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgorK0JJT19nZXRfZGF0YSAoQklPICog
YmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQKKytCSU9f
c2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikKKyt7CisrICBiaW8tPnNodXRk
b3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3NldF9pbml0IChCSU8g
KiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9IGluaXQ7CisrfQorKworK3N0YXRp
YyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1MDlfU1RPUkVfQ1RYICogY3R4
KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNlbmRpZgorKworIHN0YXRpYyB2b2lk
CisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1
aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogcHNw
ZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5
IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgIHByaXYtPmJpbyA9IEJJ
T19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOworICAgICAgIGdfcmV0dXJuX2lm
X2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+YmlvLT5wdHIgPSBzZWxmOworKyAg
ICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKKyAgICAgICBTU0xfc2V0X2JpbyAo
cHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7CisgCisgICAgICAgU1NMX3NldF92ZXJp
ZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29u
bmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAgc3RhdGVzIHw9ICghICFTU0xf
d2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBzdGF0ZXMgfD0gKCEgIVNTTF93YW50
X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVS
IDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6IHJvbGU9JXMgYnVm
PSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0ciwKKyAgICAgICBwcml2LT5pc19j
bGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4MSw2ICs2MTYsMTUgQEAgbG9nX3N0
YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAgICAg
IHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHByaXYtPmJpb19idWZmZXJfbGVuLAor
ICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwgU1NMX3N0YXRlX3N0cmlu
Z19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NUX0xPR19PQkpFQ1QgKHNlbGYsICIl
czogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCisrICAgICAgc3RyLAorKyAgICAg
IHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIsCisrICAgICAgcHJpdi0+Ymlv
X2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwKKysgICAgICBwcml2LT5i
aW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCks
IFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7CisrI2VuZGlmCisgfQorIAorIHN0
YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChp
bnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQorICAgc2VsZiA9IFNT
TF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4KTsKKyAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxmKSwgRkFMU0UpOworIAorLSAg
cGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+Y2VydCk7CisrICBwZW0gPSBf
Z3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2VydCAoeDUwOV9jdHgp
KTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwKK0BA
IC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGludCBwcmV2ZXJpZnlf
b2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICAgZ2ludCBsZW47CisgCisgICAg
ICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8sIFg1MDlfZ2V0X3N1
YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAgICAgICAgICBYNTA5X05BTUVfcHJp
bnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3ViamVjdF9uYW1lIChYNTA5X1NUT1JF
X0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAgICAgICAgIFhOX0ZMQUdfTVVMVElM
SU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxlbik7CisgICAgICAgYnVmZmVy
W2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFj
ayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgICAgIyMj
IyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVS
IDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBjdXN0b21fYmlvX21ldGhvZHMgPSB7
CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BAIC03OTUsMTEgKzg0MSwzNCBAQCBC
SU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsKKyAgIHJldHVybiAmY3VzdG9tX2Jp
b19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9fTUVUSE9EICpjdXN0b21fYmlvX21l
dGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJT19zX2dzdF9kdGxzX2Nvbm5lY3Rp
b24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyAhPSBOVUxMKQorKyAgICBy
ZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3VzdG9tX2Jpb19tZXRob2RzID0gQklP
X21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKKysgIGlmIChjdXN0b21fYmlvX21l
dGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfd3JpdGUgKGN1c3RvbV9iaW9f
bWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3JlYWQg
KGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQorKyAgICAgIHx8ICFCSU9fbWV0
aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX2N0cmwpCisrICAgICAg
fHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9u
ZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChjdXN0b21fYmlvX21ldGhvZHMs
IGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhfZnJlZSAoY3VzdG9tX2Jpb19tZXRo
b2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICByZXR1cm4gY3VzdG9tX2Jpb19t
ZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50CisgYmlvX21ldGhvZF93cml0ZSAo
QklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKKyB7CistICBHc3REdGxzQ29u
bmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdzdER0
bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRhIChi
aW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklPOiB3cml0aW5nICVkIiwgc2l6
ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rfd3JpdGUgKEJJTyAqIGJpbywg
Y29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGljIGludAorIGJpb19tZXRob2RfcmVh
ZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyB7CistICBHc3REdGxz
Q29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRyKTsKKysgIEdz
dER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklPX2dldF9kYXRh
IChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAqcHJpdiA9IHNlbGYtPnByaXY7
CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBjb3B5X3NpemU7CitAQCAtODY4LDcg
KzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBp
bnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2RfY3RybCAoQklPICogYmlvLCBpbnQg
Y21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAgR3N0RHRsc0Nvbm5lY3Rpb24gKnNl
bGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxzQ29ubmVjdGlv
biAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlvKSk7CisgICBH
c3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2OworIAorICAgc3dpdGNo
IChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhvZF9uZXcgKEJJTyAqIGJpbykK
KyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3Iik7CisgCistICBiaW8tPnNo
dXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBCSU9fc2V0X3NodXRkb3duIChiaW8s
IDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAorICAgcmV0dXJuIDE7CisgfQorQEAg
LTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAqIGJpbykKKyAgICAgcmV0dXJu
IDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlv
LT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JKRUNUIChHU1RfRFRMU19DT05ORUNU
SU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsKKyAgIHJldHVybiAwOworIH0K
Ky0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVy
YXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxz
Y2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjY4NzczNzBjNgotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNj
ZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2gKQEAg
LTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGViZGFjYWM4NmY0YjAzMDIyYzE1MWVh
MjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9xP1NlYmFzdGlhbj0y
MERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KK0RhdGU6IE1vbiwgMTQg
Tm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZHRsc2NlcnRpZmljYXRl
OiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRlX2tleV9leCgpCisgdXNhZ2UKKwor
V2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5TU0wgMS4xLgorCitodHRwczovL2J1
Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzI4CistLS0KKyBleHQvZHRscy9n
c3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCA0IGluc2Vy
dGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxz
Y2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCBjMWM5
NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMK
KysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMjA3LDEyICsyMDcsMTMg
QEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYpCisgICByc2EgPSBS
U0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7CisgICAgIEJJR05VTSAqZSA9IEJOX25l
dyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorLSAg
ICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBOVUxMKSkgeworKyAg
ICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgfHwg
IVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKKyAgICAgICBSU0Ff
ZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAgICB9CistICAgIEJOX2ZyZWUgKGUp
OworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsKKyAgIH0KKyAjZW5kaWYKKyAKKy0t
IAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgt
ZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3MmIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4cG9z
ZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAK
K0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVkNGU1ZGI0OCBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFyIDxjYWx2YXJpc0Bp
Z2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3OjE2ICswMjAwCitTdWJqZWN0
OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVhbXMgd2l0aCBmaXJzdCBtb29m
IGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJldmVydHMgY29tbWl0IGQ4YmI2Njg3
ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCistLS0KKyBnc3QvaXNvbXA0L3F0ZGVt
dXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KKyAyIGZpbGVzIGNoYW5nZWQsIDE2
IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21w
NC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5kZXggMzliZTE2My4uOTYzNmI0
YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0
ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11eF9pbml0IChHc3RRVERlbXV4
ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1VWF9TVEFURV9JTklUSUFMOwor
ICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBxdGRlbXV4LT5wb3N0ZWRfcmVkaXJl
Y3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisgICBx
dGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11eC0+dG9kcm9wID0gMDsKKyAgIHF0
ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7CitAQCAtMjA0OSw3ICsyMDQ4LDYg
QEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBnYm9vbGVhbiBoYXJk
KQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVkaWFfY2FwcywgTlVMTCk7Cisg
ICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0ZGVtdXgtPmdvdF9tb292ID0gRkFM
U0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisgICB9IGVsc2Ug
aWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9mbG93X2NvbWJpbmVyX3Jlc2V0IChx
dGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4gPSAwOyBuIDwgcXRkZW11eC0+bl9z
dHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
ICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfbW9vdikgeworICAgICAg
ICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdvdF9zYW1wbGVzID0gRkFMU0U7Cisg
CisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0dXAgd2UgY291bGQgdHJ5IHRv
IHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVuZCB1cCBhdCB0aGUgdGhlIG1vb3Yg
KGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyArNjEzMywxOSBAQCBnc3RfcXRkZW11
eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisg
ICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBkZW11eC0+bW9vdl9ub2RlKTsK
KyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4KTsKKyAgICAgICAgICAgICBx
dGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGlmICghZGVtdXgt
PmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAoZGVtdXgp
OworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBk
ZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgIFF0RGVtdXhTdHJlYW0gKnN0
cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAgZ290X3NhbXBsZXMgfD0g
c3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAgICAgfQorLSAgICAgICAgICAgIGlm
ICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsKKy0gICAgICAgICAgICAgIGlm
ICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0
cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICAg
IGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAg
ICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAg
ICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11eCwgc3RyZWFtKTsK
Ky0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgZm9yIChuID0gMDsgbiA8IGRlbXV4
LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJl
YW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhf
Y29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CisgICAgICAgICAgICAgICB9CistICAg
ICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgp
OworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CistICAg
ICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3Vy
ZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgIGRlbXV4LT5nb3RfbW9v
diA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3Nl
Z21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBmcmFnbWVudGVkIHN0cmVhbXMgaGVh
ZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCisgICAgICAgICAgICAgaWYgKCFk
ZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2NCw2IEBAIGdzdF9xdGRlbXV4X3By
b2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAg
ICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAgICAgIEdzdENsb2NrVGltZSBwcmV2
X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0OworLSAgICAgICAgICAgIGdp
bnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwgIlBhcnNpbmcg
W21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBAQCBnc3RfcXRkZW11eF9wcm9jZXNz
X2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAg
ICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAgICAgIGdvdG8gZG9uZTsKKyAg
ICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRo
ZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3YgCistICAg
ICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVlZCB0byBiZSBleHBvc2VkIGlm
IGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCistICAgICAgICAgICAgaWYgKGRl
bXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1cmUpIHsKKy0gICAgICAgICAg
ICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAgICAgICAgICAgaWYgKCFkZW11eC0+
cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdt
ZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZzZWdtZW50LCBHU1Rf
Rk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4
LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAgICAgICAgICAgICAgIGRlbXV4LT5w
ZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKy0g
ICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJlYW1z
IChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBmb3Ig
KG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICAgICAg
UXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAgICAg
ICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CistICAg
ICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVlZCB0byBleHBvc2Ug
dGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0IGEgbW9vdiAqLwor
KyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRlbXV4LT5leHBvc2VkKSB7Cisr
ICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQpIHsKKysgICAgICAg
ICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAgICAgICAgICAgICBnc3Rfc2VnbWVu
dF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKysgICAgICAgICAgICAgICAgR1NU
X0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50Iik7CisrICAgICAg
ICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21l
bnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgIGdzdF9xdGRl
bXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7CistICAgICAgICAgICAgICBk
ZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysgICAgICAgICAgICAgIHF0ZGVtdXhf
ZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAgICB9CisgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJEaXNjYXJkaW5nIFtt
b29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0
L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC04OSw3ICs4OSw2IEBA
IHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBwb3N0ZWRfcmVkaXJlY3Q7CisgCisg
ICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jvb2xlYW4gcGVuZGluZ19jb25maWd1
cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50IHRvZHJvcDsKKyAgIEdzdEFkYXB0
ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0
Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCBiL1Rv
b2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1l
LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4xZTlkZDk3Zjc5
MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2Qt
dXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0wLDAgKzEsMTQ2IEBACitGcm9tIDQ2
ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3NzIgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1DMz1CMWE9MjBHb256PUMzPUEx
bGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwgMTAgTm92IDIwMTUgMTM6MDk6
MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0ZmR0IGRlY29kZSB0aW1lIHdoZW4g
aXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4gdGhlIHRpbWUgaW4gdGhlIGxhc3Qg
c2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJsZWQKKworaHR0cHM6Ly9idWd6aWxs
YS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAorLS0tCisgZ3N0L2lzb21wNC9xdGRl
bXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSArCisgMiBmaWxlcyBjaGFuZ2VkLCA3
MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguYyBiL2dz
dC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5kOGI1NGYwIDEwMDY0NAorLS0tIGEv
Z3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitAQCAtNTM1
LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9hcHBlbmRfcHJvdGVjdGlvbl9z
eXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBjb25zdCBnY2hhciAqIGlkKTsK
KyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVfZnJlZSAoR3N0U3RydWN0dXJlICog
Z3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkg
KEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZh
bHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfZ2V0X3By
b3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBHVmFsdWUgKiB2
YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRpYyB2b2lkCisgZ3N0X3F0ZGVtdXhf
Y2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisgeworQEAgLTU0Niw4ICs1NTEs
MjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisg
CisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQgKGtsYXNzKTsKKyAK
KysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdzdF9xdGRlbXV4X3NldF9wcm9wZXJ0
eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IGdzdF9xdGRlbXV4X2dldF9wcm9w
ZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBnc3RfcXRkZW11eF9kaXNwb3Nl
OworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5cy1ob25vci10ZmR0OgorKyAgICoK
KysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3BlY3Qgd2hhdCB0aGUgVEZEVCBhdG9t
IHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0YW1wcy4gRGVmYXVs
dHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkg
KGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQsCisrICAgICAgZ19wYXJhbV9z
cGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJBbHdheXMgaG9ub3IgVEZEVCIsCisr
ICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3aWxsIGFsd2F5cyBiZSByZXNwZWN0
ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0YW1wcyIsCisrICAgICAg
ICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElDX1NUUklOR1MpKTsK
KysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0ZSA9IEdTVF9ERUJVR19GVU5DUFRS
IChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAwCisgICBnc3RlbGVtZW50X2NsYXNz
LT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhfc2V0X2luZGV4KTsK
K0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAqIHF0ZGVt
dXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVzID0gTlVMTDsKKyAgIHF0ZGVtdXgt
PmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRlbXV4LT5wcm90ZWN0aW9uX3N5c3Rl
bV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBGQUxTRTsKKyAg
IGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVldWUpOworICAgZ3N0
X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisgICBx
dGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5lcl9uZXcgKCk7CitAQCAtNjM5
LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChHT2JqZWN0ICogb2JqZWN0KQorIH0K
KyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9i
amVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVlICogdmFsdWUsIEdQYXJhbVNw
ZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9i
amVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19I
T05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7CisrICAgICAgcXRk
ZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dldF9ib29sZWFuICh2YWx1ZSk7Cisr
ICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOworKyAgICAgIGJyZWFrOworKyAgICBk
ZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRCAob2JqZWN0
LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICB9CisrfQorKworK3N0YXRpYyB2
b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBw
cm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFtU3BlYyAqIHBzcGVjKQorK3sKKysg
IEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2JqZWN0KTsKKysKKysgIHN3aXRj
aCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQ6CisrICAgICAg
R1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuICh2
YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOworKyAgICAgIEdTVF9PQkpFQ1RfVU5M
T0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoKKysgICAgICBHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9pZCwgcHNwZWMpOwor
KyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X3Bv
c3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERlbXV4ICogcXRkZW11eCkKKyB7Cisg
ICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitAQCAtMjk5NSw2ICszMDUwLDE2IEBA
IHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdzdEJ5dGVSZWFkZXIg
KiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAx
XS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5uX3NhbXBs
ZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3ZSdyZSBhbHdheXMgaG9ub3Jpbmcg
VEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlmZmVyZW5jZQorKyAgICAgICAqIGJl
dHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFtcCwgcHJlZmVyIGRlY29kZV90cyAq
LworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9PSBUUlVFCisrICAgICAg
ICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+CisrICAgICAgICAgIHN0cmVhbS0+
c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uKSB7CisrICAgICAgICBHU1Rf
SU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAgImRlY29kZV90cyBpcyBzaWduaWZp
Y2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNpbmcgZGVjb2RlX3RzIik7CisrICAg
ICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAgfQorKworICAgICAgIGdzdF90cyA9
IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRpbWVzdGFtcCk7CisgICAgICAgR1NU
X0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxlIHRzICUiIEdTVF9USU1FX0ZPUk1B
VAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNhbXBsZXMpIiwgR1NUX1RJTUVfQVJH
UyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmggYi9nc3QvaXNv
bXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2MyAxMDA2NDQKKy0tLSBhL2dzdC9p
c29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAorQEAgLTE1NCwxMiAr
MTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBndWludDggKmNlbmNfYXV4X2luZm9f
c2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKKyAKKysgIGdib29sZWFu
IGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0IF9Hc3RRVERlbXV4Q2xhc3Mgewor
ICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9OworIAorKy8qIHByb3BzICovCisr
ZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQKKyt9OworKwor
IEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsKKyAKKyBHX0VORF9ERUNMUworLS0g
CisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZp
bmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2ggYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1k
b3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Z3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10
aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0M2VlNTk4OWQ3YjUxZGNiMzE0NWJk
OTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/
cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitE
YXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAwCitTdWJqZWN0OiBbUEFUQ0hdIHR5
cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJlYW0gaWYgdGhlIHNpbmtwYWQg
aXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBzaWduYWwgaGFuZGxlcnMgb2YgdGhl
IHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0ZWQKK3R5cGVmaW5kIGluIFBV
TEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBhdCB0aGF0IHBvaW50IHdvdWxk
IGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5leHBlY3RlZCBieSBlbGVtZW50
cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3No
b3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRl
bGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRpb25zKCspCisKK2Rp
ZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jIGIvcGx1Z2lu
cy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5kZXggYzY4NjQxMi4uNDUzZmY3NSAx
MDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKKysrKyBi
L3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK0BAIC0xNzksNiArMTc5LDEw
IEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUgKEdzdFR5cGVGaW5kRWxlbWVudCAq
IHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBlZmluZCwgImZvdW5kIGNhcHMgJSIg
R1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAorICAgICAgIGNhcHMsIHByb2JhYmls
aXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0cmVhbSBpcyBwdWxsaW5nIGZyb20g
dXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5kLT5zcmMpID09IEdTVF9QQURfTU9E
RV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JKRUNUX0xPQ0sgKHR5cGVmaW5kKTsK
KyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBTIGV2ZW50IGRvd25zdHJlYW0uCist
LSAKKzIuOC4xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307726</attachid>
            <date>2017-04-21 07:03:19 -0700</date>
            <delta_ts>2017-04-21 07:48:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>503332</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2MjkzY2NmMDlkLi5hYWFhZTRmZGRlZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRX
UEVCYWNrZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2U6IEFkZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51
bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURF
UlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTUxN2Y0NmNiYjMuLmE2NTZiYTczNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOiBBZGRlZC4KKyAgICAgICAgKiBzaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisK
IDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4gV2ViS2l0RlMg
YW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZjZhZjkyY2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMjMgQEAKK2xpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1dURl9ESVJ9
CispCisKK3NldChXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlMKKyAgICBBUEkv
SmF2YVNjcmlwdC5oCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisg
ICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5
cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvV2ViS2l0QXZhaWxhYmls
aXR5LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSkFWQVNDUklQVENPUkVf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL0phdmFTY3JpcHRDb3JlIgorICAgIENPTVBPTkVOVCAi
RGV2ZWxvcG1lbnQiCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMzE4M2Ey
YjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMyBAQAorbGlzdChBUFBFTkQgSlNDX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5kZXgg
NmE0YzE4MGZhYWMuLjBkMTgxMGQ0OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oOgorICAgICAgICBBbGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
cHJvdmlkZSBYMTEgbGlicmFyaWVzLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5H
X0hFQURFUlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5
ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVm
IHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1hcF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5
cGVkZWYgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIAotI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkg
fHwgZGVmaW5lZChVU0VfV1BFKQogCiB0eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlU
eXBlOwogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjZGQyNzgx
NzA0Mi4uZTRiYzM5MzU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBX
UEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA0
LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBub3RGb3Vu
ZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjUwNGQwNmM3Ni4uMzUyNWRlYjQ1NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBt
b3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQ
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxp
dHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS93cGUvRXZl
bnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhy
ZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUu
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVi
b2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVl
bldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Nj
cm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAxNy0wNC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIG9ic2N1
cmVkIGluc2V0cyB0byB3ZWIgY29udGVudCAoYXMgInNhZmUgYXJlYSBpbnNldHMiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2Y1NmYyZWE0Y2MuLjZlOWJhYjAxYTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybVdQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDQtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIEFsbG93IGN1c3RvbWl6aW5nIEgyNjQgZW5jb2RlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc3NWMxODk4NGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCisgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQu
Y3BwCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjM3OTVmNGNiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjg2IEBACitpbmNsdWRlKHBsYXRmb3Jt
L0dTdHJlYW1lci5jbWFrZSkKK2luY2x1ZGUocGxhdGZvcm0vSW1hZ2VEZWNvZGVycy5jbWFrZSkK
K2luY2x1ZGUocGxhdGZvcm0vTGludXguY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJv
ZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAg
ICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RG
X0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3Np
YmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VT
b3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAg
IHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3Jh
cGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKworICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9U
aGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9JbXBsLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJm
YnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05h
dGl2ZUltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3Bw
CisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAKKworICAgICMgRklYTUU6IFNwbGl0IGJ1aWxkIHRhcmdlcnMgYmVsb3cgaW50
byBhIFdlYkNvcmVQbGF0Zm9ybSBsaWJyYXJ5CisgICAgZWRpdGluZy93cGUvRWRpdG9yV1BFLmNw
cAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ2xp
Yi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2ds
aWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFy
ZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAor
ICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0lj
b25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JX
UEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BF
LmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKworICAgIHBsYXRm
b3JtL3hkZy9NSU1FVHlwZVJlZ2lzdHJ5WGRnLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJv
bHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRf
U0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJP
X0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJB
UklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJ
RVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30K
KyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtM
SUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJ
QlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdM
X0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJF
RVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05V
VExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElC
U09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9J
TkNMVURFX0RJUlN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
KyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBjcnlw
dG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
U0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuY3Bw
CisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAgICAg
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1Q
QktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlSU0FH
Q3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAgICAg
ICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAgY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNw
cAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE1OWQ1Y2NjNDIyLi4z
MWEyMWZhYjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRlZiBz
dHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBMQVRG
T1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExMSw2ICsxMTEzLDggQEAgcHJv
dGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVy
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1l
bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5kZXgg
ZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggM2MxNTdlZjZkODguLjA1ZTkxYmZm
MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDE2NTJiNmRiMzkzLi4zNmI5NmIyYmNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZmQyZGUxZTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKFBhc3RlYm9hcmQmIHBhc3Rl
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkKK3sKKyAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzKCk7CisgICAgaWYgKHR5
cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAodHlwZXMu
Y29udGFpbnMoInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IikgJiYgZnJhbWUuZG9jdW1lbnQoKSkg
eworICAgICAgICBTdHJpbmcgbWFya3VwID0gcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L2h0
bWw7Y2hhcnNldD11dGYtOCIpOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBt
YXJrdXAsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0aW5nQW5kUGx1Z2luQ29udGVudCkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIGlm
ICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHR5
cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAgICAgICBjaG9z
ZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJvYXJkLnJlYWRT
dHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQoreworICAgIFBhc3RlYm9hcmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAg
IHBhc3RlYm9hcmRDb250ZW50LnRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsK
KyAgICBwYXN0ZWJvYXJkQ29udGVudC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFu
Z2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25M
b2NhbFVSTHMpOworICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQor
Cit2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVi
b2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJh
bmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9z
ZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdl
LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6
UGFzdGVkKSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBs
YWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2OTU3Yzg3ODRmYy4uZWRlOTQwMTczOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6
c2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWRjZDg1ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFt
ZSgmbV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwg
RnJhbWUqLCBIaXRUZXN0UmVzdWx0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkFsdEtleTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAu
LjVlOTExZDcwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBA
QCB1c2luZyBQbGF0Zm9ybUN1cnNvciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBOU0N1cnNvciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1
c2luZyBQbGF0Zm9ybUN1cnNvciA9IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCAxOTU3MjFiMWZkYS4uZjM2M2ZhZjU1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpT
ZWxlY3Rpb25EYXRhKiBEcmFnRGF0YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQy
Li5jYmVmNzM4ZjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1Mg
TlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyAr
NjQsNyBAQCB0eXBlZGVmIFJldGFpblB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBl
ZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4p
CiB0eXBlZGVmIEhCSVRNQVAgRHJhZ0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2Vs
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IERyYWdJbWFnZVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmgKaW5kZXggZjEyNjhhNjhkMmQuLjFkMTIzNmFhN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBmaWxlc0hhdmVTYW1lVm9sdW1lKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9u
RGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3
NzhjYWMyZDk4Yi4uZGRhNjgyZWI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFk
U2hhcmVkVGltZXImIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gaW5zdGFuY2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpCiBNYWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFy
ZWRUaW1lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWlu
VGhyZWFkU2hhcmVkVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCmluZGV4IDU5MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fZmlyZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRo
cmVhZFNoYXJlZFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGI5NGQ3MGExZjZhLi45YzE0YmEyN2M5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlh
bGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBl
LCBJbmNsdQogLy8gRm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0
ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKLSNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAh
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdF
QkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsK
QEAgLTgwLDYgKzgwLDEwIEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3Ry
aW5nIHRleHQ7CiAgICAgU3RyaW5nIG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRT
dHJhdGVneS5oCmluZGV4IGU4OGE0ODkxMTgzLi45OWQ3NWY0ZWJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTY5LDEwICs2OSwxOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgU2VsZWN0aW9uRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRh
PiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwg
dm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAzN2E3OTE4M2Y2Yy4uZjNlNDMwNDNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNT
IE5TUGFzdGVib2FyZDsKIE9CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKQEAgLTUyLDcgKzU2LDcgQEAgc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogY2xhc3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDUsNiArMTA5LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
CmluZGV4IDViYWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgc2VjdXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJh
Ym91dCIpOwogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAg
ICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdl
dCgpLmFkZCgicmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKaW5kZXggNTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaApAQCAtNjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtD
b250YWluZXI7CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYK
KwogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
QXVkaW9CdXNHTGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAK
QEAgLTI3LDExICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5l
IEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dl
YmtpdHdwZS9yZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IHBhdGgoZ19zdHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMi
LCBuYW1lKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJ
T19HUkVTT1VSQ0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRh
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAg
cmV0dXJuIGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRh
dGEuZ2V0KCksIG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwg
c2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCmluZGV4IDZmYTNlYTc3MWYzLi44M2QzMmUxMzhmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMs
OSBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJ
UiwgIndwZSIsIG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dT
KQogICAgIEhNT0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIq
PihzaGFyZWRSZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
aW5kZXggOTExNGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xF
UzIvZ2wyLmg+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5E
KSB8fCBQTEFURk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KGVnbENvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCmluZGV4IDJjMGVhMjdlMTkzLi4wNDY5ZWI1MzNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDEzIEBA
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGaW5kIHNvbWUgd2F5IHRvIGRl
ZHVjZSB0aGlzLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0u
aD4KKyNlbHNlCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xO
YXRpdmVXaW5kb3dUeXBlIEdMTmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2
NF90IEdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUy
NTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTl9DQUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgR0x1aW50OwogI2VuZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVy
czsKIAotI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdM
X0VTXzIpKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTEVTOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9l
eHRlbnNpb25zOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTEVTU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaAppbmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hp
bXNfaAogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJh
bWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1
cmUyREVYVCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZl
ckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0Zy
YW1lYnVmZmVyRVhUIGdsSXNGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhU
IGdsR2VuZXJhdGVNaXBtYXAKICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQ
VEhfQVRUQUNITUVOVAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1Jf
QVRUQUNITUVOVDAKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1F
QlVGRkVSX0NPTVBMRVRFCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZF
UgogI2RlZmluZSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKaW5kZXggNjdlZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQy
LDYgKzQyLDEwIEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAt
MTAwLDYgKzEwNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1EaXNwbGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4o
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCmluZGV4IGY3NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYg
KzU0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMy
NmFjZi4uOWZlNzU1ZmM1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBl
OjpXUEUpIHsKKyAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxh
dGZvcm1EaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRp
ZgorCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUx
LDYgKzI1OCw5IEBAIEdMQ29udGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29u
dGV4dEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMz
NTk3ZDdiLi45YTAzM2ZlYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3
bF9lZ2xfd2luZG93OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0
eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03
Myw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYm
LCBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQo
KTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxh
eSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2F5bGFuZENvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29u
dGV4dCA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZh
Y2VXYXlsYW5kKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dEVHTD4gY3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNo
YXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4
LDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+
IG1fd2xTdXJmYWNlOwogICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVs
bHB0ciB9OwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5k
aWYKICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBu
dWxscHRyIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjlmM2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
TENvbnRleHRFR0wuaCIKKworI2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQ
bGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4
dCkKK3sKKyAgICBhdXRvIG9mZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxh
eVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBjcmVhdGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZl
V2luZG93KCksIHBsYXRmb3JtRGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250
ZXh0KQorICAgICAgICBjb250ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFy
Z2V0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ry
b3lXUEVUYXJnZXQoKQoreworICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDJiZjExZWExYmQ3Li4yOTE3MzQzNmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xD
b250ZXh0RUdMLmgiCisjZW5kaWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9l
Z2wuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5E
KQogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFw
aS5oIG1heSBpbmNsdWRlIGVnbHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gK
QEAgLTQzOSw2ICs0NDMsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjplbnN1cmVHc3RHTENvbnRleHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xf
RElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4oc2hhcmVkRGlzcGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlm
CisKICAgICAgICAgQVNTRVJUKG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi4xMjY1
ZTAwMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMzYsNiArMjM2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRl
eHR1cmUoKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorICAgIDo6Z2xGbHVzaCgpOworI2VuZGlmCiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9j
b21wb3NpdG9yVGV4dHVyZSk7CiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlh
dGVUZXh0dXJlKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CkBAIC0zOTgsNyArNDAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5
aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAg
dmFyaWFibGVzLnB1c2hfYmFjayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFy
eWluZ1ZlY3RvcnMgPSAwOwotI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oR1RLKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxv
YXRzKTsKICAgICBtYXhWYXJ5aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1h
Z2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sK
KyAgICBzdGQ6OmZwcmludGYoc3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZv
cm0gcmVzb3VyY2UgJyVzJ1xuIiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6
Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBk
ZWZhdWx0OworCitQbGF0Zm9ybURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQorewor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9i
YWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAg
bV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0
X25hdGl2ZV9kaXNwbGF5KG1fYmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlX
UEU6IGNvdWxkIG5vdCBjcmVhdGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxh
dGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+
KCp0aGlzLCBjbGllbnQsIGhvc3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVF
R0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZnNjcmVlblRhcmdldD4oKnRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6RUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNr
ZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKwor
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQg
c19jbGllbnQgPSB7CisgICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxFR0xUYXJnZXQqPihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQu
ZnJhbWVDb21wbGV0ZSgpOworICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsK
K30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0
aWFsaXplKG1fYmFja2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgo
MCwgc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xO
YXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5k
b3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2dldF9uYXRpdmVfd2luZG93KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwg
c2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5k
KTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJl
ZCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJl
ZChtX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdl
dDo6RUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkK
K3sKKyAgICBtX3RhcmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2NyZWF0ZSgpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2luaXRpYWxpemUobV90YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQor
eworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
bV90YXJnZXQpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMT2Zmc2NyZWVuVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRv
dyhtX3RhcmdldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBM
QVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2Y4Y2ZkOTk4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtRGlzcGxheVdQRV9oCisjZGVmaW5lIFBsYXRmb3JtRGlzcGxheVdQRV9oCisK
KyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2Rl
ZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0IHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
dGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIEludFNp
emU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisKKyAg
ICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50IHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxldGUo
KSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlz
cGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAgICAg
ICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVXaW5k
b3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNvbnN0
IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAgICB2
b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBsYXRm
b3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50OworICAg
ICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5kOwor
ICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOworICAg
ICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlw
ZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7CisgICAg
fTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChFR0xU
YXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVlblRh
cmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEU7
IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19QTEFU
Rk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCisjZW5kaWYgLy8gUGxhdGZvcm1EaXNwbGF5V1BFX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXpl
ZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0
cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzVk
N2ZjNTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9M
b2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiX1NlYXJj
aCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBUTFMgY2VydGlmaWNh
dGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApAQCAt
MCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRTdHJh
dGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9vbCBQYXN0ZWJvYXJk
OjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlzdCBvZiB0eXBlcyBm
b3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVzLmlzRW1wdHkoKTsK
K30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30KKworU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9t
UGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHR5cGUs
IHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRleHQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdXJsLnVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30K
KworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmKQorewor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNGYzOGUx
MWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5
cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAg
ICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5n
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjlmNDM0NmEwMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFz
dGVib2FyZC5oIgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2luY2x1ZGUg
PG1hcD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRm
b3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0
ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30K
KworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0
ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9w
YXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3Zl
Y3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2Fy
ZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgp
KTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3Rl
Ym9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
aW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQs
IHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUo
c3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4
dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4
KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsK
KyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7
IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihw
bGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0
LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6
ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVu
Z3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFp
cnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7
CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAg
ICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9w
YXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5k
YXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
aW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5n
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAg
bWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJv
YXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50
eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdl
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2
NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDAp
OworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5MDc1NzM0ZTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiVXNlckFnZW50U2NyaXB0cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5k
ZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYg
dGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0
aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2Vu
dFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNT
Y3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xMjJhMDg5NzgwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJUaGVtZVdQRV9oCisjZGVmaW5lIFJlbmRlclRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRoZW1lV1BFKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNo
ZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgp
IG92ZXJyaWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQs
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclRoZW1lV1BFX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlmZTVkNGQ4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFy
VGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQor
CitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK1Nj
cm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRp
YyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9s
bGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRk
OGIwMzE2ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lV1BF
X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVXUEVfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhT
Y3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xs
YmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFy
UGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVt
ZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3YTQ1OTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7Cit9CisKK0xlbmd0
aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21lZFNpemUud2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNr
Ym94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcmV0dXJuIExlbmd0aFNpemUg
eyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhlZCkgfTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gVGhlbWU6OmNvbnRyb2xTaXplKHBh
cnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKK30KKwordm9pZCBUaGVt
ZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQg
em9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkKK3sKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgcGFpbnRDaGVja2JveChzdGF0
ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRpbyhzdGF0ZXMsIGNvbnRleHQsIHpv
b21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3Qs
IHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9v
bWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIs
IGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRl
ZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwgMjI0
KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tl
VGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQs
IDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRlcy5z
dGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBhdXRvJiBy
ZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7Cisg
ICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50KHJlY3QueCgpICsgMywgcmVjdC5t
YXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHJl
Y3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAgICAgICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig4
NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlUGF0aChjaGVja2VyUGF0aCk7Cisg
ICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZEVsbGlwc2Uoem9vbWVkUmVjdCk7
CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsK
KyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygp
ICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIEZsb2F0UmVjdCBjaGVj
a2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNrZXJSZWN0LmluZmxhdGUoLTMpOwor
CisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZEVsbGlw
c2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0Io
ODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKGNoZWNrZXJQYXRoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIp
OworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsK
KworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6
OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0NCkgOiBtYWtlUkdCKDIyNCwgMjI0
LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvcik7CisgICAgY29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29u
dGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kZjA4MWIzYTdhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaGVtZVdQRV9o
CisjZGVmaW5lIFRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVibGljOgorICAg
IFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKworICAgIHZpcnR1
YWwgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVz
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQg
cGFpbnRSYWRpbyhDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFRoZW1lV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKK3sK
KyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJU
KCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0Owor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmJlNGFhY2U5OGQuLjcyZjFmOWI5NWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTkgQEAKKzIw
MTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6CisgICAgICAgIGh0dHBzOi8vbGlzdHMu
d2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8yMDE3LUFwcmlsLzAyODkyMy5odG1sCisK
KyAgICAgICAgRXhpc3RpbmcgZmlsZXMgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0o
V1BFKSBidWlsZCBndWFyZHMgb3Igb3RoZXIKKyAgICAgICAgV1BFLXNwZWNpZmljIGFkZGl0aW9u
cyAoZS5nLiBwYXN0ZWJvYXJkIHN1cHBvcnQpLgorICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVt
b3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5IGZvciBicmV2aXR5LgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwOgorICAgICAgICAqIFBsYXRmb3Jt
V1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmct
aGVhZGVycy5wbDoKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvV0tCYXNlLmg6CisgICAgICAgICog
U2hhcmVkL0FQSS9jL3dwZS9XUEVXZWJLaXQuaDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL0FQ
SS9jL3dwZS9XS0Jhc2VXUEUuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3Ro
cmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwOgorICAgICAgICAqIFNoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuaDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmg6CisgICAg
ICAgICogU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQu
aDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oOgorICAgICAgICAqIFNo
YXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50Lmg6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5jcHA6CisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5o
OgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmg6CisgICAgICAg
ICogU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJl
ZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL05hdGl2
ZVdlYlRvdWNoRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2
ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVh
SW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNw
cDogQWRkZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oOiBDb3BpZWQgZnJvbSBT
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9DL1dLQVBJQ2FzdC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tB
UElDYXN0V1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjogQWRkZWQuCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuaDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVy
ZUNvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9TY3Jv
bGxHZXN0dXJlQ29udHJvbGxlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5j
cHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50Lmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvSW5z
cGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHA6IEFkZGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYXN0ZWJvYXJkUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVBy
b2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3Bl
L1dlYlByZWZlcmVuY2VzV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5oLgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKiBXZWJLaXQyUHJlZml4Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVu
dFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JD
bGllbnRXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXIuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BF
Lmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9y
VUlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmguCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUu
Y3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcDogQ29waWVk
IGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRj
b21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oLgorICAgICAgICAqIFdlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvV2ViS2l0
MlByZWZpeC5oLgorICAgICAgICAqIGNvbmZpZy5oOgorICAgICAgICAqIHdwZS93cGUtd2Via2l0
LnBjLmluOiBBZGRlZC4KKwogMjAxNy0wNC0yMCAgS29uc3RhbnRpbiBUb2thcmV2ICA8YW5udWxl
bkB5YW5kZXgucnU+CiAKICAgICAgICAgW2NtYWtlXSBEZWZpbmUgRk9SV0FSRElOR19IRUFERVJT
X0RJUiBpbiBXZWJLaXRGUyBhbmQgdXNlIGl0IGV2ZXJ5d2hlcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5
Mzg5MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQ
Qy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9J
UEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAKQEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0
TW9uaXRvcjo6c3RhcnQoR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBS
dW5Mb29wJiBydW4KICAgICBnX3NvdXJjZV9zZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJL
aXRdIFNvY2tldCBtb25pdG9yIik7CiAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
OwogICAgIGdfc291cmNlX3NldF9jYWxsYmFjayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRf
Y2FzdDxHU291cmNlRnVuYz4oc29ja2V0U291cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsK
KyNpZiBQTEFURk9STShXUEUpCisgICAgZ19zb3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdl
dCgpLCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2go
bV9zb3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFpbkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZv
cm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg4NGYw
ZTRlZTg1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21h
a2UKQEAgLTAsMCArMSw0NzAgQEAKK2ZpbGUoTUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJD
RVNfV0VCS0lUMl9ESVJ9KQorCitjb25maWd1cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAk
e0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJraXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9u
cygtRFdFQktJVDJfQ09NUElMQVRJT04pCisKK2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9
IiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQorCitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURF
UiBPTikKKworYWRkX2N1c3RvbV90YXJnZXQod2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMK
KyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRBQkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElS
fSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxh
dGZvcm0gc291cAorKQorCitzZXQoV0VCS0lUMl9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJr
aXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NP
VVJDRVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAK
KykKKworbGlzdChBUFBFTkQgTmV0d29ya1Byb2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9j
ZXNzL0VudHJ5UG9pbnQvdW5peC9OZXR3b3JrUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQ
RU5EIERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VTCisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9p
bnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQy
X1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lD
dXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUv
TmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3
b3JrQ2FjaGVEYXRhU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVJT0NoYW5uZWxTb3VwLmNwcAorCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0
YVRhc2tTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWlu
U291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3
b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBs
YXRmb3JtL2NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc0NsYXNzaWZpZXIuY3BwCisK
KyAgICBQbGF0Zm9ybS9nbGliL01vZHVsZUdsaWIuY3BwCisKKyAgICBQbGF0Zm9ybS9JUEMvZ2xp
Yi9HU29ja2V0TW9uaXRvci5jcHAKKworICAgIFBsYXRmb3JtL0lQQy91bml4L0F0dGFjaG1lbnRV
bml4LmNwcAorICAgIFBsYXRmb3JtL0lQQy91bml4L0Nvbm5lY3Rpb25Vbml4LmNwcAorCisgICAg
UGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1l
bW9yeVVuaXguY3BwCisKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclBy
b3h5VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9jZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4
LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAg
IFNoYXJlZC9BUEkvYy9jYWlyby9XS0ltYWdlQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVu
dGljYXRpb24vc291cC9BdXRoZW50aWNhdGlvbk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAg
IFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAK
KworICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21w
b3NpdGluZ1J1bkxvb3AuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L1RocmVhZFNhZmVDb29yZGluYXRlZFN1cmZhY2UuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9O
ZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fp
cm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNH
bGliLmNwcAorCisgICAgU2hhcmVkL2xpbnV4L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKwor
ICAgIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVk
L3NvdXAvV2ViRXJyb3JzU291cC5jcHAKKworICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01h
aW4uY3BwCisKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisg
ICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUv
TmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVs
RXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3Bw
CisgICAgU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJ
L0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFuYWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9B
UEkvQy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJvLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9D
L3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUv
V0tWaWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAg
ICBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAg
ICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vzcy9EZWZhdWx0VW5kb0Nv
bnRyb2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZ05vbmUu
Y3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAor
ICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisKKyAgICBV
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCisK
KyAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3NvdXAvV2ViU29ja2V0U2VydmVyU291cC5j
cHAKKworICAgIFVJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAor
CisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5peC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAg
IFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAg
IFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dl
YnNpdGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFTdG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3Mv
Y2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0lu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9j
ZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlHU3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3Mv
bGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9yLmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2Vi
Q29va2llTWFuYWdlclByb3h5U291cC5jcHAKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNz
UG9vbFNvdXAuY3BwCisKKyAgICBVSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAg
IFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dw
ZS9XZWJQYWdlUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJv
eHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBV
SVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29r
aWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNvdXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVz
L3NvdXAvV2ViS2l0U291cENvb2tpZUphclNxbGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNz
L01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9yYWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisg
ICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUu
Y3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BF
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5j
cHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAg
ICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNw
cAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5n
Q29vcmRpbmF0b3IuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAor
ICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNw
cAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisg
ICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2Vi
UGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3Vw
UmVxdWVzdElucHV0U3RyZWFtLmNwcAorICAgIFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291
cC5jcHAKKworICAgIFdlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAg
IyBGSVhNRS1HV1NIQVJFOgorICAgIERhdGFiYXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNz
TWFpbkd0ay5jcHAKKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUwor
ICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfREVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYwor
KQorCitzZXQoV2ViS2l0MlJlc291cmNlcworKQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAg
ICBsaXN0KEFQUEVORCBXZWJLaXQyUmVzb3VyY2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFs
aWFzPVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29tcG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitl
bmRpZiAoKQorCitmaWxlKFdSSVRFICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJL
aXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBl
bmNvZGluZz1VVEYtOD8+XG4iCisgICAgIjxncmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNv
dXJjZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdwZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktp
dDJSZXNvdXJjZXN9CisgICAgIiAgICA8L2dyZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2Vz
PlxuIgorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VS
Q0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBE
RVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jl
c291cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdl
bmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVz
b3VyY2VzIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJf
RElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVS
QkFUSU0KKykKKworbGlzdChBUFBFTkQgV2ViS2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
IiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0iCisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0i
CisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dF
QkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGluYXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxh
dGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3Mv
dW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xz
L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3Vw
IgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJ
VDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9y
bS9JUEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQyX0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2NsYXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgor
ICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAg
ICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQ
SS93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3Rv
Y29scy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9j
ZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYv
Z3RrLyIKKyAgICAiJHtXVEZfRElSfS93dGYvZ29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAg
ICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtG
UkVFVFlQRTJfSU5DTFVERV9ESVJTfQorICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtH
U1RSRUFNRVJfSU5DTFVERV9ESVJTfQorICAgICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAg
ICR7TElCU09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCits
aXN0KEFQUEVORCBXZWJLaXQyX0xJQlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAg
ICR7RlJFRVRZUEUyX0xJQlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NU
UkVBTUVSX0xJQlJBUklFU30KKyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNP
VVBfTElCUkFSSUVTfQorICAgICR7V1BFX0xJQlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZp
bGVzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxp
emF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2Uv
Ki5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvQ29udHJvbGxlcnMvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVn
LyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9F
eHRlcm5hbC9Db2RlTWlycm9yLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRl
cm5hbC9Fc3ByaW1hLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5z
dmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL01vZGVscy8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1Rlc3QvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9y
bWF0dGVyLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVhcFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9C
IEluc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzCisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKwor
IyBEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2Vu
ZENvbW1hbmRzLmpzIGlzCisjIGV4cGVjdGVkIGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvLgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9V
VFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2Uv
UHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKKyAgICBDT01NQU5EIGNwICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRD
T1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVj
dG9yQmFja2VuZENvbW1hbmRzLmpzCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQ
VVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUueG1sCisgICAgREVQRU5EUyAke0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQor
ICAgICAgICAgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50
ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAg
JHtUT09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5
CisgICAgQ09NTUFORCAke1RPT0xTX0RJUn0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3Vy
Y2UtbWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlf
RElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9J
bnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9t
X2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJ
Un0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VS
Q0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAg
IENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklW
RURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54
bWwKKyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7
REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNv
dXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFn
ZUluZGV4Lmh0bWwKKyAgICBDT01NQU5EIGdsaWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0
ZSAtLXNvdXJjZWRpcj0ke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zy
b250LWVuZCAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElN
CispCisKK2xpc3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJD
RVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdS
ZXNvdXJjZUJ1bmRsZS5jCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElS
fS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BF
V2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVT
fQorKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJF
Q1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdl
Ykluc3BlY3RvclJlc291cmNlcyBTSEFSRUQgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVS
SVZFRF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRlbmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
IFdlYktpdDIpCit0YXJnZXRfbGlua19saWJyYXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
ICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9k
aXJlY3RvcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVj
dG9yUmVzb3VyY2VzX0lOQ0xVREVfRElSRUNUT1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdl
Ykluc3BlY3RvclJlc291cmNlcyBERVNUSU5BVElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKwor
c2V0KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tBcnJheS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFz
ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGF0YS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEaWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vycm9yUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tFdmVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
RmluZE9wdGlvbnMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5
LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tJbWFnZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0YWJsZUFycmF5LmgKKyAgICAke1dFQktJVDJfRElS
fS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mv
V0tQYWdlTG9hZFR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdl
VmlzaWJpbGl0eVR5cGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1
cml0eU9yaWdpblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJp
bmcuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VSTC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVk
L0FQSS9jL1dLVVJMUmVxdWVzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VVJMUmVzcG9uc2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1Vz
ZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dL
VXNlclNjcmlwdEluamVjdGlvblRpbWUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL3dwZS9XS0Jhc2VXUEUuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tG
b3J3YXJkTGlzdEl0ZW0uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvV0tCdW5kbGVET01XaW5kb3dFeHRlbnNpb24uaAorICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVm
LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlRnJhbWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVzdWx0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3Bl
Y3Rvci5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVOb2RlSGFuZGxlLmgKKyAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisg
ICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRs
ZVBhZ2VCYW5uZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xp
ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBh
Z2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgJHtX
RUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50
LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dL
QnVuZGxlUmFuZ2VIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0
ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3JpcHRXb3JsZC5oCisKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RJdGVtUmVmLmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9yd2FyZExpc3RSZWYuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVu
dC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dERvd25sb2Fk
Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlz
dG9yeUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4
dEluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tDb250ZXh0LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29r
aWVNYW5hZ2VyLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50
aWFsLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlw
ZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tGcmFtZUluZm9SZWYuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS05hdGl2ZUV2ZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlZi5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2aWdhdGlvblJlc3BvbnNlUmVmLmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNvbnRleHRNZW51Q2xpZW50LmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgK
KyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlR3JvdXAuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5o
CisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGll
bnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VQb2xpY3lDbGll
bnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQ
cm9ncmVzc0V2ZW50cy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZVVJQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5M
b2FkUG9saWN5LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlc1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0
YXRlUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVu
dENvbnRyb2xsZXJSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1Vz
ZXJTY3JpcHRSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdw
b3J0QXR0cmlidXRlcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2lu
ZG93RmVhdHVyZXNSZWYuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS1ZpZXcuaAorCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tD
b29raWVNYW5hZ2VyU291cC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dF
QktJVF9IRUFERVJTfQorICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJ
Un0vd3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9XUEUvV2ViS2l0IgorICAgIENPTVBPTkVOVCAiRGV2
ZWxvcG1lbnQiCispCisKK3NldChXUEVfSU5TVEFMTEVEX0hFQURFUlMKKyAgICAke1dFQktJVDJf
RElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktpdC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVf
SU5TVEFMTEVEX0hFQURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNM
VURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJT059L1dQRSIKKyAgICBDT01QT05FTlQgIkRldmVs
b3BtZW50IgorKQorCitpbnN0YWxsKEZJTEVTICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtp
dC5wYworICAgIERFU1RJTkFUSU9OICIke0NNQUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWci
CisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dlYktp
dDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3ODc3
NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVy
YXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dl
bmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6
U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9wdDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFs
cGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRpcm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4uIikp
OwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwg
IkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMi
LCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIsICJj
b2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRlZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwgImd0
ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAid2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29ya3Mg
PSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNvcmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBlZFBy
ZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRlcnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMzYTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICszOCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Jh
c2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5kaWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMg
Ki8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
QVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9oCisj
ZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5kZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNp
bmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5k
aWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3QgT3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNl
bmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL3dwZS9XUEVXZWJLaXQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUv
V1BFV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjlhODQx
MTdmNDVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dw
ZS9XUEVXZWJLaXQuaApAQCAtMCwwICsxLDEwNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQRV9XZWJLaXRfaAorI2RlZmluZSBX
UEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVfXworCisjaW5jbHVkZSA8V2ViS2l0
L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4KKworLy8gRnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQXJyYXkuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGF0YS5oPgorI2luY2x1
ZGUgPFdlYktpdC9XS0RlY2xhcmF0aW9uU3BlY2lmaWVycy5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0RpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tFcnJvclJlZi5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0dlb21ldHJ5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTXV0YWJsZUFycmF5Lmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLTXV0YWJsZURpY3Rpb25hcnkuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tOdW1iZXIuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tTZWN1cml0eU9yaWdpblJlZi5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS1N0cmluZy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tVUkwuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVUkxSZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMUmVzcG9uc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tVc2VyQ29udGVudEluamVjdGVkRnJhbWVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlclNj
cmlwdEluamVjdGlvblRpbWUuaD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9jLworI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZS5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdC5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVGaWxlSGFuZGxlUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRnJhbWUuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLQnVuZGxlSW5pdGlhbGl6ZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluc3BlY3Rv
ci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVOb2RlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVu
ZGxlUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VCYW5uZXIuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlQ29udGV4dE1lbnVDbGllbnQuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVu
ZGxlUGFnZUZvcm1DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRnVsbFNj
cmVlbkNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VHcm91cC5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VMb2FkZXJDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVQYWdlT3ZlcmxheS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VQ
b2xpY3lDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlUmVzb3VyY2VMb2Fk
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVVJQ2xpZW50Lmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlUmFuZ2VIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVTY3JpcHRXb3JsZC5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQworI2luY2x1ZGUgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tCYWNrRm9yd2FyZExpc3RSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tD
b250ZXh0Q29uZmlndXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3Jl
ZGVudGlhbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWUuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tGcmFtZUluZm9SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZVBvbGljeUxp
c3RlbmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLSGl0VGVzdFJlc3VsdC5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS05hdmlnYXRpb25BY3Rpb25SZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZp
Z2F0aW9uRGF0YVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25SZWYuaD4KKyNp
bmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tQYWdlQ29uZmlndXJhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VHcm91
cC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tQcmVm
ZXJlbmNlc1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Nlc3Npb25TdGF0ZVJlZi5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJDb250ZW50Q29udHJvbGxlclJlZi5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS1VzZXJTY3JpcHRSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3Lmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLVmlld3BvcnRBdHRyaWJ1dGVzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
V2luZG93RmVhdHVyZXNSZWYuaD4KKworI2VuZGlmIC8vIFdQRV9XZWJLaXRfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29v
cmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNw
cAppbmRleCA4YWNmNTA2OTIxMC4uMjI0Mzg4ZWVjNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3Np
dGluZ1J1bkxvb3AuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCkBAIC03NSw3
ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgV29ya1F1ZXVlUG9vbCgpCiAgICAgewot
I2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICAgICAgbV90aHJlYWRDb3VudExpbWl0ID0gMTsKICNlbHNlCiAgICAgICAgIG1fdGhyZWFkQ291
bnRMaW1pdCA9IHN0ZDo6bnVtZXJpY19saW1pdHM8dW5zaWduZWQ+OjptYXgoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29y
ZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaApp
bmRleCA4MTZkNDY3YjUxMC4uNjQ1ZDdiOTBkMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGlu
Z1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKQEAgLTI4LDYgKzI4LDcg
QEAKIAogI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKIAorI2luY2x1ZGUg
PGZ1bmN0aW9uYWw+CiAjaW5jbHVkZSA8d3RmL0F0b21pY3MuaD4KICNpbmNsdWRlIDx3dGYvQ29u
ZGl0aW9uLmg+CiAjaW5jbHVkZSA8d3RmL0Zhc3RNYWxsb2MuaD4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKaW5kZXgg
NTRkOTYwYjNkMGUuLjk2ZDI5NjZiZGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3Np
dG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcApAQCAtNDMsMTIgKzQzLDEy
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVm
PFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUoQ2xpZW50JiBj
bGllbnQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVp
bnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5j
LCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitSZWY8VGhyZWFkZWRDb21w
b3NpdG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgV2ViUGFn
ZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3Rv
ciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFt
ZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKIHsKLSAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBUaHJlYWRlZENvbXBvc2l0b3IoY2xpZW50LCB2aWV3cG9ydFNpemUs
IHNjYWxlRmFjdG9yLCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFn
cykpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQs
IHdlYlBhZ2UsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUs
IGRvRnJhbWVTeW5jLCBwYWludEZsYWdzKSk7CiB9CiAKLVRocmVhZGVkQ29tcG9zaXRvcjo6VGhy
ZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNp
emUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91
bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWlu
dEZsYWdzKQorVGhyZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBj
bGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxv
YXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJh
bWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3Mp
CiAgICAgOiBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3ZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNp
emUpCiAgICAgLCBtX3NjYWxlRmFjdG9yKHNjYWxlRmFjdG9yKQpAQCAtNjQsMTMgKzY0LDIxIEBA
IFRocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBj
b25zdCBJbnRTaXplJiB2aWV3cG9ydFNpCiAgICAgbV9jbGllbnRSZW5kZXJzTmV4dEZyYW1lLnN0
b3JlKGZhbHNlKTsKICAgICBtX2Nvb3JkaW5hdGVVcGRhdGVDb21wbGV0aW9uV2l0aENsaWVudC5z
dG9yZShmYWxzZSk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV9jb21wb3NpdGluZ01hbmFn
ZXIuZXN0YWJsaXNoQ29ubmVjdGlvbih3ZWJQYWdlKTsKKyNlbmRpZgorCiAgICAgbV9jb21wb3Np
dGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VS
ZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUgPSBhZG9wdFJlZihuZXcgQ29vcmRpbmF0ZWRH
cmFwaGljc1NjZW5lKHRoaXMpKTsKKyNpZiBQTEFURk9STShHVEspCiAgICAgICAgIGlmIChtX25h
dGl2ZVN1cmZhY2VIYW5kbGUpIHsKICAgICAgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOwogICAg
ICAgICAgICAgbV9zY2VuZS0+c2V0QWN0aXZlKHRydWUpOwogICAgICAgICB9IGVsc2UKICAgICAg
ICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZShmYWxzZSk7CisjZWxpZiBQTEFURk9STShXUEUpCisg
ICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsKKyNlbmRpZgogICAgIH0pOwogfQogCkBA
IC04MSw2ICs4OSw4IEBAIFRocmVhZGVkQ29tcG9zaXRvcjo6flRocmVhZGVkQ29tcG9zaXRvcigp
CiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKIHsKICAgICBBU1NF
UlQoIWlzTWFpblRocmVhZCgpKTsKKworI2lmIFBMQVRGT1JNKEdUSykKICAgICBBU1NFUlQobV9u
YXRpdmVTdXJmYWNlSGFuZGxlKTsKIAogICAgIG1fY29udGV4dCA9IEdMQ29udGV4dDo6Y3JlYXRl
Q29udGV4dEZvcldpbmRvdyhyZWludGVycHJldF9jYXN0PEdMTmF0aXZlV2luZG93VHlwZT4obV9u
YXRpdmVTdXJmYWNlSGFuZGxlKSwgJlBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheUZvckNv
bXBvc2l0aW5nKCkpOwpAQCAtOTEsNiArMTAxLDIyIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
OjpjcmVhdGVHTENvbnRleHQoKQogICAgICAgICBpZiAobV9jb250ZXh0LT5tYWtlQ29udGV4dEN1
cnJlbnQoKSkKICAgICAgICAgICAgIG1fY29udGV4dC0+c3dhcEludGVydmFsKDApOwogICAgIH0K
KyNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIGF1dG8mIHBsYXRmb3JtRGlzcGxheSA9
IFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpOworICAgIFJFTEVBU0VfQVNTRVJUKGlz
PFBsYXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KSk7CisgICAgbV90YXJnZXQgPSBk
b3duY2FzdDxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxheSkuY3JlYXRlRUdMVGFy
Z2V0KCp0aGlzLCBtX2NvbXBvc2l0aW5nTWFuYWdlci5yZWxlYXNlQ29ubmVjdGlvbkZkKCkpOwor
ICAgIEFTU0VSVChtX3RhcmdldCk7CisgICAgbV90YXJnZXQtPmluaXRpYWxpemUobV92aWV3cG9y
dFNpemUpOworCisgICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9yV2lu
ZG93KG1fdGFyZ2V0LT5uYXRpdmVXaW5kb3coKSwgJnBsYXRmb3JtRGlzcGxheSk7CisgICAgaWYg
KCFtX2NvbnRleHQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghbV9jb250ZXh0LT5tYWtl
Q29udGV4dEN1cnJlbnQoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlmCiB9CiAKIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKQEAgLTEwMCwxNiArMTI2LDIzIEBAIHZvaWQg
VGhyZWFkZWRDb21wb3NpdG9yOjppbnZhbGlkYXRlKCkKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9v
cC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKICAgICAgICAgbV9zY2VuZS0+cHVyZ2VHTFJlc291cmNlcygpOwogICAgICAgICBtX2NvbnRl
eHQgPSBudWxscHRyOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV90YXJnZXQgPSBudWxs
cHRyOworI2VuZGlmCiAgICAgICAgIG1fc2NlbmUgPSBudWxscHRyOwogICAgIH0pOwogI2lmIFVT
RShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCiAgICAgbV9kaXNwbGF5
UmVmcmVzaE1vbml0b3ItPmludmFsaWRhdGUoKTsKICNlbmRpZgogICAgIG1fY29tcG9zaXRpbmdS
dW5Mb29wID0gbnVsbHB0cjsKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExB
WV9NT05JVE9SKQorICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7Cisj
ZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5k
bGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBoYW5kbGUpCiB7CisjaWYgUExBVEZPUk0oR1RLKQog
ICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zdG9wVXBkYXRlcygpOwogICAgIG1fY29tcG9zaXRp
bmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgaGFuZGxlXSB7CiAgICAgICAgIC8vIEEgbmV3IG5hdGl2ZSBoYW5kbGUgY2FuJ3Qg
YmUgc2V0IHdpdGhvdXQgZGVzdHJveWluZyB0aGUgcHJldmlvdXMgb25lIGZpcnN0IGlmIGFueS4K
QEAgLTEyMyw2ICsxNTYsNyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3Vy
ZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKICAgICAgICAgICAgIG1f
Y29udGV4dCA9IG51bGxwdHI7CiAgICAgICAgIH0KICAgICB9KTsKKyNlbmRpZgogfQogCiB2b2lk
IFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0U2NhbGVGYWN0b3IoZmxvYXQgc2NhbGUpCkBAIC0xNDYs
NiArMTgwLDEwIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXRWaWV3cG9ydFNpemUoY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsCiB7CiAgICAgbV9jb21wb3NpdGlu
Z1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpLCB2aWV3cG9ydFNpemUsIHNjYWxlXSB7CiAgICAgICAgIG1fdmlld3BvcnRTaXplID0g
dmlld3BvcnRTaXplOworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgaWYgKG1fdGFyZ2V0KQor
ICAgICAgICAgICAgbV90YXJnZXQtPnJlc2l6ZSh2aWV3cG9ydFNpemUpOworI2VuZGlmCiAgICAg
ICAgIG1fc2NhbGVGYWN0b3IgPSBzY2FsZTsKICAgICAgICAgbV9uZWVkc1Jlc2l6ZSA9IHRydWU7
CiAgICAgICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5zY2hlZHVsZVVwZGF0ZSgpOwpAQCAtMTg5
LDkgKzIyNywxOCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6cmVuZGVyTGF5ZXJUcmVlKCkK
ICAgICBpZiAoIW1fc2NlbmUgfHwgIW1fc2NlbmUtPmlzQWN0aXZlKCkpCiAgICAgICAgIHJldHVy
bjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBpZiAoIW1fY29udGV4dCkKKyAgICAgICAgY3Jl
YXRlR0xDb250ZXh0KCk7CisjZW5kaWYKKwogICAgIGlmICghbV9jb250ZXh0IHx8ICFtX2NvbnRl
eHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9S
TShXUEUpCisgICAgbV90YXJnZXQtPmZyYW1lV2lsbFJlbmRlcigpOworI2VuZGlmCisKICAgICBp
ZiAobV9uZWVkc1Jlc2l6ZSkgewogICAgICAgICBnbFZpZXdwb3J0KDAsIDAsIG1fdmlld3BvcnRT
aXplLndpZHRoKCksIG1fdmlld3BvcnRTaXplLmhlaWdodCgpKTsKICAgICAgICAgbV9uZWVkc1Jl
c2l6ZSA9IGZhbHNlOwpAQCAtMjExLDcgKzI1OCwxMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6cmVuZGVyTGF5ZXJUcmVlKCkKIAogICAgIG1fY29udGV4dC0+c3dhcEJ1ZmZlcnMoKTsKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyAgICBtX3RhcmdldC0+ZnJhbWVSZW5kZXJlZCgpOworI2VuZGlm
CisKKyNpZiBQTEFURk9STShHVEspCiAgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOworI2VuZGlm
CiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzY2VuZVVwZGF0ZUZpbmlzaGVkKCkKQEAg
LTI3MCw1ICszMjMsMzIgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNvb3JkaW5hdGVVcGRh
dGVDb21wbGV0aW9uV2l0aENsaWVudCgpCiB9CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkK
K3N0YXRpYyB2b2lkIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBTKCkKK3sKKyAgICBzdGF0aWMg
ZG91YmxlIGxhc3RUaW1lID0gY3VycmVudFRpbWUoKTsKKyAgICBzdGF0aWMgdW5zaWduZWQgZnJh
bWVDb3VudCA9IDA7CisKKyAgICBkb3VibGUgY3QgPSBjdXJyZW50VGltZSgpOworICAgIGZyYW1l
Q291bnQrKzsKKworICAgIGlmIChjdCAtIGxhc3RUaW1lID49IDUuMCkgeworICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIlRocmVhZGVkQ29tcG9zaXRvcjogZnJhbWUgY2FsbGJhY2tzICUuMmYgRlBT
XG4iLCBmcmFtZUNvdW50IC8gKGN0IC0gbGFzdFRpbWUpKTsKKyAgICAgICAgbGFzdFRpbWUgPSBj
dDsKKyAgICAgICAgZnJhbWVDb3VudCA9IDA7CisgICAgfQorfQorCit2b2lkIFRocmVhZGVkQ29t
cG9zaXRvcjo6ZnJhbWVDb21wbGV0ZSgpCit7CisgICAgQVNTRVJUKG1fY29tcG9zaXRpbmdSdW5M
b29wLT5pc0N1cnJlbnQoKSk7CisgICAgc3RhdGljIGJvb2wgcmVwb3J0RlBTID0gISFzdGQ6Omdl
dGVudigiV1BFX1RIUkVBREVEX0NPTVBPU0lUT1JfRlBTIik7CisgICAgaWYgKHJlcG9ydEZQUykK
KyAgICAgICAgZGVidWdUaHJlYWRlZENvbXBvc2l0b3JGUFMoKTsKKworICAgIHNjZW5lVXBkYXRl
RmluaXNoZWQoKTsKK30KKyNlbmRpZgorCiB9CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dS
QVBISUNTX1RIUkVBREVEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3Np
dG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCmluZGV4IDY3OTU0YTA3YTQ2Li5lYjEyNDU5NzU2YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENv
bXBvc2l0b3IuaApAQCAtNDIsNiArNDIsMTEgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oPgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAi
Q29tcG9zaXRpbmdNYW5hZ2VyLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybURpc3BsYXlX
UEUuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgQ29vcmRpbmF0ZWRH
cmFwaGljc1N0YXRlOwogfQpAQCAtNTEsOCArNTYsMTMgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBj
bGFzcyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmU7CiBjbGFzcyBDb29yZGluYXRlZEdyYXBoaWNz
U2NlbmVDbGllbnQ7CiBjbGFzcyBUaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvcjsKK2NsYXNz
IFdlYlBhZ2U7CiAKLWNsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGluYXRl
ZEdyYXBoaWNzU2NlbmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRl
ZENvbXBvc2l0b3I+IHsKK2NsYXNzIFRocmVhZGVkQ29tcG9zaXRvciA6IHB1YmxpYyBDb29yZGlu
YXRlZEdyYXBoaWNzU2NlbmVDbGllbnQsIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJl
YWRlZENvbXBvc2l0b3I+CisjaWYgUExBVEZPUk0oV1BFKQorICAgICwgcHVibGljIFdlYkNvcmU6
OlBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpDbGllbnQKKyNlbmRpZgorICAgIHsKICAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShUaHJlYWRlZENvbXBvc2l0b3IpOwogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNjQsNyArNzQsNyBAQCBwdWJsaWM6CiAKICAg
ICBlbnVtIGNsYXNzIFNob3VsZERvRnJhbWVTeW5jIHsgTm8sIFllcyB9OwogCi0gICAgc3RhdGlj
IFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUg
PSAwLCBTaG91bGREb0ZyYW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6
OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKKyAgICBzdGF0aWMgUmVmPFRocmVhZGVk
Q29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUgPSAw
LCBTaG91bGREb0ZyYW1lU3luYyA9IFNob3VsZERvRnJhbWVTeW5jOjpZZXMsIFdlYkNvcmU6OlRl
eHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgPSAwKTsKICAgICB2aXJ0dWFsIH5UaHJlYWRlZENvbXBv
c2l0b3IoKTsKIAogICAgIHZvaWQgc2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBvc2l0aW5n
KHVpbnQ2NF90KTsKQEAgLTg3LDEzICs5NywxOCBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0
ZToKLSAgICBUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91
bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyk7CisgICAg
VGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYsIFdlYlBhZ2UmLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNo
b3VsZERvRnJhbWVTeW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKIAog
ICAgIC8vIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVudAogICAgIHZvaWQgcmVuZGVyTmV4
dEZyYW1lKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydCgpIG92ZXJyaWRlOwog
ICAgIHZvaWQgY29tbWl0U2Nyb2xsT2Zmc2V0KHVpbnQzMl90IGxheWVySUQsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIG9mZnNldCkgb3ZlcnJpZGU7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAg
Ly8gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpTdXJmYWNlOjpDbGllbnQKKyAgICB2b2lk
IGZyYW1lQ29tcGxldGUoKSBvdmVycmlkZTsKKyNlbmRpZgorCiAgICAgdm9pZCByZW5kZXJMYXll
clRyZWUoKTsKICAgICB2b2lkIHNjZW5lVXBkYXRlRmluaXNoZWQoKTsKIApAQCAtMTAxLDYgKzEx
NiwxMiBAQCBwcml2YXRlOgogCiAgICAgQ2xpZW50JiBtX2NsaWVudDsKICAgICBSZWZQdHI8Q29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lPiBtX3NjZW5lOworCisjaWYgUExBVEZPUk0oV1BFKQorICAg
IENvbXBvc2l0aW5nTWFuYWdlciBtX2NvbXBvc2l0aW5nTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1
ZV9wdHI8V2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ+IG1fdGFyZ2V0Owor
I2VuZGlmCisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6R0xDb250ZXh0PiBtX2NvbnRl
eHQ7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIG1fdmlld3BvcnRTaXplOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCmluZGV4IDdmYzRkN2M0YjNmLi5hNDM1ZTE5YmI3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaApAQCAtMzQsNiArMzQsOCBA
QCBlbnVtIERyYXdpbmdBcmVhVHlwZSB7CiAgICAgRHJhd2luZ0FyZWFUeXBlVGlsZWRDb3JlQW5p
bWF0aW9uLAogI2VuZGlmCiAgICAgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlLAorI2Vs
aWYgUExBVEZPUk0oV1BFKQorICAgIERyYXdpbmdBcmVhVHlwZVdQRQogI2Vsc2UKICAgICBEcmF3
aW5nQXJlYVR5cGVJbXBsCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oCmluZGV4IGNiMWYxMThjODkyLi4xNGZkZGUyMjRlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCkBAIC01MSw2
ICs1MSwxMCBAQCB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKIE9CSkNfQ0xBU1Mg
V2ViRXZlbnQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRf
a2V5Ym9hcmRfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQgOiBwdWJsaWMgV2ViS2V5Ym9hcmRFdmVudCB7CkBAIC02Miw2
ICs2Niw4IEBAIHB1YmxpYzoKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KEdka0V2ZW50Kiwg
Y29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25SZXN1bHRzJiwgSW5wdXRNZXRob2RGaWx0ZXI6OkV2
ZW50RmFrZWRGb3JDb21wb3NpdGlvbiwgVmVjdG9yPFN0cmluZz4mJiBjb21tYW5kcyk7CiAjZWxp
ZiBQTEFURk9STShJT1MpCiAgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCg6OldlYkV2ZW50ICop
OworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCopOwogI2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpA
QCAtNzIsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0Zha2VFdmVudEZvckNvbXBvc2l0
aW9uKCkgY29uc3QgeyByZXR1cm4gbV9mYWtlRXZlbnRGb3JDb21wb3NpdGlvbjsgfQogI2VsaWYg
UExBVEZPUk0oSU9TKQogICAgIDo6V2ViRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1
cm4gbV9uYXRpdmVFdmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0
IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91
c2VFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaApp
bmRleCA4OGNkMTQxMDkzOC4uMjgzZmMzMzQ5NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L05hdGl2ZVdlYk1vdXNlRXZlbnQuaApAQCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1Zp
ZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtFdmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50OworI2VuZGlmCisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVXZWJNb3VzZUV2ZW50IDogcHVibGljIFdl
Yk1vdXNlRXZlbnQgewpAQCAtNDcsNiArNTEsOCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShH
VEspCiAgICAgTmF0aXZlV2ViTW91c2VFdmVudChjb25zdCBOYXRpdmVXZWJNb3VzZUV2ZW50Jik7
CiAgICAgTmF0aXZlV2ViTW91c2VFdmVudChHZGtFdmVudCosIGludCk7CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgTmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBL
SVQpCkBAIC01NSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBHZGtFdmVudCogbmF0aXZl
RXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFU
Rk9STShJT1MpCiAgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAw
OyB9CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBj
b25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCmluZGV4IDExODEyNGNkZWJjLi44MmYz
YjI0ZDQyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNo
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5o
CkBAIC0zNCw2ICszNCw4IEBACiBzdHJ1Y3QgX1VJV2ViVG91Y2hFdmVudDsKICNlbGlmIFBMQVRG
T1JNKEdUSykKICNpbmNsdWRlIDxXZWJDb3JlL0dVbmlxdWVQdHJHdGsuaD4KKyNlbGlmIFBMQVRG
T1JNKFdQRSkKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KICNlbmRpZgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTQ2LDYgKzQ4LDkgQEAgcHVibGljOgogICAgIE5hdGl2ZVdlYlRvdWNoRXZlbnQo
R2RrRXZlbnQqLCBWZWN0b3I8V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiYmKTsKICAgICBOYXRpdmVX
ZWJUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNoRXZlbnQmKTsKICAgICBjb25zdCBHZGtF
dmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9
CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X3RvdWNoX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGNvbnN0
IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBuYXRpdmVGYWxsYmFja1RvdWNoUG9p
bnQoKSBjb25zdCB7IHJldHVybiAmbV9mYWxsYmFja1RvdWNoUG9pbnQ7IH0KICNlbmRpZgogCiBw
cml2YXRlOgpAQCAtNTUsNiArNjAsOCBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oR1RLKQog
ICAgIEdVbmlxdWVQdHI8R2RrRXZlbnQ+IG1fbmF0aXZlRXZlbnQ7CisjZWxpZiBQTEFURk9STShX
UEUpCisgICAgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcgbV9mYWxsYmFja1RvdWNo
UG9pbnQ7CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJXaGVlbEV2ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hl
ZWxFdmVudC5oCmluZGV4IDVkYjBiY2U4ZmViLi4xNWY5NTg2NzE3MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpD
X0NMQVNTIE5TVmlldzsKIHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQ7CisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYldoZWVsRXZlbnQgOiBw
dWJsaWMgV2ViV2hlZWxFdmVudCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBM
QVRGT1JNKEdUSykKICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KGNvbnN0IE5hdGl2ZVdlYldoZWVs
RXZlbnQmKTsKICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KEdka0V2ZW50Kik7CisjZWxpZiBQTEFU
Rk9STShXUEUpCisgICAgTmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNf
ZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBL
SVQpCkBAIC01NSw2ICs2MSw4IEBAIHB1YmxpYzoKICAgICBHZGtFdmVudCogbmF0aXZlRXZlbnQo
KSBjb25zdCB7IHJldHVybiBtX25hdGl2ZUV2ZW50LmdldCgpOyB9CiAjZWxpZiBQTEFURk9STShJ
T1MpCiAgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiAwOyB9Cisj
ZWxpZiBQTEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0aXZlRXZlbnQoKSBjb25zdCB7
IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKaW5kZXggNThhYWVjMzFmZTMuLjll
ZmNlZjI4ZWQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzLmNwcApAQCAtODMsMTEgKzgzLDE0IEBACiAjaWYgUExBVEZPUk0oSU9TKQogI2luY2x1
ZGUgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JbnNwZWN0b3JPdmVy
bGF5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWxlY3Rpb25SZWN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KICNl
bmRpZiAvLyBQTEFURk9STShJT1MpCiAKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KKyNlbmRpZgorCiAjaWYgRU5BQkxF
KFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhUGxheWJh
Y2tUYXJnZXRDb250ZXh0Lmg+CiAjZW5kaWYKQEAgLTE0NzQsNiArMTQ3NywyMyBAQCBib29sIEFy
Z3VtZW50Q29kZXI8UGFzdGVib2FyZEltYWdlPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBh
c3RlYm9hcmRJbWFnZSYgcAogCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3ZvaWQgQXJn
dW1lbnRDb2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVy
LCBjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBlbmNvZGVyIDw8
IGNvbnRlbnQudGV4dDsKKyAgICBlbmNvZGVyIDw8IGNvbnRlbnQubWFya3VwOworfQorCitib29s
IEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlciwgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZShjb250ZW50LnRleHQpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShjb250ZW50Lm1hcmt1cCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKyNlbmRpZiAvLyBQTEFURk9STShXUEUpCisKIHZvaWQgQXJndW1l
bnRDb2RlcjxEaWN0YXRpb25BbHRlcm5hdGl2ZT46OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyLCBj
b25zdCBEaWN0YXRpb25BbHRlcm5hdGl2ZSYgZGljdGF0aW9uQWx0ZXJuYXRpdmUpCiB7CiAgICAg
ZW5jb2RlciA8PCBkaWN0YXRpb25BbHRlcm5hdGl2ZS5yYW5nZVN0YXJ0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCmluZGV4IDRhNjM2OWJhMjlmLi40
OTk3YTY0YWRkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaApAQCAtMTMxLDYgKzEzMSwxMiBAQCBzdHJ1Y3QgU291cE5ldHdvcmtQcm94eVNldHRp
bmdzOwogfQogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCituYW1lc3BhY2UgV2ViQ29yZSB7
CitzdHJ1Y3QgUGFzdGVib2FyZFdlYkNvbnRlbnRzOworfQorI2VuZGlmCisKICNpZiBFTkFCTEUo
Q09OVEVOVF9GSUxURVJJTkcpCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDb250ZW50Rmls
dGVyVW5ibG9ja0hhbmRsZXI7CkBAIC00MDgsNiArNDE0LDEzIEBAIHRlbXBsYXRlPD4gc3RydWN0
IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6U291cE5ldHdvcmtQcm94eVNldHRpbmdzPiB7CiB9Owog
I2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCit0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENv
ZGVyPFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50PiB7CisgICAgc3RhdGljIHZvaWQgZW5j
b2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAg
IHN0YXRpYyBib29sIGRlY29kZShEZWNvZGVyJiwgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRl
bnQmKTsKK307CisjZW5kaWYKKwogdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJD
b3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4gewogICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNv
ZGVyJiwgY29uc3QgV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKICAgICBzdGF0aWMg
Ym9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9u
cy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApp
bmRleCA3NTA2ZmFkOWQzYS4uMGIyOGMxNTdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaApAQCAtMzc2LDcgKzM3Niw3IEBACiAg
ICAgbWFjcm8oUGljdG9ncmFwaEZvbnRGYW1pbHksIHBpY3RvZ3JhcGhGb250RmFtaWx5LCBTdHJp
bmcsIFN0cmluZywgIkFwcGxlIENvbG9yIEVtb2ppIiwgIiIsICIiKSBcCiAgICAgXAogCi0jZWxp
ZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIAog
I2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRk9OVF9GQU1JTFlfUFJFRkVSRU5DRShtYWNybykgXAog
ICAgIG1hY3JvKFN0YW5kYXJkRm9udEZhbWlseSwgc3RhbmRhcmRGb250RmFtaWx5LCBTdHJpbmcs
IFN0cmluZywgIlRpbWVzIiwgIiIsICIiKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODY4M2I4MTJmM2IKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCkBA
IC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYktleWJvYXJk
RXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworTmF0aXZlV2ViS2V5Ym9hcmRFdmVudDo6TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChz
dHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKKyAgICA6IFdlYktleWJvYXJk
RXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJLZXlib2FyZEV2ZW50KGV2ZW50KSkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uYjRkOWQ0M2RlNWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKwor
I2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0
aXZlV2ViTW91c2VFdmVudDo6TmF0aXZlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYk1v
dXNlRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBkZXZp
Y2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMxNDE1MTU1Y2RmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50
V1BFLmNwcApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRpdmVX
ZWJUb3VjaEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYlRvdWNoRXZlbnQ6Ok5hdGl2ZVdlYlRvdWNoRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQorICAgIDogV2ViVG91Y2hFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYlRvdWNo
RXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFjdG9yKSkKKyAgICAsIG1fZmFsbGJhY2tUb3VjaFBv
aW50eyB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsLCAwLCAwLCAwLCAwIH0KK3sKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytp
KSB7CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAg
ICBpZiAocG9pbnQudHlwZSAhPSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKSB7Cisg
ICAgICAgICAgICBtX2ZhbGxiYWNrVG91Y2hQb2ludCA9IHBvaW50OworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhOTYyZWQ0ZGNjCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2
ZW50V1BFLmNwcApAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJXaGVlbEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2lu
Y2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYldoZWVsRXZl
bnQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBldmVu
dCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAgOiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50
RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQor
eworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDg3YTkyN2FiYjEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKQEAg
LTAsMCArMSw4NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKwor
I2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HTGliVXRpbGl0aWVzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIFN0cmluZyBnZXRFeGVjdXRhYmxlUGF0
aCgpCit7CisgICAgQ1N0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEN1cnJlbnRFeGVjdXRhYmxl
UGF0aCgpOworICAgIGlmICghZXhlY3V0YWJsZVBhdGguaXNOdWxsKCkpCisgICAgICAgIHJldHVy
biBkaXJlY3RvcnlOYW1lKHN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0
YWJsZVBhdGguZGF0YSgpKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3Ry
aW5nIGZpbmRXZWJLaXRQcm9jZXNzKGNvbnN0IGNoYXIqIHByb2Nlc3NOYW1lKQoreworICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJVF9FWEVDX1BB
VEgiKTsKKyAgICBpZiAoZXhlY0RpcmVjdG9yeSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1Bh
dGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNl
bnRhdGlvbihleGVjRGlyZWN0b3J5KSwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4
aXN0cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAg
fQorCisgICAgc3RhdGljIFN0cmluZyBleGVjdXRhYmxlUGF0aCA9IGdldEV4ZWN1dGFibGVQYXRo
KCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgeworICAgICAgICBTdHJpbmcg
cHJvY2Vzc1BhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZXhlY3V0YWJsZVBhdGgsIHBy
b2Nlc3NOYW1lKTsKKyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQorICAgICAg
ICAgICAgcmV0dXJuIHByb2Nlc3NQYXRoOworICAgIH0KKworICAgIHJldHVybiBwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihMSUJFWEVD
RElSKSwgcHJvY2Vzc05hbWUpOworfQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nl
c3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFV2ViUHJvY2VzcyIpOwor
fQorCitTdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQoreworICAgIHJldHVy
biBmaW5kV2ViS2l0UHJvY2VzcygiV1BFUGx1Z2luUHJvY2VzcyIpOworfQorCitTdHJpbmcgZXhl
Y3V0YWJsZVBhdGhPZk5ldHdvcmtQcm9jZXNzKCkKK3sKKyAgICByZXR1cm4gZmluZFdlYktpdFBy
b2Nlc3MoIldQRU5ldHdvcmtQcm9jZXNzIik7Cit9CisKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mRGF0YWJhc2VQcm9jZXNzKCkKK3sKKyAgICBy
ZXR1cm4gZmluZFdlYktpdFByb2Nlc3MoIldQRURhdGFiYXNlUHJvY2VzcyIpOworfQorI2VuZGlm
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9X
ZWJFdmVudEZhY3RvcnkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li43ODg3YTlmOGFjYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93
cGUvV2ViRXZlbnRGYWN0b3J5LmNwcApAQCAtMCwwICsxLDIxNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVk
ZSA8d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGlj
IFdlYkV2ZW50OjpNb2RpZmllcnMgbW9kaWZpZXJzRm9yRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9r
ZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAg
ICB1bnNpZ25lZCBldmVudE1vZGlmaWVycyA9IGV2ZW50LT5tb2RpZmllcnM7CisKKyAgICBpZiAo
ZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfY29udHJvbCkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpDb250cm9sS2V5OworICAgIGlmIChldmVudE1v
ZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9zaGlmdCkKKyAgICAgICAgbW9k
aWZpZXJzIHw9IFdlYkV2ZW50OjpTaGlmdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3
cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfYWx0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2Vi
RXZlbnQ6OkFsdEtleTsKKyAgICBpZiAoZXZlbnRNb2RpZmllcnMgJiB3cGVfaW5wdXRfa2V5Ym9h
cmRfbW9kaWZpZXJfbWV0YSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFdlYkV2ZW50OjpNZXRhS2V5
OworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KG1vZGlmaWVy
cyk7Cit9CisKK3N0YXRpYyBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgY29uc3QgY2hh
ciogc2luZ2xlQ2hhcmFjdGVyID0gd3BlX2lucHV0X3NpbmdsZV9jaGFyYWN0ZXJfZm9yX2tleV9l
dmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBp
ZiAoc2luZ2xlQ2hhcmFjdGVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKHNpbmdsZUNoYXJhY3Rl
cik7CisKKyAgICBnbG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxndW5pY2hhcjI+IHVjaGFy
MTYoZ191Y3M0X3RvX3V0ZjE2KCZldmVudC0+dW5pY29kZSwgMSwgMCwgJmxlbmd0aCwgbnVsbHB0
cikpOworICAgIGlmICh1Y2hhcjE2KQorICAgICAgICByZXR1cm4gU3RyaW5nKHVjaGFyMTYuZ2V0
KCkpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworc3RhdGljIFN0cmluZyBpZGVudGlmaWVy
U3RyaW5nRm9yS2V5RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQp
Cit7CisgICAgY29uc3QgY2hhciogaWRlbnRpZmllciA9IHdwZV9pbnB1dF9pZGVudGlmaWVyX2Zv
cl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCk7
CisgICAgaWYgKGlkZW50aWZpZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoaWRlbnRpZmllcik7
CisKKyAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIGV2ZW50LT51bmljb2RlKTsK
K30KKworV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJk
RXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCit7CisgICAgU3Ry
aW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyA9IHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2
ZW50KGV2ZW50KTsKKyAgICBTdHJpbmcgaWRlbnRpZmllclN0cmluZyA9IGlkZW50aWZpZXJTdHJp
bmdGb3JLZXlFdmVudChldmVudCk7CisKKyAgICByZXR1cm4gV2ViS2V5Ym9hcmRFdmVudChldmVu
dC0+cHJlc3NlZCA/IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZlbnQ6OktleVVwLAorICAgICAg
ICBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmll
clN0cmluZywKKyAgICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVu
dCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KSwKKyAgICAgICAg
ZXZlbnQtPmtleUNvZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCisgICAgICAgIG1vZGlmaWVy
c0ZvckV2ZW50KGV2ZW50KSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJNb3VzZUV2ZW50IFdlYkV2
ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJf
ZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAgICBXZWJFdmVudDo6
VHlwZSB0eXBlID0gV2ViRXZlbnQ6Ok5vVHlwZTsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7
CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAg
dHlwZSA9IFdlYkV2ZW50OjpNb3VzZU1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3Bl
X2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b246CisgICAgICAgIHR5cGUgPSBldmVudC0+
c3RhdGUgPyBXZWJFdmVudDo6TW91c2VEb3duIDogV2ViRXZlbnQ6Ok1vdXNlVXA7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICBXZWJNb3VzZUV2ZW50OjpC
dXR0b24gYnV0dG9uID0gV2ViTW91c2VFdmVudDo6Tm9CdXR0b247CisgICAgc3dpdGNoIChldmVu
dC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb246
CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAg
aWYgKGV2ZW50LT5idXR0b24gPT0gMSkKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZl
bnQ6OkxlZnRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMikKKyAg
ICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOworICAgICAgICBl
bHNlIGlmIChldmVudC0+YnV0dG9uID09IDMpCisgICAgICAgICAgICBidXR0b24gPSBXZWJNb3Vz
ZUV2ZW50OjpNaWRkbGVCdXR0b247CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0
X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBjbGlja0NvdW50ID0gKHR5cGUgPT0gV2ViRXZlbnQ6Ok1v
dXNlRG93bikgPyAxIDogMDsKKworICAgIC8vIEZJWE1FOiBQcm9wZXIgYnV0dG9uIHN1cHBvcnQu
IE1vZGlmaWVycy4gZGVsdGFYL1kvWi4gQ2xpY2sgY291bnQuCisgICAgV2ViQ29yZTo6SW50UG9p
bnQgcG9zaXRpb24oZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8g
ZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHJldHVybiBXZWJNb3VzZUV2ZW50KHR5cGUsIGJ1dHRv
biwgcG9zaXRpb24sIHBvc2l0aW9uLAorICAgICAgICAwLCAwLCAwLCBjbGlja0NvdW50LCBzdGF0
aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPigwKSwgZXZlbnQtPnRpbWUpOworfQorCitXZWJX
aGVlbEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKK3sKKyAg
ICAvLyBGSVhNRTogV2Ugc2hvdWxkbid0IGhhcmQtY29kZSB0aGlzLgorICAgIGVudW0gQXhpcyB7
CisgICAgICAgIFZlcnRpY2FsLAorICAgICAgICBIb3Jpem9udGFsLAorICAgICAgICBTbW9vdGgK
KyAgICB9OworCisgICAgV2ViQ29yZTo6RmxvYXRTaXplIHdoZWVsVGlja3M7CisgICAgV2ViQ29y
ZTo6RmxvYXRTaXplIGRlbHRhOworICAgIHN3aXRjaCAoZXZlbnQtPmF4aXMpIHsKKyAgICBjYXNl
IFZlcnRpY2FsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2
ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSkpOworICAgICAgICBkZWx0YSA9IHdo
ZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxz
UGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSG9yaXpvbnRhbDoKKyAg
ICAgICAgd2hlZWxUaWNrcyA9IFdlYkNvcmU6OkZsb2F0U2l6ZShldmVudC0+dmFsdWUgLyBzdGQ6
OmFicyhldmVudC0+dmFsdWUpLCAwKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAg
ICAgICBkZWx0YS5zY2FsZShXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFNtb290aDoKKyAgICAgICAgd2hlZWxUaWNrcyA9
IFdlYkNvcmU6OkZsb2F0U2l6ZSgwLCBldmVudC0+dmFsdWUgLyBkZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9OworCisgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9zaXRp
b24oZXZlbnQtPngsIGV2ZW50LT55KTsKKyAgICBwb3NpdGlvbi5zY2FsZSgxIC8gZGV2aWNlU2Nh
bGVGYWN0b3IpOworICAgIHJldHVybiBXZWJXaGVlbEV2ZW50KFdlYkV2ZW50OjpXaGVlbCwgcG9z
aXRpb24sIHBvc2l0aW9uLAorICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgV2ViV2hlZWxFdmVu
dDo6U2Nyb2xsQnlQaXhlbFdoZWVsRXZlbnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmll
cnM+KDApLCBldmVudC0+dGltZSk7Cit9CisKK3N0YXRpYyBXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludDo6VG91Y2hQb2ludFN0YXRlIHN0YXRlRm9yVG91Y2hQb2ludChpbnQgbWFpbkV2ZW50
SWQsIGNvbnN0IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiBwb2ludCkKK3sKKyAg
ICBpZiAocG9pbnQtPmlkICE9IG1haW5FdmVudElkKQorICAgICAgICByZXR1cm4gV2ViS2l0OjpX
ZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKKworICAgIHN3aXRjaCAocG9p
bnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246Cisg
ICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hQcmVzc2Vk
OworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBy
ZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoTW92ZWQ7CisgICAgY2Fz
ZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6
V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFJlbGVhc2VkOworICAgIGNhc2Ugd3BlX2lucHV0
X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cisg
ICAgICAgIGJyZWFrOworICAgIH07CisKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRv
dWNoUG9pbnQ6OlRvdWNoU3RhdGlvbmFyeTsKK30KKworV2ViVG91Y2hFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCog
ZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5
cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBj
YXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHR5cGUgPSBXZWJF
dmVudDo6VG91Y2hTdGFydDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hNb3Zl
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3Vw
OgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6OlRvdWNoRW5kOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIFZlY3RvcjxXZWJLaXQ6OldlYlBsYXRmb3JtVG91
Y2hQb2ludD4gdG91Y2hQb2ludHM7CisgICAgdG91Y2hQb2ludHMucmVzZXJ2ZUNhcGFjaXR5KGV2
ZW50LT50b3VjaHBvaW50c19sZW5ndGgpOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IGV2ZW50LT50b3VjaHBvaW50c19sZW5ndGg7ICsraSkgeworICAgICAgICBhdXRvJiBwb2ludCA9
IGV2ZW50LT50b3VjaHBvaW50c1tpXTsKKyAgICAgICAgaWYgKHBvaW50LnR5cGUgPT0gd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIFdlYkNvcmU6OkludFBvaW50IHBvaW50Q29vcmRpbmF0ZXM7CisgICAgICAgIHBvaW50Q29v
cmRpbmF0ZXMuc2NhbGUoMSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgdG91Y2hQb2lu
dHMudW5jaGVja2VkQXBwZW5kKAorICAgICAgICAgICAgV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNo
UG9pbnQocG9pbnQuaWQsIHN0YXRlRm9yVG91Y2hQb2ludChldmVudC0+aWQsICZwb2ludCksCisg
ICAgICAgICAgICAgICAgcG9pbnRDb29yZGluYXRlcywgcG9pbnRDb29yZGluYXRlcykpOworICAg
IH0KKworICAgIHJldHVybiBXZWJUb3VjaEV2ZW50KHR5cGUsIFdURk1vdmUodG91Y2hQb2ludHMp
LCBXZWJFdmVudDo6TW9kaWZpZXJzKDApLCBldmVudC0+dGltZSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJjNmRjODQ5YTAyCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3Rvcnku
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV2ViRXZlbnRGYWN0b3J5X2gKKyNkZWZpbmUgV2ViRXZlbnRG
YWN0b3J5X2gKKworI2luY2x1ZGUgIldlYkV2ZW50LmgiCisKK3N0cnVjdCB3cGVfaW5wdXRfYXhp
c19ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50OworCituYW1l
c3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViRXZlbnRGYWN0b3J5IHsKK3B1YmxpYzoKKyAgICBz
dGF0aWMgV2ViS2V5Ym9hcmRFdmVudCBjcmVhdGVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVf
aW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKKyAgICBzdGF0aWMgV2ViTW91c2VFdmVudCBjcmVhdGVX
ZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBzdGF0aWMgV2ViV2hlZWxFdmVudCBjcmVhdGVXZWJXaGVlbEV2
ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
KTsKKyAgICBzdGF0aWMgV2ViVG91Y2hFdmVudCBjcmVhdGVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3
cGVfaW5wdXRfdG91Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdlYkV2ZW50RmFjdG9yeV9oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUu
LjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2Fz
dC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5lIFByb3h5aW5nUmVmUHRyPFdlYkdyYW1tYXJE
ZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6OkdyYW1tYXJEZXRhaWwmIGdyYW0KICNpbmNsdWRl
ICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisjaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykK
KyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNlbmRpZgorCiAjZW5kaWYgLy8gV0tBUElDYXN0
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElD
YXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLQVBJQ2FzdFdQ
RS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjhhMWU3MTcwMAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tB
UElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLQVBJQ2FzdFdQRV9oCisjZGVmaW5lIFdL
QVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElDYXN0X2gKKyNlcnJvciAiUGxlYXNlICNpbmNs
dWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5k
aWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0
ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhXS1ZpZXdSZWYsIFdLV1BFOjpWaWV3KQorCitp
bmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MgdG9WaWV3U3RhdGVGbGFncyhXS1Zp
ZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1bnNpZ25lZCB2aWV3U3RhdGVGbGFncyA9IDA7
CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tWaWV3U3RhdGVJc0luV2luZG93KQorICAgICAg
ICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93Owor
ICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSkKKyAgICAgICAgdmll
d1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNWaXNpYmxlOworCisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzPih2aWV3U3Rh
dGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8vIFdLQVBJQ2FzdFdQRV9oCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcxNWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwCkBAIC0wLDAgKzEsNTkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldLVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNv
bmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUobnVs
bHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3Jl
YXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBXS1Bh
Z2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdL
V1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkpOworfQor
CitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4g
dG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsKK30KKwordm9pZCBXS1ZpZXdTZXRWaWV3U3Rh
dGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRlIHZpZXdTdGF0ZSkKK3sKKyAgICB0b0ltcGwo
dmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0ZUZsYWdzKHZpZXdTdGF0ZSkpOworfQorCit2
b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IFdLVmlld0NsaWVu
dEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwodmlldyktPmluaXRpYWxpemVDbGllbnQoY2xp
ZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUv
V0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NTllYzJiNDViNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgK
QEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisjZGVmaW5lIFdLVmlld19oCisKKyNpbmNsdWRl
IDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworI2lm
ZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsKKyNlbmRpZgorCitzdHJ1Y3Qgd3BlX3ZpZXdf
YmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1JlZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmln
dXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFj
a2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCosIFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOwor
CitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dldFBhZ2UoV0tWaWV3UmVmKTsKKworZW51bSB7
CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9IDEgPDwgMCwKKyAgICBrV0tWaWV3U3RhdGVJ
c1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRlZiB1aW50MzJfdCBXS1ZpZXdTdGF0ZTsKKwor
V0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0YXRlKFdLVmlld1JlZiwgV0tWaWV3U3RhdGUp
OworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFtZURpc3BsYXllZCkoV0tWaWV3UmVmIHZpZXcs
IGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRC
YXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBjb25zdCB2b2lkKiBjbGllbnRJbmZvOworfSBX
S1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAg
V0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAgLy8gdmVyc2lvbiAwCisgICAgV0tWaWV3RnJh
bWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9IFdLVmlld0NsaWVudFYwOworCitXS19FWFBP
UlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdLVmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50
QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tW
aWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
aCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFn
ZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3Bl
L3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5KFdLV1BFOjpWaWV3JiB2aWV3KQorICAg
IDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Ojp+Q29tcG9z
aXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1fdmlldy5wYWdlKCkucHJvY2VzcygpLnByb2Nl
c3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3ZpZXcucGFnZSgpLnBhZ2VJRCgpLCAqdGhp
cyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmVzdGFibGlzaENvbm5lY3Rp
b24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9uSGFuZGxlKQoreworICAgIGNvbm5lY3Rpb25I
YW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3ZpZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJfaG9z
dF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5n
TWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI4
OTYwOWQzZmE1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaApAQCAtMCwwICsxLDYyIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9z
aXRpbmdNYW5hZ2VyUHJveHlfaAorI2RlZmluZSBDb21wb3NpdGluZ01hbmFnZXJQcm94eV9oCisK
KyNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUu
aD4KKworbmFtZXNwYWNlIElQQyB7CitjbGFzcyBBdHRhY2htZW50OworfQorCituYW1lc3BhY2Ug
V0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIENv
bXBvc2l0aW5nTWFuYWdlclByb3h5IGZpbmFsIDogcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVy
IHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFnZXJQcm94eSk7Citw
dWJsaWM6CisgICAgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmKTsKKyAgICB2
aXJ0dWFsIH5Db21wb3NpdGluZ01hbmFnZXJQcm94eSgpOworCisgICAgdm9pZCBpbml0aWFsaXpl
KCk7CisKK3ByaXZhdGU6CisgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikg
b3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6
OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVy
PiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJsaXNoQ29ubmVjdGlv
bihJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3ZpZXc7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIENvbXBvc2l0aW5nTWFuYWdlclByb3h5
X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0
aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5YTAwNTU3Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBAQAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlh
IFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElF
RAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwK
KyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2Fn
ZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkgeworICAgIEVzdGFibGlzaENvbm5lY3Rpb24o
KSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGUpCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YzYwYzQ2Yzc5MwotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdB
cmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMu
aCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHku
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BFOjpEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQ
cm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBw
YWdlKQoreworfQorCitEcmF3aW5nQXJlYVByb3h5V1BFOjp+RHJhd2luZ0FyZWFQcm94eVdQRSgp
Cit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRD
aGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQ
cm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmlzVmFs
aWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJveHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRy
YXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJv
eHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9zaXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2ViUGFn
ZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRj
aEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6ZnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpF
cnJvcik+IGNhbGxiYWNrRnVuY3Rpb24pCit7CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5pc1Zh
bGlkKCkpIHsKKyAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9yOjpP
d25lcldhc0ludmFsaWRhdGVkKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbY2FsbGJhY2tGdW5jdGlvbl0geyBjYWxsYmFja0Z1bmN0aW9u
KENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOyB9KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVBy
b3h5V1BFOjp1cGRhdGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRl
SW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVBy
b3h5V1BFOjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVT
dGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjplbnRl
ckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQs
IGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCit7CisgICAgQVNTRVJU
KCFiYWNraW5nU3RvcmVTdGF0ZUlEKTsKKworICAgIG1fbGF5ZXJUcmVlQ29udGV4dCA9IGxheWVy
VHJlZUNvbnRleHQ7CisgICAgbV93ZWJQYWdlUHJveHkuZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZShsYXllclRyZWVDb250ZXh0KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BF
OjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3Rh
dGVJRCwgY29uc3QgVXBkYXRlSW5mbyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJv
eHlXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJv
eHlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjAzMDIwODU4
M2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9E
cmF3aW5nQXJlYVByb3h5V1BFLmgKQEAgLTAsMCArMSw2MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIERyYXdpbmdBcmVhUHJveHlX
UEVfaAorI2RlZmluZSBEcmF3aW5nQXJlYVByb3h5V1BFX2gKKworI2luY2x1ZGUgIkRyYXdpbmdB
cmVhUHJveHkuaCIKKworI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIERyYXdpbmdBcmVhUHJveHlXUEUgZmluYWwgOiBwdWJsaWMgRHJh
d2luZ0FyZWFQcm94eSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgRHJhd2luZ0FyZWFQcm94eVdQ
RShXZWJQYWdlUHJveHkmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVByb3h5V1BFKCk7CisK
K3ByaXZhdGU6CisgICAgLy8gRHJhd2luZ0FyZWFQcm94eQorICAgIHZvaWQgZGV2aWNlU2NhbGVG
YWN0b3JEaWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2b2lkIHNpemVEaWRDaGFuZ2UoKSBvdmVy
cmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlv
bjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisgICAgLy8gSVBDIG1l
c3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRVcGRhdGVCYWNr
aW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJ
bmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZW50ZXJB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBleGl0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgVXBk
YXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpIG92ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJlZSBjb250ZXh0Lgor
ICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsKKworfQorCisKKyNl
bmRpZiAvLyBEcmF3aW5nQXJlYVByb3h5V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uODRlMTAyZWNmMWIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5jcHAKQEAgLTAsMCArMSwz
MjEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisKKyNpbmNs
dWRlICJEcmF3aW5nQXJlYVByb3h5V1BFLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVu
dC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKyNpbmNsdWRlICJTY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNpbmNsdWRlICJXZWJD
b250ZXh0TWVudVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdLV1BFOjpWaWV3JiB2aWV3KQorICAg
IDogbV92aWV3KHZpZXcpCisgICAgLCBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyKHN0ZDo6bWFr
ZV91bmlxdWU8U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI+KCkpCit7Cit9CisKK1BhZ2VDbGllbnRJ
bXBsOjp+UGFnZUNsaWVudEltcGwoKSA9IGRlZmF1bHQ7CisKK3N0ZDo6dW5pcXVlX3B0cjxEcmF3
aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCit7
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFQcm94eVdQRT4obV92aWV3
LnBhZ2UoKSk7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldFZpZXdOZWVkc0Rpc3BsYXko
Y29uc3QgV2ViQ29yZTo6UmVnaW9uJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVx
dWVzdFNjcm9sbChjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmLCBib29sKQoreworfQorCitXZWJDb3JlOjpGbG9hdFBvaW50IFBhZ2VDbGllbnRJbXBs
Ojp2aWV3U2Nyb2xsUG9zaXRpb24oKQoreworICAgIHJldHVybiB7IH07Cit9CisKK1dlYkNvcmU6
OkludFNpemUgUGFnZUNsaWVudEltcGw6OnZpZXdTaXplKCkKK3sKKyAgICByZXR1cm4gbV92aWV3
LnNpemUoKTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZlKCkK
K3sKKyAgICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZpdHlTdGF0
ZTo6V2luZG93SXNBY3RpdmU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0ZvY3Vz
ZWQoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc0ZvY3VzZWQ7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2li
bGUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpJc1Zpc2libGU7Cit9CisKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0luV2lu
ZG93KCkKK3sKKyAgICByZXR1cm4gbV92aWV3LnZpZXdTdGF0ZSgpICYgV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6SXNJbldpbmRvdzsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0Rp
ZEV4aXQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3Mo
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwYWdlQ2xvc2VkKCkKK3sKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQoreworfQorCit2b2lkIFBh
Z2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1l
KGNvbnN0IFN0cmluZyYsIGJvb2wpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRs
ZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5KikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3Im
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNl
TW92ZXMoYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3Bv
cnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRlcyYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJF
ZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcygpCit7Cit9CisKK2Jvb2wgUGFn
ZUNsaWVudEltcGw6OmNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbykKK3sKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVVbmRvUmVk
byhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQ
YWdlQ2xpZW50SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQorCitXZWJDb3JlOjpGbG9hdFJlY3Qg
UGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHJlY3QpCit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNvcmU6OkludFBvaW50IFBh
Z2VDbGllbnRJbXBsOjpzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBw
b2ludCkKK3sKKyAgICByZXR1cm4gcG9pbnQ7Cit9CisKK1dlYkNvcmU6OkludFJlY3QgUGFnZUNs
aWVudEltcGw6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkK
K3sKKyAgICByZXR1cm4gcmVjdDsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhL
ZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50JiwgYm9vbCkKK3sKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdlYlRvdWNo
RXZlbnQmIHRvdWNoRXZlbnQsIGJvb2wgd2FzRXZlbnRIYW5kbGVkKQoreworICAgIGlmICh3YXNF
dmVudEhhbmRsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGNvbnN0IHN0cnVjdCB3cGVfaW5w
dXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50ID0gdG91Y2hFdmVudC5uYXRpdmVGYWxsYmFj
a1RvdWNoUG9pbnQoKTsKKyAgICBpZiAodG91Y2hQb2ludC0+dHlwZSA9PSB3cGVfaW5wdXRfdG91
Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICByZXR1cm47CisKKyAgICBhdXRvJiBwYWdlID0g
bV92aWV3LnBhZ2UoKTsKKworICAgIGlmIChtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyLT5oYW5k
bGVFdmVudCh0b3VjaFBvaW50KSkgeworICAgICAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQqIGF4aXNFdmVudCA9IG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmF4aXNFdmVudCgpOwor
ICAgICAgICBpZiAoYXhpc0V2ZW50LT50eXBlICE9IHdwZV9pbnB1dF9heGlzX2V2ZW50X3R5cGVf
bnVsbCkKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdl
YldoZWVsRXZlbnQoYXhpc0V2ZW50LCBtX3ZpZXcucGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkp
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudCBwb2ludGVyRXZlbnR7CisgICAgICAgIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5
cGVfbnVsbCwgdG91Y2hQb2ludC0+dGltZSwKKyAgICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQ
b2ludC0+eSwKKyAgICAgICAgMSwgMAorICAgIH07CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQt
PnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAg
ICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0
b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBwb2ludGVy
RXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOworICAgICAg
ICBwb2ludGVyRXZlbnQuc3RhdGUgPSAxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdw
ZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQu
c3RhdGUgPSAwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2
ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBwYWdlLmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VF
dmVudCgmcG9pbnRlckV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3Qg
TmF0aXZlV2ViV2hlZWxFdmVudCYpCit7Cit9CisKK1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4g
UGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCit7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6
dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29u
dGV4dE1lbnVQcm94eShXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRh
JiwgY29uc3QgVXNlckRhdGEmKQoreworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29u
c3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6
OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQm
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1
c3RvbUNvbnRlbnRQcm92aWRlcihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVu
Y2UmKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJl
Z2luKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxs
RW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRF
bmQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNu
YXBzaG90KFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1l
KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlv
bkZvck1haW5GcmFtZShTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6cmVmVmlldygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRl
cmVmVmlldygpCit7Cit9CisKKyNpZiBFTkFCTEUoVklERU8pCitib29sIFBhZ2VDbGllbnRJbXBs
OjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1
ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKyNlbmRpZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKQoreworfQorCitXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBsOjp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkK
K3sKKyAgICByZXR1cm4gV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRS
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4yOGVkODMzZDJlYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTAsMCArMSwxMzAgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRl
ZiBQYWdlQ2xpZW50SW1wbF9oCisjZGVmaW5lIFBhZ2VDbGllbnRJbXBsX2gKKworI2luY2x1ZGUg
IlBhZ2VDbGllbnQuaCIKKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjsKKworY2xh
c3MgUGFnZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudCB7CitwdWJsaWM6Cisg
ICAgUGFnZUNsaWVudEltcGwoV0tXUEU6OlZpZXcmKTsKKyAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50
SW1wbCgpOworCitwcml2YXRlOgorICAgIC8vIFBhZ2VDbGllbnQKKyAgICB2aXJ0dWFsIHN0ZDo6
dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29y
ZTo6UmVnaW9uJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RTY3JvbGwoY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgYm9vbCkg
b3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3U2Nyb2xsUG9zaXRpb24oKSBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFNpemUgdmlld1NpemUoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCBib29sIGlzVmlld0ZvY3VzZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wg
aXNWaWV3VmlzaWJsZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdJbldpbmRv
dygpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRFeGl0KCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbGF1bmNoUHJvY2VzcygpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHBy
ZWZlcmVuY2VzRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHRvb2xUaXBD
aGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJyaWRlOworCisgICAgdmly
dHVhbCB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5Kikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudFNp
emUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lk
IHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0Q3Vyc29ySGlkZGVuVW50aWxNb3VzZU1vdmVzKGJvb2wpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBdHRyaWJ1dGVzJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0
ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJv
eHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBjbGVhckFsbEVkaXRD
b21tYW5kcygpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBjYW5VbmRvUmVkbyhXZWJQYWdl
UHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBleGVjdXRlVW5k
b1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
V2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZlcnRUb0RldmljZVNwYWNlKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6RmxvYXRSZWN0IGNvbnZl
cnRUb1VzZXJTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgcm9vdFZp
ZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0
dWFsIHZvaWQgZG9uZVdpdGhLZXlFdmVudChjb25zdCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50Jiwg
Ym9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25z
dCBOYXRpdmVXZWJUb3VjaEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lk
IHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZl
bnQmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBj
cmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUo
Q09OVEVYVF9NRU5VUykKKyAgICB2aXJ0dWFsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRl
eHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpIG92ZXJyaWRlOworI2VuZGlmCisK
KyAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBM
YXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250
ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJikgb3Zl
cnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBuYXZp
Z2F0aW9uR2VzdHVyZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlRGlkRW5kKCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2ViQmFja0Zv
cndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZW1vdmVOYXZp
Z2F0aW9uR2VzdHVyZVNuYXBzaG90KCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAg
dmlydHVhbCB2b2lkIGRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdl
QmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcmVmVmlldygp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBkZXJlZlZpZXcoKSBvdmVycmlkZTsKKworI2lm
IEVOQUJMRShWSURFTykKKyAgICB2aXJ0dWFsIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1p
c3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1
Z2luc1Blcm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1YWwg
dm9pZCBkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwg
V2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB1c2VySW50ZXJmYWNlTGF5b3V0
RGlyZWN0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lkIGRpZENoYW5nZUNsaXBUb1NhZmVBcmVh
KGJvb2wpIG92ZXJyaWRlIHsgfQorCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxTY3JvbGxHZXN0dXJlQ29udHJvbGxlcj4gbV9zY3JvbGxHZXN0dXJlQ29u
dHJvbGxlcjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGFnZUNs
aWVudEltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
U2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5kYTEyYzhlYjM1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmNwcApAQCAt
MCwwICsxLDgwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxHZXN0dXJlQ29udHJv
bGxlci5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxiYXIuaD4KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2Jvb2wgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI6OmhhbmRsZUV2ZW50KGNvbnN0
IHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3KiB0b3VjaFBvaW50KQoreworICAgIHN3
aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50
X3R5cGVfZG93bjoKKyAgICAgICAgbV9zdGFydC50aW1lID0gdG91Y2hQb2ludC0+dGltZTsKKyAg
ICAgICAgbV9zdGFydC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9zdGFydC55ID0gdG91
Y2hQb2ludC0+eTsKKyAgICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAg
IG1fb2Zmc2V0LnkgPSB0b3VjaFBvaW50LT55OworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Y2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIGlmICghbV9o
YW5kbGluZykgeworICAgICAgICAgICAgaW50MzJfdCBkZWx0YVggPSB0b3VjaFBvaW50LT54IC0g
bV9zdGFydC54OworICAgICAgICAgICAgaW50MzJfdCBkZWx0YVkgPSB0b3VjaFBvaW50LT55IC0g
bV9zdGFydC55OworICAgICAgICAgICAgdWludDMyX3QgZGVsdGFUaW1lID0gdG91Y2hQb2ludC0+
dGltZSAtIG1fc3RhcnQudGltZTsKKworICAgICAgICAgICAgaW50IHBpeGVsc1BlckxpbmVTdGVw
ID0gV2ViQ29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpOworICAgICAgICAgICAg
bV9oYW5kbGluZyA9IHN0ZDo6YWJzKGRlbHRhWCkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAg
ICAgICAgICAgICB8fCBzdGQ6OmFicyhkZWx0YVkpID49IHBpeGVsc1BlckxpbmVTdGVwCisgICAg
ICAgICAgICAgICAgfHwgZGVsdGFUaW1lID49IDIwMDsKKyAgICAgICAgfQorICAgICAgICBpZiAo
bV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAg
ICAgd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9tb3Rpb24sCisgICAgICAgICAgICAgICAgdG91
Y2hQb2ludC0+dGltZSwgbV9zdGFydC54LCBtX3N0YXJ0LnksCisgICAgICAgICAgICAgICAgMiwg
KHRvdWNoUG9pbnQtPnkgLSBtX29mZnNldC55KQorICAgICAgICAgICAgfTsKKyAgICAgICAgICAg
IG1fb2Zmc2V0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICAgICAgbV9vZmZzZXQueSA9IHRv
dWNoUG9pbnQtPnk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV91cDoK
KyAgICAgICAgaWYgKG1faGFuZGxpbmcpIHsKKyAgICAgICAgICAgIG1faGFuZGxpbmcgPSBmYWxz
ZTsKKyAgICAgICAgICAgIG1fYXhpc0V2ZW50ID0geworICAgICAgICAgICAgICAgIHdwZV9pbnB1
dF9heGlzX2V2ZW50X3R5cGVfbnVsbCwKKyAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCAwCisg
ICAgICAgICAgICB9OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1cmVDb250cm9sbGVyLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3ZDE3MjRhYWRjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNv
bnRyb2xsZXIuaApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3BlL2lucHV0
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdHJ1Y3QgU2Nyb2xsR2VzdHVyZUNvbnRyb2xs
ZXIgeworcHVibGljOgorICAgIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyKCkgPSBkZWZhdWx0Owor
CisgICAgc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiBheGlzRXZlbnQoKSB7IHJldHVybiAm
bV9heGlzRXZlbnQ7IH0KKworICAgIGJvb2wgaGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdwZV9p
bnB1dF90b3VjaF9ldmVudF9yYXcqKTsKKworcHJpdmF0ZToKKyAgICBzdHJ1Y3QgeworICAgICAg
ICB1aW50MzJfdCB0aW1lIHsgMCB9OworICAgICAgICBpbnQzMl90IHggeyAwIH07CisgICAgICAg
IGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fc3RhcnQ7CisKKyAgICBzdHJ1Y3QgeworICAgICAg
ICBpbnQzMl90IHggeyAwIH07CisgICAgICAgIGludDMyX3QgeSB7IDAgfTsKKyAgICB9IG1fb2Zm
c2V0OworCisgICAgYm9vbCBtX2hhbmRsaW5nIHsgZmFsc2UgfTsKKyAgICBzdHJ1Y3Qgd3BlX2lu
cHV0X2F4aXNfZXZlbnQgbV9heGlzRXZlbnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjdmOWYxMmNkMmQyCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTAs
MCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKworI2luY2x1
ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJUb3VjaEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2lu
Y2x1ZGUgIldlYlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5j
bHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitu
YW1lc3BhY2UgV0tXUEUgeworCitWaWV3OjpWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBi
YWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9uJiBiYXNlQ29uZmlndXJhdGlvbikK
KyAgICA6IG1fcGFnZUNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPigqdGhp
cykpCisgICAgLCBtX3NpemV7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxhZ3MoV2Vi
Q29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rpdml0eVN0
YXRlOjpJc0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUgfCBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGluZ01hbmFn
ZXJQcm94eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29uZmlndXJh
dGlvbi5jb3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9uLT5wcmVm
ZXJlbmNlcygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+cGFnZUdy
b3VwKCkpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFnZUdyb3Vw
KCktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZlcmVuY2Vz
KHByZWZlcmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAgICAgIHBy
ZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgcHJlZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgICAgICBw
cmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7CisgICAgICAg
IHByZWZlcmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNlcy0+c2V0
RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBwb29sID0g
Y29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBvb2wtPmNy
ZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CisKKyAg
ICBtX2JhY2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAgICBtX2Jh
Y2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNr
ZW5kX2NsaWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXplCisgICAg
ICAgIFtdKHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQpCisgICAg
ICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4o
ZGF0YSk7CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3aWR0aCwg
aGVpZ2h0KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAorICAgICAg
ICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3ID0gKnJl
aW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFtZURpc3Bs
YXllZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9iYWNr
ZW5kX2NsaWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xpZW50ID0g
eworICAgICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0
YSwgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSk7Cisg
ICAgICAgICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6TmF0aXZl
V2ViS2V5Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVf
cG9pbnRlcl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0g
cmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2Uu
aGFuZGxlTW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIHBhZ2Uu
ZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfYXhp
c19ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZl
bnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVpbnRlcnBy
ZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFuZGxlV2hl
ZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2aWNlU2Nh
bGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hfZXZlbnQK
KyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCogZXZl
bnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0
PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3VjaEV2ZW50
KFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rv
cigpKSk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3NldF9pbnB1
dF9jbGllbnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3cGVfdmll
d19iYWNrZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5LT5pbml0
aWFsaXplV2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3ZpZXdfYmFj
a2VuZF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6ZUNsaWVu
dChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQuaW5pdGlh
bGl6ZShjbGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sKKyAgICBt
X2NsaWVudC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7CisgICAg
aWYgKG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94eS0+ZHJh
d2luZ0FyZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6Oklu
dFNpemUoKSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpBY3Rpdml0
eVN0YXRlOjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5k
b3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKworICAgIFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0YXRlRmxh
Z3MgXiAoZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3MgPSBkZWZh
dWx0RmxhZ3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAgIG1fcGFn
ZVByb3h5LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjM3MzZlOTNjYzUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5oCkBAIC0wLDAgKzEsODYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXUEVWaWV3X2gKKyNkZWZpbmUgV1BFVmlld19oCisKKyNp
bmNsdWRlICJBUElPYmplY3QuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5o
IgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5Lmgi
CisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlT
dGF0ZS5oPgorI2luY2x1ZGUgPG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0
cnVjdCB3cGVfdmlld19iYWNrZW5kOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBh
Z2VHcm91cDsKK2NsYXNzIFdlYlByb2Nlc3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgewor
CitjbGFzcyBWaWV3IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6
Vmlldz4geworcHVibGljOgorICAgIHN0YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3
X2JhY2tlbmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCisgICAgeworICAgICAgICByZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJh
dGlvbik7CisgICAgfQorCisgICAgLy8gQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxp
emVDbGllbnQoY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5
ZWQoKTsKKworICAgIFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFn
ZVByb3h5OyB9CisKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0
dXJuIG1fYmFja2VuZDsgfQorCisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fc2l6ZTsgfQorCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Z3Mgdmlld1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZv
aWQgc2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0
ZToKKyAgICBWaWV3KHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29u
ZmlndXJhdGlvbiYpOworICAgIHZpcnR1YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKTsKKworICAgIFZpZXdDbGllbnQgbV9jbGllbnQ7
CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpQYWdlQ2xpZW50SW1wbD4gbV9wYWdlQ2xp
ZW50OworICAgIFJlZlB0cjxXZWJLaXQ6OldlYlBhZ2VQcm94eT4gbV9wYWdlUHJveHk7CisgICAg
V2ViQ29yZTo6SW50U2l6ZSBtX3NpemU7CisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Z3MgbV92aWV3U3RhdGVGbGFnczsKKworICAgIFdlYktpdDo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eTsKKyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2Vu
ZCogbV9iYWNrZW5kOworfTsKKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKKworI2VuZGlmIC8vIFdQ
RVZpZXdfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BF
Vmlld0NsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3
Q2xpZW50LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWYxZjM3
ZDllN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dw
ZS9XUEVWaWV3Q2xpZW50LmNwcApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJXUEVWaWV3Q2xpZW50LmgiCisKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAi
V0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV0tCYXNlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK3ZvaWQgVmlld0NsaWVudDo6ZnJhbWVEaXNwbGF5
ZWQoVmlldyYgdmlldykKK3sKKyAgICBpZiAobV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQpCisgICAg
ICAgIG1fY2xpZW50LmZyYW1lRGlzcGxheWVkKHRvQVBJKCZ2aWV3KSwgbV9jbGllbnQuYmFzZS5j
bGllbnRJbmZvKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uODRkZmQ1YjE1NWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50LmgKQEAgLTAsMCArMSw1
MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIFdQRVZpZXdDbGllbnRfaAorI2RlZmluZSBXUEVWaWV3Q2xpZW50X2gKKworI2luY2x1
ZGUgIkFQSUNsaWVudC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKworbmFtZXNwYWNl
IEFQSSB7Cit0ZW1wbGF0ZTw+IHN0cnVjdCBDbGllbnRUcmFpdHM8V0tWaWV3Q2xpZW50QmFzZT4g
eworICAgIHR5cGVkZWYgc3RkOjp0dXBsZTxXS1ZpZXdDbGllbnRWMD4gVmVyc2lvbnM7Cit9Owor
fQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3OworCitjbGFzcyBWaWV3Q2xpZW50
IDogcHVibGljIEFQSTo6Q2xpZW50PFdLVmlld0NsaWVudEJhc2U+IHsKK3B1YmxpYzoKKyAgICB2
b2lkIGZyYW1lRGlzcGxheWVkKFZpZXcmKTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAor
CisKKyNlbmRpZiAvLyBXUEVWaWV3Q2xpZW50X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJj
ZUJ1bmRsZS54bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU4MjA5
MmJiZmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKQEAgLTAsMCArMSw2IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPGdyZXNvdXJjZXM+CisgIDxn
cmVzb3VyY2UgcHJlZml4PSIvb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSI+CisgICAg
PGZpbGU+aW5zcGVjdG9yUGFnZUluZGV4Lmh0bWw8L2ZpbGU+CisgIDwvZ3Jlc291cmNlPgorPC9n
cmVzb3VyY2VzPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJv
Y2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94
eS5jcHAKaW5kZXggMjdiZWMzNjIzMTUuLmZkODQ4Y2NlZDM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgdm9p
ZCBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6Okxh
dW5jaE9wdGlvbnMmIGxhdW5jaE8KICAgICBpZiAobV9hbHdheXNSdW5zQXRCYWNrZ3JvdW5kUHJp
b3JpdHkpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRk
KEFTQ0lJTGl0ZXJhbCgiYWx3YXlzLXJ1bnMtYXQtYmFja2dyb3VuZC1wcmlvcml0eSIpLCAidHJ1
ZSIpOwogCi0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjaWYg
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
KQogICAgIGNvbnN0IGNoYXIqIHZhcm5hbWU7CiAgICAgc3dpdGNoIChsYXVuY2hPcHRpb25zLnBy
b2Nlc3NUeXBlKSB7CiAgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWI6
CkBAIC03OSw3ICs3OSw3IEBAIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlv
bnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPCiAgICAgY29uc3QgY2hh
ciogcHJvY2Vzc0NtZFByZWZpeCA9IGdldGVudih2YXJuYW1lKTsKICAgICBpZiAocHJvY2Vzc0Nt
ZFByZWZpeCAmJiAqcHJvY2Vzc0NtZFByZWZpeCkKICAgICAgICAgbGF1bmNoT3B0aW9ucy5wcm9j
ZXNzQ21kUHJlZml4ID0gU3RyaW5nOjpmcm9tVVRGOChwcm9jZXNzQ21kUHJlZml4KTsKLSNlbmRp
ZiAvLyBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBMQVRGT1JNKEdUSykKKyNlbmRpZiAvLyBF
TkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkp
CiB9CiAKIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmNvbm5lY3QoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9y
U2VydmVyLmgKaW5kZXggOTM5YTdlMjFiNzguLjA3NDg3YmEzZTBlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVj
dG9yU2VydmVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZENsb3Nl
V2ViU29ja2V0Q29ubmVjdGlvbihXZWJTb2NrZXRTZXJ2ZXJDb25uZWN0aW9uKikgZmluYWw7CiAK
ICAgICBib29sIHBsYXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwgVmVj
dG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKLSNpZiBQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBidWlsZFBhZ2VM
aXN0KFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSk7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUv
V2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNw
ZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI2ODNlM2Q3MTYwCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci93cGUvV2ViSW5zcGVjdG9y
U2VydmVyV1BFLmNwcApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MiBTYW1zdW5nIEVsZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5ECisgKiBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
ICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENP
UFlSSUdIVCBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorICogQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZl
ci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisKKyNpbmNsdWRlICJXZWJJbnNw
ZWN0b3JQcm94eS5oIgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgPGNzdGRp
bz4KKyNpbmNsdWRlIDxnbW9kdWxlLmg+CisjaW5jbHVkZSA8bXV0ZXg+CisjaW5jbHVkZSA8d3Rm
L05ldmVyRGVzdHJveWVkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1N0cmluZ0J1aWxkZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jv
b2wgV2ViSW5zcGVjdG9yU2VydmVyOjpwbGF0Zm9ybVJlc291cmNlRm9yUGF0aChjb25zdCBTdHJp
bmcmIHBhdGgsIFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sKKyAg
ICAvLyBUaGUgcGFnZSBsaXN0IGNvbnRhaW5zIGFuIHVuZm9ybWF0ZWQgbGlzdCBvZiBwYWdlcyB0
aGF0IGNhbiBiZSBpbnNwZWN0ZWQgd2l0aCBhIGxpbmsgdG8gb3BlbiBhIHNlc3Npb24uCisgICAg
aWYgKHBhdGggPT0gIi9wYWdlbGlzdC5qc29uIikgeworICAgICAgICBidWlsZFBhZ2VMaXN0KGRh
dGEsIGNvbnRlbnRUeXBlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgc3Rh
dGljIHN0ZDo6b25jZV9mbGFnIGZsYWc7CisgICAgc3RkOjpjYWxsX29uY2UoZmxhZywgW10gewor
ICAgICAgICBHTW9kdWxlKiByZXNvdXJjZXNNb2R1bGUgPSBnX21vZHVsZV9vcGVuKCJsaWJXUEVX
ZWJJbnNwZWN0b3JSZXNvdXJjZXMuc28iLCBHX01PRFVMRV9CSU5EX0xBWlkpOworICAgICAgICBp
ZiAoIXJlc291cmNlc01vZHVsZSkgeworICAgICAgICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBs
b2FkaW5nIGxpYldQRVdlYkluc3BlY3RvclJlc291cmNlcy5zbzogJXMiLCBnX21vZHVsZV9lcnJv
cigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIGdfbW9kdWxl
X21ha2VfcmVzaWRlbnQocmVzb3VyY2VzTW9kdWxlKTsKKyAgICB9KTsKKworICAgIC8vIFBvaW50
IHRoZSBkZWZhdWx0IHBhdGggdG8gYSBmb3JtYXR0ZWQgcGFnZSB0aGF0IHF1ZXJpZXMgdGhlIHBh
Z2UgbGlzdCBhbmQgZGlzcGxheSB0aGVtLgorICAgIENTdHJpbmcgcmVzb3VyY2VQYXRoID0gbWFr
ZVN0cmluZygiL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiLCAocGF0aCA9PSAiLyIg
PyAiL2luc3BlY3RvclBhZ2VJbmRleC5odG1sIiA6IHBhdGgpKS51dGY4KCk7CisgICAgaWYgKHJl
c291cmNlUGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgR1VuaXF1
ZU91dFB0cjxHRXJyb3I+IGVycm9yOworICAgIEdSZWZQdHI8R0J5dGVzPiByZXNvdXJjZUJ5dGVz
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHJlc291cmNlUGF0aC5kYXRhKCks
IEdfUkVTT1VSQ0VfTE9PS1VQX0ZMQUdTX05PTkUsICZlcnJvci5vdXRQdHIoKSkpOworICAgIGlm
ICghcmVzb3VyY2VCeXRlcykgeworICAgICAgICBTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiPCFET0NUWVBFIGh0bWw+PGh0bWw+PGhlYWQ+PC9o
ZWFkPjxib2R5PkVycm9yOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoZXJyb3It
PmNvZGUpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1
aWxkZXIuYXBwZW5kKGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgb2NjdXJyZWQgZHVyaW5nIGZldGNoaW5nIGluc3BlY3RvciByZXNvdXJjZSBmaWxlcy48
L2JvZHk+PC9odG1sPiIpOworCisgICAgICAgIENTdHJpbmcgZXJyb3JIVE1MID0gYnVpbGRlci50
b1N0cmluZygpLnV0ZjgoKTsKKyAgICAgICAgZGF0YS5hcHBlbmQoZXJyb3JIVE1MLmRhdGEoKSwg
ZXJyb3JIVE1MLmxlbmd0aCgpKTsKKyAgICAgICAgY29udGVudFR5cGUgPSAidGV4dC9odG1sOyBj
aGFyc2V0PXV0Zi04IjsKKworICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIGZldGNoaW5nIHdl
Ymluc3BlY3RvciByZXNvdXJjZSBmaWxlczogJWQsICVzIiwgZXJyb3ItPmNvZGUsIGVycm9yLT5t
ZXNzYWdlKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGdzaXplIHJlc291
cmNlRGF0YVNpemU7CisgICAgZ2NvbnN0cG9pbnRlciByZXNvdXJjZURhdGEgPSBnX2J5dGVzX2dl
dF9kYXRhKHJlc291cmNlQnl0ZXMuZ2V0KCksICZyZXNvdXJjZURhdGFTaXplKTsKKyAgICBkYXRh
LmFwcGVuZChzdGF0aWNfY2FzdDxjb25zdCBjaGFyKj4ocmVzb3VyY2VEYXRhKSwgcmVzb3VyY2VE
YXRhU2l6ZSk7CisKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtaW1lVHlwZShnX2NvbnRlbnRfdHlw
ZV9ndWVzcyhyZXNvdXJjZVBhdGguZGF0YSgpLCBzdGF0aWNfY2FzdDxjb25zdCBndWNoYXIqPihy
ZXNvdXJjZURhdGEpLCByZXNvdXJjZURhdGFTaXplLCBudWxscHRyKSk7CisgICAgY29udGVudFR5
cGUgPSBtaW1lVHlwZS5nZXQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJJbnNw
ZWN0b3JTZXJ2ZXI6OmJ1aWxkUGFnZUxpc3QoVmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNv
bnRlbnRUeXBlKQoreworICAgIC8vIGNocm9tZWRldnRvb2xzIChodHRwOi8vY29kZS5nb29nbGUu
Y29tL3AvY2hyb21lZGV2dG9vbHMpIDAuMy44IGV4cGVjdGVkIEpTT04gZm9ybWF0OgorICAgIC8v
IHsKKyAgICAvLyAgInRpdGxlIjogIkZvbyIsCisgICAgLy8gICJ1cmwiOiAiaHR0cDovL2ZvbyIs
CisgICAgLy8gICJkZXZ0b29sc0Zyb250ZW5kVXJsIjogIi9NYWluLmh0bWw/d3M9bG9jYWxob3N0
OjkyMjIvZGV2dG9vbHMvcGFnZS8xIiwKKyAgICAvLyAgIndlYlNvY2tldERlYnVnZ2VyVXJsIjog
IndzOi8vbG9jYWxob3N0OjkyMjIvZGV2dG9vbHMvcGFnZS8xIgorICAgIC8vIH0sCisKKyAgICBT
dHJpbmdCdWlsZGVyIGJ1aWxkZXI7CisgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJbICIpOwor
ICAgIENsaWVudE1hcDo6aXRlcmF0b3IgZW5kID0gbV9jbGllbnRNYXAuZW5kKCk7CisgICAgZm9y
IChDbGllbnRNYXA6Oml0ZXJhdG9yIGl0ID0gbV9jbGllbnRNYXAuYmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CisgICAgICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZSA9IGl0LT52YWx1ZS0+aW5z
cGVjdGVkUGFnZSgpOworICAgICAgICBpZiAoaXQgIT0gbV9jbGllbnRNYXAuYmVnaW4oKSkKKyAg
ICAgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5h
cHBlbmRMaXRlcmFsKCJ7IFwiaWRcIjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgXCJ0aXRsZVwiOiBc
IiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkudGl0
bGUoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwidXJsXCI6IFwiIik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVV
UkwoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwiaW5zcGVjdG9yVXJs
XCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD9wYWdl
PSIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJkZXZ0b29sc0Zyb250ZW5kVXJsXCI6IFwiIik7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL01haW4uaHRtbD93cz0iKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQoYmluZEFkZHJlc3MoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiOiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihwb3J0KCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9kZXZ0b29scy9wYWdlLyIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFs
KCJcIiwgXCJ3ZWJTb2NrZXREZWJ1Z2dlclVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIndzOi8vIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kKGJpbmRBZGRyZXNz
KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIv
ZGV2dG9vbHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIgfSIpOworICAgIH0KKyAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiBdIik7CisgICAgQ1N0cmluZyBjc3RyID0gYnVpbGRlci50b1N0
cmluZygpLnV0ZjgoKTsKKyAgICBkYXRhLmFwcGVuZChjc3RyLmRhdGEoKSwgY3N0ci5sZW5ndGgo
KSk7CisgICAgY29udGVudFR5cGUgPSAiYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD11dGYtOCI7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAppbmRleCAzOTk1MDY5
NDhlZi4uYmE3N2MyYWM3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9M
YXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVibGljOgogICAg
ICAgICBQcm9jZXNzVHlwZSBwcm9jZXNzVHlwZTsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz4gZXh0cmFJbml0aWFsaXphdGlvbkRhdGE7CiAKLSNpZiBFTkFCTEUoREVWRUxPUEVSX01P
REUpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIChQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgICAgIFN0cmluZyBwcm9jZXNzQ21kUHJl
Zml4OwogI2VuZGlmCiAgICAgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNzAyM2M1NDIyMTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQ
RS5jcHAKQEAgLTAsMCArMSwxNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEw
IE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgTU9UT1JPTEEgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgTU9UT1JPTEEg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0xhdW5jaGVyLmgi
CisKKyNpbmNsdWRlICJDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQ
YXRoLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8ZXJybm8u
aD4KKyNpbmNsdWRlIDxmY250bC5oPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3cGUv
cmVuZGVyZXItaG9zdC5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1
ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CisKKy8vIEZJWE1FOiBNZXJnZSB3aXRoIFByb2Nlc3NMYXVuY2hlckd0az8KKwordXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgdm9p
ZCBjaGlsZFNldHVwRnVuY3Rpb24oZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgaW50IHNvY2tl
dCA9IEdQT0lOVEVSX1RPX0lOVCh1c2VyRGF0YSk7CisgICAgY2xvc2Uoc29ja2V0KTsKK30KKwor
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQoreworICAgIEdQaWQgcGlkID0g
MDsKKworICAgIElQQzo6Q29ubmVjdGlvbjo6U29ja2V0UGFpciBzb2NrZXRQYWlyID0gSVBDOjpD
b25uZWN0aW9uOjpjcmVhdGVQbGF0Zm9ybUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uOjpDb25u
ZWN0aW9uT3B0aW9uczo6U2V0Q2xvZXhlY09uU2VydmVyKTsKKworICAgIFN0cmluZyBleGVjdXRh
YmxlUGF0aDsKKyAgICBDU3RyaW5nIHJlYWxFeGVjdXRhYmxlUGF0aDsKKyAgICBzd2l0Y2ggKG1f
bGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSkgeworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQ
cm9jZXNzVHlwZTo6V2ViOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRo
T2ZXZWJQcm9jZXNzKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVy
OjpQcm9jZXNzVHlwZTo6TmV0d29yazoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRh
YmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKTsKKyAgICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKERB
VEFCQVNFX1BST0NFU1MpCisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpE
YXRhYmFzZToKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mRGF0YWJh
c2VQcm9jZXNzKCk7CisgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgZGVmYXVsdDoKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBy
ZWFsRXhlY3V0YWJsZVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBh
dGgpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdrU29ja2V0KGdfc3RyZHVwX3ByaW50ZigiJWQi
LCBzb2NrZXRQYWlyLmNsaWVudCkpOworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IHdwZVNvY2tldDsK
KworICAgIHVuc2lnbmVkIG5hcmdzID0gNDsgLy8gc2l6ZSBvZiB0aGUgYXJndiBhcnJheSBmb3Ig
Z19zcGF3bl9hc3luYygpCisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWIpIHsKKyAgICAgICAgd3BlU29ja2V0ID0g
R1VuaXF1ZVB0cjxnY2hhcj4oZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHdwZV9yZW5kZXJlcl9ob3N0
X2NyZWF0ZV9jbGllbnQoKSkpOworICAgICAgICBuYXJncyA9IDU7CisgICAgfQorCisjaWYgRU5B
QkxFKERFVkVMT1BFUl9NT0RFKQorICAgIFZlY3RvcjxDU3RyaW5nPiBwcmVmaXhBcmdzOworICAg
IGlmICghbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXguaXNOdWxsKCkpIHsKKyAgICAg
ICAgVmVjdG9yPFN0cmluZz4gc3BsaXRBcmdzOworICAgICAgICBtX2xhdW5jaE9wdGlvbnMucHJv
Y2Vzc0NtZFByZWZpeC5zcGxpdCgnICcsIHNwbGl0QXJncyk7CisgICAgICAgIGZvciAoYXV0byBp
dCA9IHNwbGl0QXJncy5iZWdpbigpOyBpdCAhPSBzcGxpdEFyZ3MuZW5kKCk7IGl0KyspCisgICAg
ICAgICAgICBwcmVmaXhBcmdzLmFwcGVuZChpdC0+dXRmOCgpKTsKKyAgICAgICAgbmFyZ3MgKz0g
cHJlZml4QXJncy5zaXplKCk7CisgICAgfQorI2VuZGlmCisKKyAgICBjaGFyKiogYXJndiA9IGdf
bmV3YShjaGFyKiwgbmFyZ3MpOworICAgIHVuc2lnbmVkIGkgPSAwOworI2lmIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkKKyAgICAvLyBJZiB0aGVyZSdzIGEgcHJlZml4IGNvbW1hbmQsIHB1dCBpdCBi
ZWZvcmUgdGhlIHJlc3Qgb2YgdGhlIGFyZ3MuCisgICAgZm9yIChhdXRvIGl0ID0gcHJlZml4QXJn
cy5iZWdpbigpOyBpdCAhPSBwcmVmaXhBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICBhcmd2W2kr
K10gPSBjb25zdF9jYXN0PGNoYXIqPihpdC0+ZGF0YSgpKTsKKyNlbmRpZgorICAgIGFyZ3ZbaSsr
XSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KHJlYWxFeGVjdXRhYmxlUGF0aC5kYXRhKCkpOworICAgIGFy
Z3ZbaSsrXSA9IHdrU29ja2V0LmdldCgpOworICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vz
c1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2ViKQorICAgICAgICBhcmd2
W2krK10gPSB3cGVTb2NrZXQuZ2V0KCk7CisgICAgYXJndltpKytdID0gbnVsbHB0cjsKKworICAg
IEdVbmlxdWVPdXRQdHI8R0Vycm9yPiBlcnJvcjsKKyAgICBpZiAoIWdfc3Bhd25fYXN5bmMoMCwg
YXJndiwgMCwgR19TUEFXTl9MRUFWRV9ERVNDUklQVE9SU19PUEVOLCBjaGlsZFNldHVwRnVuY3Rp
b24sIEdJTlRfVE9fUE9JTlRFUihzb2NrZXRQYWlyLnNlcnZlciksICZwaWQsICZlcnJvci5vdXRQ
dHIoKSkpIHsKKyAgICAgICAgZ19wcmludGVycigiVW5hYmxlIHRvIGZvcmsgYSBuZXcgV2ViUHJv
Y2VzczogJXMuXG4iLCBlcnJvci0+bWVzc2FnZSk7CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIH0KKworICAgIC8vIERvbid0IGV4cG9zZSB0aGUgcGFyZW50IHNvY2tldCB0byBw
b3RlbnRpYWwgZnV0dXJlIGNoaWxkcmVuLgorICAgIHdoaWxlIChmY250bChzb2NrZXRQYWlyLmNs
aWVudCwgRl9TRVRGRCwgRkRfQ0xPRVhFQykgPT0gLTEpCisgICAgICAgIFJFTEVBU0VfQVNTRVJU
KGVycm5vICE9IEVJTlRSKTsKKworICAgIGNsb3NlKHNvY2tldFBhaXIuY2xpZW50KTsKKyAgICBt
X3Byb2Nlc3NJZGVudGlmaWVyID0gcGlkOworCisgICAgLy8gV2UndmUgZmluaXNoZWQgbGF1bmNo
aW5nIHRoZSBwcm9jZXNzLCBtZXNzYWdlIGJhY2sgdG8gdGhlIG1haW4gcnVuIGxvb3AuCisgICAg
UmVmUHRyPFByb2Nlc3NMYXVuY2hlcj4gcHJvdGVjdG9yKHRoaXMpOworICAgIElQQzo6Q29ubmVj
dGlvbjo6SWRlbnRpZmllciBzZXJ2ZXJTb2NrZXQgPSBzb2NrZXRQYWlyLnNlcnZlcjsKKyAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RvciwgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsK
KyAgICAgICAgcHJvdGVjdG9yLT5kaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzKHBpZCwgc2VydmVy
U29ja2V0KTsKKyAgICB9KTsKK30KKwordm9pZCBQcm9jZXNzTGF1bmNoZXI6OnRlcm1pbmF0ZVBy
b2Nlc3MoKQoreworICAgIGlmIChtX2lzTGF1bmNoaW5nKSB7CisgICAgICAgIGludmFsaWRhdGUo
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghbV9wcm9jZXNzSWRlbnRpZmll
cikKKyAgICAgICAgcmV0dXJuOworCisgICAga2lsbChtX3Byb2Nlc3NJZGVudGlmaWVyLCBTSUdL
SUxMKTsKKyAgICBtX3Byb2Nlc3NJZGVudGlmaWVyID0gMDsKK30KKwordm9pZCBQcm9jZXNzTGF1
bmNoZXI6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAppbmRleCAx
YzhlZjQ2M2NjMi4uODQ3ZmI1YzMyMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0yMjQsNyArMjI0LDcgQEAgcHJpdmF0ZToKIAogICAgIFdl
YlByZWZlcmVuY2VzJiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAotI2lmIFBM
QVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lk
IGNyZWF0ZUluc3BlY3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRlSW5zcGVjdG9yV2luZG93
VGl0bGUoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
c3RlYm9hcmRQcm94eS5oCmluZGV4IDI2NTU3MzYxZjU1Li43NzJlMTA5MTVmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaApAQCAtOTQsNiArOTQs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgc2V0UGFzdGVib2FyZFN0cmluZ0ZvclR5cGUoY29uc3Qg
U3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29u
c3QgU3RyaW5nJiwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICAgICB2b2lkIHNldFBhc3Rl
Ym9hcmRCdWZmZXJGb3JUeXBlKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJiwgdWludDY0
X3Qgc2l6ZSwgdWludDY0X3QmIG5ld0NoYW5nZUNvdW50KTsKICNlbmRpZgorCiAjaWYgUExBVEZP
Uk0oR1RLKQogICAgIHZvaWQgd3JpdGVUb0NsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9h
cmROYW1lLCBjb25zdCBXZWJTZWxlY3Rpb25EYXRhJik7CiAgICAgdm9pZCByZWFkRnJvbUNsaXBi
b2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBXZWJTZWxlY3Rpb25EYXRhJik7CkBA
IC0xMDEsNyArMTAyLDE0IEBAIHByaXZhdGU6CiAgICAgV2ViRnJhbWVQcm94eSogbV9wcmltYXJ5
U2VsZWN0aW9uT3duZXIgeyBudWxscHRyIH07CiAgICAgV2ViRnJhbWVQcm94eSogbV9mcmFtZVdy
aXRpbmdUb0NsaXBib2FyZCB7IG51bGxwdHIgfTsKICNlbmRpZiAvLyBQTEFURk9STShHVEspCi0g
ICAgCisKKyNpZiBQTEFURk9STShXUEUpCisgICAgdm9pZCBnZXRQYXN0ZWJvYXJkVHlwZXMoVmVj
dG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcyk7CisgICAgdm9pZCByZWFkU3RyaW5nRnJvbVBh
c3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdU
Rjo6U3RyaW5nJik7CisgICAgdm9pZCB3cml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3Qg
V2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKTsKKyAgICB2b2lkIHdyaXRlU3RyaW5nVG9Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYpOwor
I2VuZGlmCisKICAgICBXZWJQcm9jZXNzUHJveHlMaXN0IG1fd2ViUHJvY2Vzc1Byb3h5TGlzdDsK
IH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJk
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2Fy
ZFByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDczNmEwYWQ0NTFjLi43MDE1NDQzZWE4ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1l
c3NhZ2VzLmluCkBAIC01NSw0ICs1NSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJQYXN0ZWJvYXJkUHJv
eHkgewogICAgIFdyaXRlVG9DbGlwYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmROYW1lLCBzdHJ1Y3Qg
V2ViS2l0OjpXZWJTZWxlY3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogICAgIFJlYWRGcm9t
Q2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSkgLT4gKHN0cnVjdCBXZWJLaXQ6OldlYlNl
bGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpCiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQ
RSkKKyAgICBHZXRQYXN0ZWJvYXJkVHlwZXMoKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpCisg
ICAgUmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBTdHJpbmcgcGFzdGVi
b2FyZFR5cGUpIC0+IChTdHJpbmcgc3RyaW5nKQorICAgIFdyaXRlV2ViQ29udGVudFRvUGFzdGVi
b2FyZChzdHJ1Y3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQgY29udGVudCkKKyAgICBX
cml0ZVN0cmluZ1RvUGFzdGVib2FyZChTdHJpbmcgcGFzdGVib2FyZFR5cGUsIFN0cmluZyB0ZXh0
KQorI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAppbmRleCAwZDMwMmRkYWIxMy4uNGQzMjliNDBmMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIFdlYlByb2Nlc3NQ
b29sOjpXZWJQcm9jZXNzUG9vbChBUEk6OlByb2Nlc3NQb29sQ29uZmlndXJhdGlvbiYgY29uZmln
dXJhdGlvbikKICAgICBub3RpZnlUaGlzV2ViUHJvY2Vzc1Bvb2xXYXNDcmVhdGVkKCk7CiB9CiAK
LSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0o
V1BFKQogdm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjAzNzBmZjJiYTFjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAK
QEAgLTAsMCArMSwxNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRleHRDaGVja2VyLmgi
CisKKyNpbmNsdWRlICJUZXh0Q2hlY2tlclN0YXRlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJ
bXBsZW1lbnRlZC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK3N0YXRpYyBUZXh0Q2hlY2tlclN0YXRlIHRleHRDaGVja2VyU3RhdGU7CisKK2Nv
bnN0IFRleHRDaGVja2VyU3RhdGUmIFRleHRDaGVja2VyOjpzdGF0ZSgpCit7CisgICAgcmV0dXJu
IHRleHRDaGVja2VyU3RhdGU7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldFRlc3RpbmdNb2Rl
KGJvb2wpCit7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzVGVzdGluZ01vZGUoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFRleHRDaGVj
a2VyOjppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nQWxsb3dlZCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldENv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpncmFtbWFyQ2hlY2tpbmdFbmFi
bGVkU3RhdGVDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworaW50
NjRfdCBUZXh0Q2hlY2tlcjo6dW5pcXVlU3BlbGxEb2N1bWVudFRhZyhXZWJQYWdlUHJveHkqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFRl
eHRDaGVja2VyOjpjbG9zZVNwZWxsRG9jdW1lbnRXaXRoVGFnKGludDY0X3QpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2hlY2tTcGVsbGluZ09mU3Ry
aW5nKGludDY0X3QsIFN0cmluZ1ZpZXcsIGludDMyX3QmLCBpbnQzMl90JikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja0dyYW1tYXJPZlN0cmlu
ZyhpbnQ2NF90LCBTdHJpbmdWaWV3LCBWZWN0b3I8V2ViQ29yZTo6R3JhbW1hckRldGFpbD4mLCBp
bnQzMl90JiwgaW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBU
ZXh0Q2hlY2tlcjo6c3BlbGxpbmdVSUlzU2hvd2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnRvZ2dsZVNwZWxs
aW5nVUlJc1Nob3dpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4
dENoZWNrZXI6OnVwZGF0ZVNwZWxsaW5nVUlXaXRoTWlzc3BlbGxlZFdvcmQoaW50NjRfdCwgY29u
c3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVj
a2VyOjp1cGRhdGVTcGVsbGluZ1VJV2l0aEdyYW1tYXJTdHJpbmcoaW50NjRfdCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgR3JhbW1hckRldGFpbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6Z2V0R3Vlc3Nlc0ZvcldvcmQoaW50NjRfdCwgY29uc3QgU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiwgaW50MzJfdCwgVmVjdG9yPFN0cmluZz4mLCBib29sKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmxlYXJuV29yZChp
bnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGV4dENoZWNrZXI6Omlnbm9yZVdvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpyZXF1ZXN0Q2hlY2tp
bmdPZlN0cmluZyhQYXNzUmVmUHRyPFRleHRDaGVja2VyQ29tcGxldGlvbj4sIGludDMyX3QpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BF
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41YmFlZWUzYzE3Zgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVj
dG9yUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJJbnNwZWN0b3JQcm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRl
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNw
ZWN0b3JQYWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JXaW5kb3coKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3BlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EaWRDbG9zZUZvckNyYXNoKCkK
K3sKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sK
K30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1IaWRlKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5n
VG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6cGxhdGZvcm1CcmluZ0luc3BlY3RlZFBhZ2VUb0Zyb250KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUlzRnJv
bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3Qg
U3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViSW5zcGVj
dG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwoKQoreworICAgIHJldHVybiBTdHJpbmcoInJlc291
cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sIik7Cit9CisK
K1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yVGVzdFBhZ2VVUkwoKQoreworICAg
IHJldHVybiBTdHJpbmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZh
Y2UvVGVzdC5odG1sIik7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9y
QmFzZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNw
ZWN0b3IvVXNlckludGVyZmFjZS8iKTsKK30KKwordW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2goKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtRGV0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93
RHJhZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGJvb2wsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0
dGFjaEF2YWlsYWJpbGl0eUNoYW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy93cGUvV2ViUGFnZVByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uNGEyMDJhYmViNGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisKKyNpbmNsdWRlICJXZWJzaXRlRGF0
YVN0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlBhZ2VQcm94eTo6c3RhbmRh
cmRVc2VyQWdlbnQoY29uc3QgU3RyaW5nJikKK3sKKyAgICByZXR1cm4gIk1vemlsbGEvNS4wIChM
aW51eDsgeDg2XzY0IEdOVS9MaW51eCkgQXBwbGVXZWJLaXQvNjAxLjEgKEtIVE1MLCBsaWtlIEdl
Y2tvKSBWZXJzaW9uLzguMCBTYWZhcmkvNjAxLjEiOworfQorCit2b2lkIFdlYlBhZ2VQcm94eTo6
c2F2ZVJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpS
ZWNlbnRTZWFyY2g+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYlBh
Z2VQcm94eTo6bG9hZFJlY2VudFNlYXJjaGVzKGNvbnN0IFN0cmluZyYsIFZlY3RvcjxXZWJDb3Jl
OjpSZWNlbnRTZWFyY2g+JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnBsYXRmb3JtUmVtb3ZlUmVjZW50U2VhcmNoZXMoc3RkOjpjaHJvbm86
OnN5c3RlbV9jbG9jazo6dGltZV9wb2ludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZWRpdG9yU3RhdGVDaGFuZ2VkKGNvbnN0IEVkaXRvclN0YXRl
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFBy
b3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2FyZFBy
b3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOGQzZDBl
YjQ2ZDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dl
YlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViUGFzdGVib2FyZFByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtUGFzdGVib2FyZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7Cit2b2lkIFdlYlBhc3Rl
Ym9hcmRQcm94eTo6Z2V0UGFzdGVib2FyZFR5cGVzKFZlY3RvcjxTdHJpbmc+JiBwYXN0ZWJvYXJk
VHlwZXMpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkuZ2V0VHlwZXMocGFzdGVib2FyZFR5
cGVzKTsKK30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgV1RGOjpT
dHJpbmcmIHZhbHVlKQoreworICAgIHZhbHVlID0gUGxhdGZvcm1QYXN0ZWJvYXJkKCkucmVhZFN0
cmluZyhpbmRleCwgcGFzdGVib2FyZFR5cGUpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94
eTo6d3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRX
ZWJDb250ZW50JiBjb250ZW50KQoreworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLndyaXRlKGNv
bnRlbnQpOworfQorCit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6d3JpdGVTdHJpbmdUb1Bhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIFBsYXRmb3JtUGFzdGVib2FyZCgpLndyaXRlKHBhc3RlYm9hcmRUeXBlLCB0ZXh0KTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5mZjgxZmNkYTFjZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwCkBAIC0wLDAgKzEsODcgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzLmgiCisKKyNpbmNsdWRlIDxX
ZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybUluaXRpYWxpemVTdG9yZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVTdHJpbmdW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlQm9vbFZh
bHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVVSW50MzJWYWx1ZUZvcktl
eShjb25zdCBTdHJpbmcmLCB1aW50MzJfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZURvdWJsZVZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYsIGRvdWJsZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUZsb2F0VmFsdWVGb3JLZXkoY29uc3QgU3Ry
aW5nJiwgZmxvYXQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBXZWJQcmVm
ZXJlbmNlczo6cGxhdGZvcm1HZXRTdHJpbmdVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwg
U3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1HZXRCb29sVXNlclZhbHVlRm9yS2V5KGNv
bnN0IFN0cmluZyYsIGJvb2wmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldFVJbnQzMlVzZXJW
YWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCB1aW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRm
b3JtR2V0RG91YmxlVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGRvdWJsZSYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQ
cm9jZXNzUG9vbFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nl
c3NQb29sV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmRl
NGYzMTcyNDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NQb29sV1BFLmNwcApAQCAtMCwwICsxLDE2MyBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBD
b3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEgTW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcyBMdGQuIEFs
bCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKworI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmlndXJh
dGlvbi5oIgorI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01l
c3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdlclByb3h5LmgiCisjaW5jbHVkZSAi
V2ViSW5zcGVjdG9yU2VydmVyLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgPFdlYkNv
cmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNp
bmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKKy8vIEZJWE1FOiBNZXJnZSB3aXRoIFdl
YlByb2Nlc3NQb29sR3RrPyBBYnN0cmFjdCB0aGUgY29tbW9uIHBhcnRzPworCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworI2lmIEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQorc3RhdGljIHZvaWQgaW5p
dEluc3BlY3RvclNlcnZlcigpCit7CisgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWQgPSBmYWxz
ZTsKKyAgICBpZiAoaW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGluaXRpYWxp
emVkID0gdHJ1ZTsKKyAgICBTdHJpbmcgc2VydmVyQWRkcmVzcyhnX2dldGVudigiV0VCS0lUX0lO
U1BFQ1RPUl9TRVJWRVIiKSk7CisKKyAgICBpZiAoIXNlcnZlckFkZHJlc3MuaXNOdWxsKCkpIHsK
KyAgICAgICAgU3RyaW5nIGJpbmRBZGRyZXNzID0gIjEyNy4wLjAuMSI7CisgICAgICAgIHVuc2ln
bmVkIHNob3J0IHBvcnQgPSAyOTk5OworCisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdDsK
KyAgICAgICAgc2VydmVyQWRkcmVzcy5zcGxpdCgnOicsIHJlc3VsdCk7CisKKyAgICAgICAgaWYg
KHJlc3VsdC5zaXplKCkgPT0gMikgeworICAgICAgICAgICAgYmluZEFkZHJlc3MgPSByZXN1bHRb
MF07CisgICAgICAgICAgICBib29sIG9rID0gZmFsc2U7CisgICAgICAgICAgICBwb3J0ID0gcmVz
dWx0WzFdLnRvSW50KCZvayk7CisgICAgICAgICAgICBpZiAoIW9rKSB7CisgICAgICAgICAgICAg
ICAgcG9ydCA9IDI5OTk7CisgICAgICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBwYXJz
ZSB0aGUgcG9ydC4gVXNlIDI5OTkgaW5zdGVhZC4iKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fSBlbHNlCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlICVzLCB3cm9uZyBm
b3JtYXQ/IFVzZSAxMjcuMC4wLjE6Mjk5OSBpbnN0ZWFkLiIsIHNlcnZlckFkZHJlc3MudXRmOCgp
LmRhdGEoKSk7CisKKyAgICAgICAgaWYgKCFXZWJJbnNwZWN0b3JTZXJ2ZXI6OnNpbmdsZXRvbigp
Lmxpc3RlbihiaW5kQWRkcmVzcywgcG9ydCkpCisgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxk
bid0IHN0YXJ0IGxpc3RlbmluZyBvbjogSVAgYWRkcmVzcz0lcywgcG9ydD0lZC4iLCBiaW5kQWRk
cmVzcy51dGY4KCkuZGF0YSgpLCBwb3J0KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IExPRyhJbnNwZWN0b3JTZXJ2ZXIsICJUbyBzdGFydCBpbnNwZWN0b3Igc2VydmVyIHNldCBXRUJL
SVRfSU5TUEVDVE9SX1NFUlZFUiB0byAxMjcuMC4wLjE6Mjk5OSBmb3IgZXhhbXBsZS4iKTsKK30K
KyNlbmRpZgorCitXVEY6OlN0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZh
dWx0QXBwbGljYXRpb25DYWNoZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
Y2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAi
d3BlIiwgImFwcGNhY2hlIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdG
cm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwor
V1RGOjpTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdE1lZGlhQ2Fj
aGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdf
YnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJtZWRpYWNhY2hl
IiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJl
cHJlc2VudGF0aW9uKGNhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNz
UG9vbDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBpZiAobV93ZWJzaXRlRGF0YVN0b3Jl
KQorICAgICAgICBtX3dlYnNpdGVEYXRhU3RvcmUtPnJlZ2lzdGVyU2hhcmVkUmVzb3VyY2VMb2Fk
T2JzZXJ2ZXIoKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQorewor
I2lmIEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQorICAgIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKTsK
KyNlbmRpZgorCisgICAgcGFyYW1ldGVycy5tZW1vcnlDYWNoZURpc2FibGVkID0gbV9tZW1vcnlD
YWNoZURpc2FibGVkIHx8IGNhY2hlTW9kZWwoKSA9PSBDYWNoZU1vZGVsRG9jdW1lbnRWaWV3ZXI7
Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW52YWxpZGF0ZUNvbnRleHQoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVn
YWN5UGxhdGZvcm1EZWZhdWx0V2ViU1FMRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlx
dWVQdHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9kYXRhX2RpcigpLCAid3BlIiwgImRhdGFiYXNlcyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4g
V2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVj
dG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0SW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGluZGV4ZWREQkRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNl
cl9kYXRhX2RpcigpLCAid3BlIiwgImRhdGFiYXNlcyIsICJpbmRleGVkZGIiLCBudWxscHRyKSk7
CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24o
aW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vz
c1Bvb2w6OnBsYXRmb3JtRGVmYXVsdEljb25EYXRhYmFzZVBhdGgoKSBjb25zdAoreworICAgIEdV
bmlxdWVQdHI8Z2NoYXI+IGRhdGFiYXNlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRf
dXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJpY29uZGF0YWJhc2UiLCBudWxscHRyKSk7CisgICAg
cmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGF0YWJh
c2VEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBs
YXRmb3JtRGVmYXVsdExvY2FsU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gc3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9k
aXIoKSwgIndwZSIsICJsb2NhbHN0b3JhZ2UiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNv
cmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oc3RvcmFnZURpcmVjdG9yeS5n
ZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0
TWVkaWFLZXlzU3RvcmFnZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWVk
aWFLZXlzU3RvcmFnZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9k
aXIoKSwgIndwZSIsICJtZWRpYWtleXMiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6
OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24obWVkaWFLZXlzU3RvcmFnZURpcmVj
dG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1E
ZWZhdWx0TmV0d29ya0NhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGRp
c2tDYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCks
ICJ3cGUiLCAiY2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zy
b21GaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZGlza0NhY2hlRGlyZWN0b3J5LmdldCgpKTsKK30K
KworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRKYXZhU2NyaXB0
Q29uZmlndXJhdGlvbkRpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gamF2YVNj
cmlwdENvcmVDb25maWdEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFf
ZGlyKCksICJ3cGUiLCAiSmF2YVNjcmlwdENvcmVEZWJ1ZyIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihqYXZhU2NyaXB0
Q29yZUNvbmZpZ0RpcmVjdG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBs
YXRmb3JtUmVzb2x2ZVBhdGhzRm9yU2FuZGJveEV4dGVuc2lvbnMoKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXgu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAppbmRleCA1NzUwOWI5N2E0Yy4uZTJi
ZTgwOWQ4ZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDJQcmVmaXguaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKQEAgLTU3LDcgKzU3LDcgQEAKIAogI2Vu
ZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShX
UEUpCiAjZGVmaW5lIEVOQUJMRV9TSEFSRUFCTEVfUkVTT1VSQ0UgMQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAppbmRleCBjOTFiNDVhOWM1MS4uMDhhNjhkMDc5ODYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAKQEAgLTI5Nyw3ICsyOTcsNyBAQCB2b2lkIFdlYkVkaXRvckNsaWVu
dDo6cmVkbygpCiAgICAgbV9wYWdlLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpF
eGVjdXRlVW5kb1JlZG8oc3RhdGljX2Nhc3Q8dWludDMyX3Q+KFdlYlBhZ2VQcm94eTo6UmVkbykp
LCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpFeGVjdXRlVW5kb1JlZG86OlJlcGx5KHJlc3VsdCkp
OwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFU
Rk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2Vi
RWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2ZW50KQog
ewogICAgIGlmIChtX3BhZ2UtPmhhbmRsZUVkaXRpbmdLZXlib2FyZEV2ZW50KGV2ZW50KSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNTUzN2YxOWYwNmQuLjJhYzVmZGE0
MTA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtMTc5OCw0ICsxNzk4
LDEzIEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmZpbmlzaGVkTG9hZGluZ0ljb24odWlu
dDY0X3QgbG9hZElkZW50aWZpZXIsIFNoYXJlZEJ1CiAgICAgfQogfQogCitib29sIFdlYkZyYW1l
TG9hZGVyQ2xpZW50OjpzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVSTCYp
IGNvbnN0Cit7CisjaWYgUExBVEZPUk0oV1BFKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCisg
ICAgcmV0dXJuIHRydWU7CisjZW5kaWYKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKaW5kZXggMjEyZjEwZmRkZTEuLjNmMDNlNjkzOWY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZy
YW1lTG9hZGVyQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCkBAIC0yNjIsNiArMjYyLDggQEAgcHJpdmF0
ZToKICAgICB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0lj
b24mLCB1aW50NjRfdCBjYWxsYmFja0lEKSBmaW5hbDsKICAgICB2b2lkIGZpbmlzaGVkTG9hZGlu
Z0ljb24odWludDY0X3QgbG9hZElkZW50aWZpZXIsIFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGZp
bmFsOwogCisgICAgYm9vbCBzaG91bGRQYWludEJyb2tlbkltYWdlKGNvbnN0IFdlYkNvcmU6OlVS
TCYpIGNvbnN0IG92ZXJyaWRlOworCiAgICAgV2ViRnJhbWUqIG1fZnJhbWU7CiAgICAgUmVmUHRy
PFBsdWdpblZpZXc+IG1fcGx1Z2luVmlldzsKICAgICBib29sIG1faGFzU2VudFJlc3BvbnNlVG9Q
bHVnaW5WaWV3OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDJlZGY0
Yjc2ZDU0Li5iMjU3MTY4MGRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cApAQCAtMzYwLDQgKzM2MCwzMSBAQCBSZWY8U2VsZWN0aW9uRGF0YT4gV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpyZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYgogCiAjZW5kaWYg
Ly8gUExBVEZPUk0oR1RLKQogCisjaWYgUExBVEZPUk0oV1BFKQorLy8gUGFzdGVib2FyZFN0cmF0
ZWd5CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRUeXBlcyhWZWN0b3I8U3RyaW5n
PiYgdHlwZXMpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nv
bm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6R2V0UGFz
dGVib2FyZFR5cGVzKCksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9h
cmRUeXBlczo6UmVwbHkodHlwZXMpLCAwKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkVHlwZSkKK3sKKyAgICBTdHJpbmcgdmFsdWU7CisgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6Oldl
YlBhc3RlYm9hcmRQcm94eTo6UmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGluZGV4LCBwYXN0ZWJv
YXJkVHlwZSksIE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFz
dGVib2FyZDo6UmVwbHkodmFsdWUpLCAwKTsKKyAgICByZXR1cm4gdmFsdWU7Cit9CisKK3ZvaWQg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYXN0ZWJv
YXJkUHJveHk6OldyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb250ZW50KSwgMCk7Cit9CisK
K3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6
V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVN0cmluZ1RvUGFzdGVib2FyZChwYXN0ZWJvYXJkVHlw
ZSwgdGV4dCksIDApOworfQorCisjZW5kaWYgLy8gUExBVEZPUk0oV1BFKQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGU0Mzg3Yzkz
MDIxLi5hZWM3OWJjZmMwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCkBAIC04
NiwxMCArODYsMTggQEAgcHJpdmF0ZToKICAgICBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29u
c3QgVmVjdG9yPFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBT
dHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBsb25nIHNldFN0cmluZ0ZvclR5
cGUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdU
SykKICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSwgY29uc3QgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSYpIG92ZXJyaWRlOwogICAgIFJlZjxXZWJD
b3JlOjpTZWxlY3Rpb25EYXRhPiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lKSBvdmVycmlkZTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZp
cnR1YWwgdm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0
ZVRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpIG92ZXJy
aWRlOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKKyNlbmRpZgogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmVkMDM0YjAy
NjczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsNTggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51Q2xpZW50LmgiCisKKyNpZiBF
TkFCTEUoQ09OVEVYVF9NRU5VUykKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViQ29udGV4dE1lbnVDbGllbnQ6Omxv
b2tVcEluRGljdGlvbmFyeShXZWJDb3JlOjpGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKworYm9vbCBXZWJDb250ZXh0TWVudUNsaWVudDo6aXNTcGVha2luZygpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViQ29udGV4
dE1lbnVDbGllbnQ6OnNwZWFrKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3RvcFNwZWFraW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShDT05URVhUX01FTlVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJkY2EzMDI0Y2Vk
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDI0NiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViRWRpdG9yQ2xpZW50LmgiCisKKyNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9FZGl0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0V2ZW50TmFtZXMuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob2RlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dz
S2V5Ym9hcmRDb2Rlcy5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBpZGVh
IGZvciB0aGUgYXJyYXkvbWFwIGJlbG93IGNvbWVzIGZyb20gQmxpbmsncyBFZGl0aW5nQmVoYXZp
b3IuY3BwLgorCitzdGF0aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSAgPSAxIDw8IDA7CitzdGF0
aWMgY29uc3QgdW5zaWduZWQgQWx0S2V5ICAgPSAxIDw8IDE7CitzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgU2hpZnRLZXkgPSAxIDw8IDI7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgTWV0YUtleSAgPSAx
IDw8IDM7CisKKy8vIEtleXMgd2l0aCBzcGVjaWFsIG1lYW5pbmcuIFRoZXNlIHdpbGwgYmUgZGVs
ZWdhdGVkIHRvIHRoZSBlZGl0b3IgdXNpbmcKKy8vIHRoZSBleGVjQ29tbWFuZCgpIG1ldGhvZAor
c3RydWN0IEtleURvd25FbnRyeSB7CisgICAgdW5zaWduZWQgdmlydHVhbEtleTsKKyAgICB1bnNp
Z25lZCBtb2RpZmllcnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0cnVjdCBLZXlQ
cmVzc0VudHJ5IHsKKyAgICB1bnNpZ25lZCBjaGFyQ29kZTsKKyAgICB1bnNpZ25lZCBtb2RpZmll
cnM7CisgICAgY29uc3QgY2hhciogbmFtZTsKK307CisKK3N0YXRpYyBjb25zdCBLZXlEb3duRW50
cnkga2V5RG93bkVudHJpZXNbXSA9IHsKKyAgICB7IFZLX0xFRlQsICAgMCwgICAgICAgICAgICAg
ICAgICAiTW92ZUxlZnQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfTEVGVCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXksICAgICAgICAgICAg
Ik1vdmVXb3JkTGVmdCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xF
RlQsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVdvcmRMZWZ0QW5kTW9kaWZ5
U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SSUdIVCwgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVSaWdodCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgU2hpZnRLZXksICAgICAgICAg
ICAiTW92ZVJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICB9LAorICAgIHsgVktf
UklHSFQsICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZFJpZ2h0IiAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1v
dmVXb3JkUmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAg
ICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVVwIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlVXBB
bmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19QUklPUiwgIFNo
aWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlVXBBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgfSwKKyAgICB7IFZLX0RPV04sICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZURvd24iICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRE9XTiwgICBTaGlmdEtl
eSwgICAgICAgICAgICJNb3ZlRG93bkFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19ORVhULCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVQYWdlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICAgfSwKKyAgICB7IFZLX1VQLCAgICAgQ3RybEtleSB8IFNo
aWZ0S2V5LCAiTW92ZVBhcmFncmFwaEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uIiB9LAorICAg
IHsgVktfRE9XTiwgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFyYWdyYXBoRm9yd2FyZEFu
ZE1vZGlmeVNlbGVjdGlvbiIgIH0sCisgICAgeyBWS19QUklPUiwgIDAsICAgICAgICAgICAgICAg
ICAgIk1vdmVQYWdlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZL
X05FWFQsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VEb3duIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICAwLCAgICAgICAgICAgICAgICAgICJN
b3ZlVG9CZWdpbm5pbmdPZkxpbmUiICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01F
LCAgIFNoaWZ0S2V5LAorICAgICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2Vs
ZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19IT01FLCAg
IEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQiICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSB8IFNoaWZ0S2V5LAorICAgICAgICAi
TW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIDAsICAgICAgICAgICAgICAgICAgIk1v
dmVUb0VuZE9mTGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwg
ICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlVG9F
bmRPZkRvY3VtZW50IiAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIEN0
cmxLZXkgfCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlT
ZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfQkFD
SywgICAwLCAgICAgICAgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkRlbGV0
ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwg
MCwgICAgICAgICAgICAgICAgICAiRGVsZXRlRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfQkFDSywgICBDdHJsS2V5LCAgICAgICAgICAgICJEZWxldGVXb3Jk
QmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIEN0cmxL
ZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdCJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlQm9sZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0knLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJUb2dnbGVJdGFsaWMiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnVScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZVVuZGVybGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VTQ0FQRSwgMCwgICAgICAgICAgICAg
ICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfT0VNX1BFUklPRCwgQ3RybEtleSwgICAgICAgICJDYW5jZWwiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIDAsICAgICAgICAgICAgICAgICAg
Ikluc2VydFRhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1RB
QiwgICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCAwLCAgICAgICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4s
IEN0cmxLZXksICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3
bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBBbHRL
ZXkgfCBTaGlmdEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAg
IH0sCisgICAgeyBWS19SRVRVUk4sIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydExpbmVCcmVh
ayIgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICAvLyBUaGVzZSBwcm9iYWJseSBuZWVk
IGhhbmRsaW5nIHNvbWV3aGVyZSBlbHNlIHNvIGRvIG5vdCBleGVjdXRlIHRoZW0uIFRoZQorICAg
IC8vICdDdXQnIGNvbW1hbmQgaXMgcmVtb3ZpbmcgdGV4dCBzbyBsZXQncyBhdm9pZCBsb3Npbmcg
dGhlIHVzZXIgbG9zaW5nIGRhdGEKKyAgICAvLyB1bnRpbCB3ZSBpbXBsZW1lbnQgY2xpcGJvYXJk
IHN1cHBvcnQgd2hlcmV2ZXIgaXQgc2hvdWxkIGJlLgorICAgIHsgVktfSU5TRVJULCBDdHJsS2V5
LCAgICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19JTlNFUlQsIFNoaWZ0S2V5LCAgICAgICAgICAgIlBhc3RlIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgU2hpZnRLZXksICAg
ICAgICAgICAiQ3V0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ0MnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJDb3B5IiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3RybEtleSwgICAgICAg
ICAgIlBhc3RlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdW
JywgICAgICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJQYXN0ZUFuZE1hdGNoU3R5bGUiICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1gnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJD
dXQiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQScsICAg
ICAgICAgQ3RybEtleSwgICAgICAgICAgIlNlbGVjdEFsbCIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKKyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVW5kbyIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1onLCAgICAgICAg
IEN0cmxLZXkgfCBTaGlmdEtleSwgIlJlZG8iICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyAnWScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlJlZG8iICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VSVCwgMCwgICAg
ICAgICAgICAgICAgICAiT3ZlcldyaXRlIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorfTsKKworc3RhdGljIGNvbnN0IEtleVByZXNzRW50cnkga2V5UHJlc3NFbnRyaWVzW10gPSB7
CisgICAgeyAnXHQnLCAgIDAsICAgICAgICAgICAgICAgICAgIkluc2VydFRhYiIgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdcdCcsICAgU2hpZnRLZXksICAgICAg
ICAgICAiSW5zZXJ0QmFja3RhYiIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ1xyJywgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIEN0cmxLZXksICAgICAgICAgICAg
Ikluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdc
cicsICAgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXksICAgICAgICAgICAgICJJbnNl
cnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAg
IEFsdEtleSB8IFNoaWZ0S2V5LCAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgfSwKK307CisKK3N0YXRpYyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChj
b25zdCBLZXlib2FyZEV2ZW50JiBldmVudCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
SGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPj4ga2V5RG93bkNvbW1hbmRzTWFwOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29uc3QgY2hhcio+PiBrZXlQcmVzc0NvbW1h
bmRzTWFwOworCisgICAgaWYgKGtleURvd25Db21tYW5kc01hcC5nZXQoKS5pc0VtcHR5KCkpIHsK
KyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdURl9BUlJBWV9MRU5HVEgoa2V5RG93
bkVudHJpZXMpOyBpKyspCisgICAgICAgICAgICBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuc2V0
KGtleURvd25FbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAxNiB8IGtleURvd25FbnRyaWVzW2ldLnZp
cnR1YWxLZXksIGtleURvd25FbnRyaWVzW2ldLm5hbWUpOworICAgICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlQcmVzc0VudHJpZXMpOyBpKyspCisgICAg
ICAgICAgICBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLnNldChrZXlQcmVzc0VudHJpZXNbaV0u
bW9kaWZpZXJzIDw8IDE2IHwga2V5UHJlc3NFbnRyaWVzW2ldLmNoYXJDb2RlLCBrZXlQcmVzc0Vu
dHJpZXNbaV0ubmFtZSk7CisgICAgfQorCisgICAgdW5zaWduZWQgbW9kaWZpZXJzID0gMDsKKyAg
ICBpZiAoZXZlbnQuc2hpZnRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IFNoaWZ0S2V5Owor
ICAgIGlmIChldmVudC5hbHRLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEFsdEtleTsKKyAg
ICBpZiAoZXZlbnQuY3RybEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQ3RybEtleTsKKyAg
ICBpZiAoZXZlbnQubWV0YUtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gTWV0YUtleTsKKwor
ICAgIGlmIChldmVudC50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkgeworICAg
ICAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwgZXZlbnQua2V5Q29kZSgpOworICAg
ICAgICByZXR1cm4gbWFwS2V5ID8ga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmdldChtYXBLZXkp
IDogbnVsbHB0cjsKKyAgICB9CisKKyAgICBpbnQgbWFwS2V5ID0gbW9kaWZpZXJzIDw8IDE2IHwg
ZXZlbnQuY2hhckNvZGUoKTsKKyAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01h
cC5nZXQoKS5nZXQobWFwS2V5KSA6IG51bGxwdHI7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtl
eVByZXNzKEZyYW1lJiBmcmFtZSwgS2V5Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCYgcGxhdGZvcm1FdmVudCkKK3sKKyAgICBTdHJpbmcgY29tbWFuZE5hbWUg
PSBpbnRlcnByZXRLZXlFdmVudChldmVudCk7CisKKyAgICBpZiAoIWNvbW1hbmROYW1lLmlzRW1w
dHkoKSkgeworICAgICAgICBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKS5leGVj
dXRlKCk7CisgICAgICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICAvLyBEb24ndCBpbnNlcnQgbnVsbCBvciBjb250cm9sIGNoYXJhY3Rl
cnMgYXMgdGhleSBjYW4gcmVzdWx0IGluIHVuZXhwZWN0ZWQgYmVoYXZpb3VyCisgICAgaWYgKGV2
ZW50LmNoYXJDb2RlKCkgPCAnICcpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIERvbid0IGlu
c2VydCBhbnl0aGluZyBpZiBhIG1vZGlmaWVyIGlzIHByZXNzZWQgYW5kIGl0IGhhcyBub3QgYmVl
biBoYW5kbGVkIHlldAorICAgIGlmIChwbGF0Zm9ybUV2ZW50LmN0cmxLZXkoKSB8fCBwbGF0Zm9y
bUV2ZW50LmFsdEtleSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoZnJhbWUuZWRpdG9y
KCkuaW5zZXJ0VGV4dChwbGF0Zm9ybUV2ZW50LnRleHQoKSwgJmV2ZW50KSkKKyAgICAgICAgZXZl
bnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5RG93bihG
cmFtZSYgZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQmKQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2ZW50KGV2
ZW50KTsKKyAgICBpZiAoY29tbWFuZE5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBXZSBzaG91bGRuJ3QgaW5zZXJ0IHRleHQgdGhyb3VnaCB0aGUgZWRpdG9yLiBMZXQg
V2ViQ29yZSBkZWNpZGUKKyAgICAvLyBob3cgdG8gaGFuZGxlIHRoYXQgKHNheSwgVGFiLCB3aGlj
aCBjb3VsZCBhbHNvIGJlIHVzZWQgdG8KKyAgICAvLyBjaGFuZ2UgZm9jdXMpLgorICAgIEVkaXRv
cjo6Q29tbWFuZCBjb21tYW5kID0gZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSk7
CisgICAgaWYgKGNvbW1hbmQuaXNUZXh0SW5zZXJ0aW9uKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGNvbW1hbmQuZXhlY3V0ZSgpOworICAgIGV2ZW50LnNldERlZmF1bHRIYW5kbGVkKCk7Cit9
CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVLZXlib2FyZEV2ZW50KFdlYkNvcmU6Oktl
eWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIE5vZGUqIG5vZGUgPSBldmVudC0+dGFyZ2V0KCkt
PnRvTm9kZSgpOworICAgIEFTU0VSVChub2RlKTsKKyAgICBGcmFtZSogZnJhbWUgPSBub2RlLT5k
b2N1bWVudCgpLmZyYW1lKCk7CisgICAgQVNTRVJUKGZyYW1lKTsKKworICAgIC8vIEZJWE1FOiBS
ZW9yZGVyIHRoZSBjaGVja3MgaW4gYSBtb3JlIHNlbnNpYmxlIHdheS4KKworICAgIGNvbnN0IFBs
YXRmb3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgpOwor
ICAgIGlmICghcGxhdGZvcm1FdmVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gSWYgdGhp
cyB3YXMgYW4gSU1FIGV2ZW50IGRvbid0IGRvIGFueXRoaW5nLgorICAgIGlmIChwbGF0Zm9ybUV2
ZW50LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBy
ZXR1cm47CisKKyAgICAvLyBEb24ndCBhbGxvdyB0ZXh0IGluc2VydGlvbiBmb3Igbm9kZXMgdGhh
dCBjYW5ub3QgZWRpdC4KKyAgICBpZiAoIWZyYW1lLT5lZGl0b3IoKS5jYW5FZGl0KCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIC8vIFRoaXMgaXMganVzdCBhIG5vcm1hbCB0ZXh0IGluc2VydGlv
biwgc28gd2FpdCB0byBleGVjdXRlIHRoZSBpbnNlcnRpb24KKyAgICAvLyB1bnRpbCBhIGtleXBy
ZXNzIGV2ZW50IGhhcHBlbnMuIFRoaXMgd2lsbCBlbnN1cmUgdGhhdCB0aGUgaW5zZXJ0aW9uIHdp
bGwgbm90CisgICAgLy8gYmUgcmVmbGVjdGVkIGluIHRoZSBjb250ZW50cyBvZiB0aGUgZmllbGQg
dW50aWwgdGhlIGtleXVwIERPTSBldmVudC4KKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkua2V5cHJlc3NFdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleVByZXNzKCpm
cmFtZSwgKmV2ZW50LCAqcGxhdGZvcm1FdmVudCk7CisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0g
ZXZlbnROYW1lcygpLmtleWRvd25FdmVudCkKKyAgICAgICAgcmV0dXJuIGhhbmRsZUtleURvd24o
KmZyYW1lLCAqZXZlbnQsICpwbGF0Zm9ybUV2ZW50KTsKK30KKwordm9pZCBXZWJFZGl0b3JDbGll
bnQ6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBldmVu
dCkKK3sKKyAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBl
dmVudC0+a2V5RXZlbnQoKTsKKyAgICBpZiAocGxhdGZvcm1FdmVudCAmJiBwbGF0Zm9ybUV2ZW50
LT53aW5kb3dzVmlydHVhbEtleUNvZGUoKSA9PSBWS19QUk9DRVNTS0VZKQorICAgICAgICBldmVu
dC0+cHJldmVudERlZmF1bHQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1
cE1lbnVXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93
cGUvV2ViUG9wdXBNZW51V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmFiODM3YjBhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBvcHVwTWVudS5oIgorCisjaW5jbHVk
ZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9p
ZCBXZWJQb3B1cE1lbnU6OnNldFVwUGxhdGZvcm1EYXRhKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
LCBQbGF0Zm9ybVBvcHVwTWVudURhdGEmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCmluZGV4IDYw
ZTkxNjc5OWIzLi5kM2RmNDZhMTg3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVy
VHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcApAQCAt
NzQsMTAgKzc0LDEwIEBAIFRocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0OjpUaHJlYWRl
ZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdChXZWJQYWdlJiB3ZWJQCiAgICAgICAgIC8vIERvIG5v
dCBkbyBmcmFtZSBzeW5jIHdoZW4gcmVuZGVyaW5nIG9mZnNjcmVlbiBpbiB0aGUgd2ViIHByb2Nl
c3MgdG8gZW5zdXJlIHRoYXQgU3dhcEJ1ZmZlcnMgbmV2ZXIgYmxvY2tzLgogICAgICAgICAvLyBS
ZW5kZXJpbmcgdG8gdGhlIGFjdHVhbCBzY3JlZW4gd2lsbCBoYXBwZW4gbGF0ZXIgYW55d2F5IHNp
bmNlIHRoZSBVSSBwcm9jZXNzIHNjaGVkdWxlcyBhIHJlZHJhdyBmb3IgZXZlcnkgdXBkYXRlLAog
ICAgICAgICAvLyB0aGUgY29tcG9zaXRvciB3aWxsIHRha2UgY2FyZSBvZiBzeW5jaW5nIHRvIHZi
bGFuay4KLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUo
bV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZhY3RvciwgbV9zdXJmYWNlLT53
aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3luYzo6WWVzLCBwYWlu
dEZsYWdzKTsKKyAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVh
dGUobV9jb21wb3NpdG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvciwg
bV9zdXJmYWNlLT53aW5kb3coKSwgVGhyZWFkZWRDb21wb3NpdG9yOjpTaG91bGREb0ZyYW1lU3lu
Yzo6WWVzLCBwYWludEZsYWdzKTsKICAgICAgICAgbV9sYXllclRyZWVDb250ZXh0LmNvbnRleHRJ
RCA9IG1fc3VyZmFjZS0+c3VyZmFjZUlEKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fY29tcG9z
aXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNsaWVudCwgc2Nh
bGVkU2l6ZSwgc2NhbGVGYWN0b3IpOworICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENv
bXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUs
IHNjYWxlRmFjdG9yKTsKIAogICAgIGRpZENoYW5nZVZpZXdwb3J0KCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcAppbmRleCAyZTc4
MGQ5MWJlNS4uNWYwOTNhYzdiNTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcApAQCAtMzcsNiArMzcsOCBAQAogI2lmIFBMQVRGT1JN
KENPQ09BKQogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhLmgiCiAjaW5jbHVk
ZSAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaCIKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
KyNpbmNsdWRlICJEcmF3aW5nQXJlYVdQRS5oIgogI2Vsc2UKICNpbmNsdWRlICJEcmF3aW5nQXJl
YUltcGwuaCIKICNlbmRpZgpAQCAtNTUsNiArNTcsOSBAQCBzdGQ6OnVuaXF1ZV9wdHI8RHJhd2lu
Z0FyZWE+IERyYXdpbmdBcmVhOjpjcmVhdGUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3QgV2ViUGFn
ZQogI2VuZGlmCiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWU6CiAgICAg
ICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhPih3
ZWJQYWdlLCBwYXJhbWV0ZXJzKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBjYXNlIERyYXdp
bmdBcmVhVHlwZVdQRToKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0Fy
ZWFXUEU+KHdlYlBhZ2UsIHBhcmFtZXRlcnMpOwogI2Vsc2UKICAgICBjYXNlIERyYXdpbmdBcmVh
VHlwZUltcGw6CiAgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhSW1w
bD4od2ViUGFnZSwgcGFyYW1ldGVycyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggMjFiMTJjZGJlMjMuLmU1MTJiYmI2Nzg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zNDk1LDcg
KzM0OTUsNyBAQCBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIqIFdlYlBhZ2U6
Om5vdGlmaWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYQogICAgIHJldHVybiBtX25vdGlmaWNh
dGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5nZXQoKTsKIH0KIAotI2lmICFQTEFURk9STShH
VEspICYmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXUEUpCiBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXli
b2FyZEV2ZW50KEtleWJvYXJkRXZlbnQqIGV2dCkKIHsKICAgICBOb2RlKiBub2RlID0gZXZ0LT50
YXJnZXQoKS0+dG9Ob2RlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCAwYjA1NjFiYjE2Ny4uMjM0MWMxMzgwNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAtMTAxOCw3ICsxMDE4LDcgQEAgcHJp
dmF0ZToKICNlbmRpZgogI2VuZGlmCiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRG
T1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpbnRl
cnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2ZW50Kik7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3Np
dGluZ01hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9D
b21wb3NpdGluZ01hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40ZTIzZDM0MGQ5MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNwcApAQCAtMCwwICsxLDQ4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXIuaCIKKworI2luY2x1
ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdl
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXI6On5Db21wb3Np
dGluZ01hbmFnZXIoKQoreworICAgIEFTU0VSVChtX2Nvbm5lY3Rpb25GZCA9PSAtMSk7Cit9CisK
K3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyOjplc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmIHdl
YlBhZ2UpCit7CisgICAgSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25IYW5kbGU7CisgICAgd2Vi
UGFnZS5zZW5kU3luYyhNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlz
aENvbm5lY3Rpb24oKSwKKyAgICAgICAgTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5
OjpFc3RhYmxpc2hDb25uZWN0aW9uOjpSZXBseShjb25uZWN0aW9uSGFuZGxlKSk7CisKKyAgICBt
X2Nvbm5lY3Rpb25GZCA9IGNvbm5lY3Rpb25IYW5kbGUucmVsZWFzZUZpbGVEZXNjcmlwdG9yKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjI2MzFhMzFjOTk1Ci0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9Db21wb3NpdGluZ01h
bmFnZXIuaApAQCAtMCwwICsxLDUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxp
YSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgQ29tcG9zaXRpbmdNYW5hZ2VyX2gKKyNkZWZpbmUg
Q29tcG9zaXRpbmdNYW5hZ2VyX2gKKworI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgV2ViUGFnZTsKKworY2xhc3MgQ29tcG9zaXRpbmdN
YW5hZ2VyIGZpbmFsIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShDb21wb3NpdGluZ01hbmFn
ZXIpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdlcigpID0gZGVmYXVsdDsKKyAgICB+
Q29tcG9zaXRpbmdNYW5hZ2VyKCk7CisKKyAgICB2b2lkIGVzdGFibGlzaENvbm5lY3Rpb24oV2Vi
UGFnZSYpOworICAgIGludCByZWxlYXNlQ29ubmVjdGlvbkZkKCkgeyByZXR1cm4gc3RkOjpleGNo
YW5nZShtX2Nvbm5lY3Rpb25GZCwgLTEpOyB9OworCitwcml2YXRlOgorICAgIGludCBtX2Nvbm5l
Y3Rpb25GZCB7IC0xIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8v
IENvbXBvc2l0aW5nTWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uMzQ0N2FjOGNiMGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcApAQCAtMCww
ICsxLDE5MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFXUEUuaCIKKwor
I2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2Uu
aCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJl
bmNlc1N0b3JlLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL01haW5GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1w
bGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworRHJhd2luZ0FyZWFXUEU6OkRy
YXdpbmdBcmVhV1BFKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMmKQorICAgIDogRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlV1BFLCB3ZWJQYWdlKQor
eworICAgIHdlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5zZXRGb3JjZUNvbXBvc2l0aW5n
TW9kZSh0cnVlKTsKKyAgICBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKDApOworfQor
CitEcmF3aW5nQXJlYVdQRTo6fkRyYXdpbmdBcmVhV1BFKCkKK3sKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6bGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKQoreworICAgIG1fd2ViUGFnZS5zZW5k
KE1lc3NhZ2VzOjpEcmF3aW5nQXJlYVByb3h5OjpFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdN
b2RlKDAsIG1fbGF5ZXJUcmVlSG9zdC0+bGF5ZXJUcmVlQ29udGV4dCgpKSk7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OnNldE5lZWRzRGlzcGxheSgpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJU
cmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNO
ZWVkRGlzcGxheSgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXROZWVkc0Rpc3BsYXlJ
blJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKK3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0
KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5vbkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNw
bGF5SW5SZWN0KHJlY3QpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY3JvbGwoY29uc3Qg
SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgSW50U2l6ZSYpCit7CisgICAgQVNTRVJUKG1fbGF5
ZXJUcmVlSG9zdCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zY3JvbGxOb25Db21wb3NpdGVkQ29u
dGVudHMoc2Nyb2xsUmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnBhZ2VCYWNrZ3Jv
dW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAg
ICAgICAgbV9sYXllclRyZWVIb3N0LT5wYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQo
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VSZXBhaW50KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitib29sIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJlcGFpbnRBc3lu
Yyh1aW50NjRfdCBjYWxsYmFja0lEKQoreworICAgIHJldHVybiBtX2xheWVyVHJlZUhvc3QgJiYg
bV9sYXllclRyZWVIb3N0LT5mb3JjZVJlcGFpbnRBc3luYyhjYWxsYmFja0lEKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVdQRTo6c2V0TGF5ZXJUcmVlU3RhdGVJc0Zyb3plbihib29sIGZyb3plbikK
K3sKKyAgICBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4gPSBmcm96ZW47Cit9CisKK3ZvaWQgRHJh
d2luZ0FyZWFXUEU6OnNldFBhaW50aW5nRW5hYmxlZChib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQoreworICAgIG1fd2ViUGFnZS5jb3JlUGFnZSgp
LT5zZXR0aW5ncygpLnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHN0b3JlLmdldEJvb2xWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6Zm9yY2VDb21wb3NpdGluZ01vZGVLZXkoKSkpOworfQor
Cit2b2lkIERyYXdpbmdBcmVhV1BFOjptYWluRnJhbWVDb250ZW50U2l6ZUNoYW5nZWQoY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSkKK3sKKyAgICBpZiAobV9sYXllclRyZWVIb3N0KQorICAg
ICAgICBtX2xheWVyVHJlZUhvc3QtPmNvbnRlbnRzU2l6ZUNoYW5nZWQoc2l6ZSk7Cit9CisKK0dy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBEcmF3aW5nQXJlYVdQRTo6Z3JhcGhpY3NMYXllckZhY3Rvcnko
KQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIHJldHVybiBtX2xheWVyVHJl
ZUhvc3QtPmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNldFJvb3RDb21wb3NpdGluZ0xheWVyKEdyYXBoaWNzTGF5
ZXIqIGdyYXBoaWNzTGF5ZXIpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAg
bV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGljc0xheWVyKTsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2go
KQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2NoZWR1bGVMYXllckZsdXNoKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnNjaGVkdWxl
Q29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKQoreworICAgIHNjaGVkdWxlQ29tcG9z
aXRpbmdMYXllckZsdXNoKCk7Cit9CisKKyNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVf
RElTUExBWV9NT05JVE9SKQorUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4g
RHJhd2luZ0FyZWFXUEU6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3Bs
YXlJRCBkaXNwbGF5SUQpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgcmV0
dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJ
RCk7CisKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKyNlbmRpZgorCit2b2lkIERyYXdpbmdBcmVh
V1BFOjphdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUqIGZyYW1l
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKiB2aWV3T3ZlcmxheVJvb3RMYXllcikKK3sKKyAgICBp
ZiAoIWZyYW1lLT5pc01haW5GcmFtZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQo
bV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFZpZXdPdmVybGF5Um9v
dExheWVyKHZpZXdPdmVybGF5Um9vdExheWVyKTsKK30KKworI2lmIFVTRShDT09SRElOQVRFRF9H
UkFQSElDU19USFJFQURFRCkKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZENoYW5nZVZpZXdwb3J0
QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikKK3sKK30KKyNlbmRpZgor
CisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKSB8fCBVU0UoVEVYVFVSRV9NQVBQRVIpCit2
b2lkIERyYXdpbmdBcmVhV1BFOjpkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKQorewor
fQorI2VuZGlmCisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OnVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KHVpbnQ2NF90LCBib29sLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2l6ZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KQorewor
ICAgIG1fd2ViUGFnZS5zZXREZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7Cisg
ICAgbV93ZWJQYWdlLnNldFNpemUoc2l6ZSk7CisgICAgbV93ZWJQYWdlLmxheW91dElmTmVlZGVk
KCk7CisgICAgbV93ZWJQYWdlLnNjcm9sbE1haW5GcmFtZUlmTm90QXRNYXhTY3JvbGxQb3NpdGlv
bihzY3JvbGxPZmZzZXQpOworCisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9s
YXllclRyZWVIb3N0LT5zaXplRGlkQ2hhbmdlKG1fd2ViUGFnZS5zaXplKCkpOworfQorCit2b2lk
IERyYXdpbmdBcmVhV1BFOjpkaWRVcGRhdGUoKQoreworfQorCit2b2lkIERyYXdpbmdBcmVhV1BF
OjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNz
TGF5ZXIpCit7CisgICAgQVNTRVJUKCFtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVl
SG9zdCA9IExheWVyVHJlZUhvc3Q6OmNyZWF0ZShtX3dlYlBhZ2UpOworICAgIG1fbGF5ZXJUcmVl
SG9zdC0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7CisgICAgbV9sYXll
clRyZWVIb3N0LT5zZXRTaG91bGROb3RpZnlBZnRlck5leHRTY2hlZHVsZWRMYXllckZsdXNoKHRy
dWUpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgp
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2YzUzNTRlNGZkCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oCkBA
IC0wLDAgKzEsOTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBEcmF3aW5nQXJlYVdQRV9oCisjZGVmaW5lIERyYXdpbmdBcmVhV1BF
X2gKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1Ymxp
YyBEcmF3aW5nQXJlYSB7CitwdWJsaWM6CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJl
YVdQRSgpOworCisgICAgdm9pZCBsYXllckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOwor
Citwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhCisgICAgdmlydHVhbCB2b2lkIHNldE5lZWRz
RGlzcGxheSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXlJblJl
Y3QoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBz
Y3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCB2b2lkIHBhZ2VC
YWNrZ3JvdW5kVHJhbnNwYXJlbmN5Q2hhbmdlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBmb3JjZVJlcGFpbnQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgZm9yY2VSZXBhaW50
QXN5bmModWludDY0X3QgY2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNl
dExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29s
IGxheWVyVHJlZVN0YXRlSXNGcm96ZW4oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVy
VHJlZVN0YXRlSXNGcm96ZW47IH0KKyAgICB2aXJ0dWFsIExheWVyVHJlZUhvc3QqIGxheWVyVHJl
ZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0K
KworICAgIHZpcnR1YWwgdm9pZCBzZXRQYWludGluZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIHVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3Rv
cmUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6R3JhcGhpY3NMYXllckZhY3RvcnkqIGdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkgb3ZlcnJp
ZGU7CisgICAgdmlydHVhbCB2b2lkIHNldFJvb3RDb21wb3NpdGluZ0xheWVyKFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21wb3Np
dGluZ0xheWVyRmx1c2goKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2NoZWR1bGVDb21w
b3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpIG92ZXJyaWRlOworCisjaWYgVVNFKFJFUVVF
U1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICB2aXJ0dWFsIFJlZlB0cjxX
ZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRv
cihXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlJRCkgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZp
cnR1YWwgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29yZTo6RnJhbWUq
LCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0UoQ09PUkRJTkFU
RURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0
QXR0cmlidXRlcyhXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmJikgb3ZlcnJpZGU7CisjZW5k
aWYKKworI2lmIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVS
KQorICAgIHZpcnR1YWwgdm9pZCBkZXZpY2VPclBhZ2VTY2FsZUZhY3RvckNoYW5nZWQoKSBvdmVy
cmlkZTsKKyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRl
KHVpbnQ2NF90LCBib29sLCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlKCkg
b3ZlcnJpZGU7CisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllciopOworCisgICAgLy8gV2hlbiB0cnVlLCB3ZSBtYWludGFpbiB0
aGUgbGF5ZXIgdHJlZSBpbiBpdHMgY3VycmVudCBzdGF0ZSBieSBub3QgbGVhdmluZyBhY2NlbGVy
YXRlZCBjb21wb3NpdGluZyBtb2RlCisgICAgLy8gYW5kIG5vdCBzY2hlZHVsaW5nIGxheWVyIGZs
dXNoZXMuCisgICAgYm9vbCBtX2xheWVyVHJlZVN0YXRlSXNGcm96ZW4geyBmYWxzZSB9OworCisg
ICAgLy8gVGhlIGxheWVyIHRyZWUgaG9zdCB0aGF0IGhhbmRsZXMgYWNjZWxlcmF0ZWQgY29tcG9z
aXRpbmcuCisgICAgUmVmUHRyPExheWVyVHJlZUhvc3Q+IG1fbGF5ZXJUcmVlSG9zdDsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRHJhd2luZ0FyZWFXUEVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0
b3JVSVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYklu
c3BlY3RvclVJV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NzRjODQ0YmNiYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvclVJV1BFLmNwcApAQCAtMCwwICsxLDQ4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSS5oIgorCisjaW5jbHVkZSAiUmVtb3Rl
V2ViSW5zcGVjdG9yVUkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVj
dG9yVUk6OmNhblNhdmUoKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYklu
c3BlY3RvclVJOjpsb2NhbGl6ZWRTdHJpbmdzVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCk7
Cit9CisKK1N0cmluZyBSZW1vdGVXZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgp
Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVj
dG9yV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5z
cGVjdG9yV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzRl
MGM2NWUwZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAKQEAgLTAsMCArMSw0NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yLmgiCisKKyNpZiBFTkFCTEUoSU5TUEVDVE9SKQor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJJbnNwZWN0b3I6OmNhblNhdmUoKSBjb25z
dAoreworICAgIHJldHVybiBmYWxzZTsKK30KKworU3RyaW5nIFdlYkluc3BlY3Rvcjo6bG9jYWxp
emVkU3RyaW5nc1VSTCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShJTlNQRUNUT1IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmVmMjRlNWRlZjkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBh
Z2VXUEUuY3BwCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBh
Z2UuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldl
YlByZWZlcmVuY2VzU3RvcmUuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9
CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EZXRhY2goKQoreworfQorCit2b2lkIFdlYlBhZ2U6
OnBsYXRmb3JtRWRpdG9yU3RhdGUoRnJhbWUmLCBFZGl0b3JTdGF0ZSYsIEluY2x1ZGVQb3N0TGF5
b3V0RGF0YUhpbnQpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBX
ZWJQYWdlOjpwbGF0Zm9ybVByZWZlcmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFdlYlByZWZlcmVuY2Vz
U3RvcmUmIHN0b3JlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUGFn
ZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZl
bnQmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIFdlYlBhZ2U6OnBsYXRmb3JtSGFzTG9jYWxEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQ
YWdlOjpjYWNoZWRSZXNwb25zZU1JTUVUeXBlRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6
cGxhdGZvcm1DYW5IYW5kbGVSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJQYWdl
OjpjYWNoZWRTdWdnZXN0ZWRGaWxlbmFtZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitSZWZQdHI8U2hhcmVkQnVm
ZmVyPiBXZWJQYWdlOjpjYWNoZWRSZXNwb25zZURhdGFGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitTdHJpbmcgV2Vi
UGFnZTo6cGxhdGZvcm1Vc2VyQWdlbnQoY29uc3QgVVJMJikgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNz
TWFpbldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3dwZS9XZWJQcm9jZXNzTWFp
bldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0NjEwNzNi
ZTNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2Vi
UHJvY2Vzc01haW5XUEUuY3BwCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJp
Z2h0IChjKSAyMDEwIE1vdG9yb2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc01h
aW5Vbml4LmgiCisKKyNpbmNsdWRlICJDaGlsZFByb2Nlc3NNYWluLmgiCisjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgorI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjaW5j
bHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPGxpYnNvdXAvc291cC5oPgorCisjaW5jbHVkZSA8aW9z
dHJlYW0+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgV2ViUHJvY2Vzc01haW4gZmluYWw6IHB1YmxpYyBDaGlsZFByb2Nlc3NNYWluQmFz
ZSB7CitwdWJsaWM6CisgICAgYm9vbCBwbGF0Zm9ybUluaXRpYWxpemUoKSBvdmVycmlkZQorICAg
IHsKKyAgICAgICAgLy8gVE9ETzogV3JhcCB3aXRoICNpZm5kZWYgTkRFQlVHCisgICAgICAgIGlm
IChnX2dldGVudigiV0VCS0lUMl9QQVVTRV9XRUJfUFJPQ0VTU19PTl9MQVVOQ0giKSkgeworICAg
ICAgICAgICAgZ19wcmludGVycigiV2ViUHJvY2VzcyBQSUQ6ICVkXG4iLCBnZXRwaWQoKSk7Cisg
ICAgICAgICAgICBXVEY6OnNsZWVwKDMwKTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIGJvb2wgcGFyc2VDb21tYW5kTGluZShpbnQgYXJnYywgY2hhcioq
IGFyZ3YpIG92ZXJyaWRlCisgICAgeworICAgICAgICBBU1NFUlQoYXJnYyA9PSAzKTsKKyAgICAg
ICAgaWYgKGFyZ2MgPCAzKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgIGlm
ICghQ2hpbGRQcm9jZXNzTWFpbkJhc2U6OnBhcnNlQ29tbWFuZExpbmUoYXJnYywgYXJndikpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgaW50IHdwZUZkID0gYXRvaShhcmd2
WzJdKTsKKyAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAgICAgICAgW3dw
ZUZkXSB7CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5
V1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKSkpOworICAgICAgICAgICAgICAg
IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNw
bGF5KCkpLmluaXRpYWxpemUod3BlRmQpOworICAgICAgICAgICAgfSk7CisgICAgICAgIHJldHVy
biB0cnVlOworICAgIH0KK307CisKK2ludCBXZWJQcm9jZXNzTWFpblVuaXgoaW50IGFyZ2MsIGNo
YXIqKiBhcmd2KQoreworICAgIHJldHVybiBDaGlsZFByb2Nlc3NNYWluPFdlYlByb2Nlc3MsIFdl
YlByb2Nlc3NNYWluPihhcmdjLCBhcmd2KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaCBiL1NvdXJjZS9XZWJLaXQyL2NvbmZp
Zy5oCmluZGV4IGM2M2QxYTI2Zjc5Li4zNDc5YjFlZDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYktpdDIvY29uZmlnLmgKQEAgLTU4LDcgKzU4
LDcgQEAKICNkZWZpbmUgUExVR0lOX0FSQ0hJVEVDVFVSRShBUkNIKSAoZGVmaW5lZCBQTFVHSU5f
QVJDSElURUNUVVJFXyMjQVJDSCAmJiBQTFVHSU5fQVJDSElURUNUVVJFXyMjQVJDSCkKIAogI2lm
bmRlZiBFTkFCTEVfSU5TUEVDVE9SX1NFUlZFUgotI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYg
UExBVEZPUk0oR1RLKQorI2lmIEVOQUJMRShXRUJfU09DS0VUUykgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0lOU1BFQ1RPUl9TRVJWRVIgMQogI2Vu
ZGlmCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBj
LmluIGIvU291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmU5OWMwMjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJl
Zml4PUBDTUFLRV9JTlNUQUxMX1BSRUZJWEAKK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGly
PUBMSUJfSU5TVEFMTF9ESVJACitpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6
IFdlYktpdDIKK0Rlc2NyaXB0aW9uOiBXUEUtZmxhdm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjog
QFBST0pFQ1RfVkVSU0lPTkAKK1JlcXVpcmVzLnByaXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40
CitMaWJzOiAtTCR7bGliZGlyfSAtbFdQRVdlYktpdCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVk
ZWRpcn0vd3BlLUBXUEVfQVBJX1ZFUlNJT05AIC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElf
VkVSU0lPTkAvV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBi
L1NvdXJjZS9jbWFrZS9GaW5kTGliR0JNLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kMjA5MWNiZmI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFr
ZS9GaW5kTGliR0JNLmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0u
CisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElS
UyAtIHRoZSBnYm0gaW5jbHVkZSBkaXJlY3RvcmllcworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxp
bmsgdGhlc2UgdG8gdXNlIGdibS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwu
CisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
VEhFIENPUFlSSUdIVCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisjIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IKKyMgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBD
X0xJQkdCTSBnYm0pCisKK2ZpbmRfcGF0aChMSUJHQk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMg
Z2JtLmgKKyAgICBISU5UUyAke1BDX0xJQkdCTV9JTkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lO
Q1VERURJUn0KKykKKworZmluZF9saWJyYXJ5KExJQkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBn
Ym0KKyAgICBISU5UUyAke1BDX0xJQkdCTV9MSUJSQVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJ
Un0KKykKKworaW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFD
S0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJHUyhMSUJHQk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJB
UklFUykKKworbWFya19hc19hZHZhbmNlZChMSUJHQk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJS
QVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFr
ZSBiL1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MTYxNTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9jbWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAK
KyMgLSBUcnkgdG8gZmluZCBXUEUtbWVzYS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5l
CisjCisjICBXUEVfTUVTQV9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVT
QV9JTkNMVURFX0RJUlMgLSB0aGUgV1BFLW1lc2EgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BF
X01FU0FfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHly
aWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUwor
IyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25m
aWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19XUEVfTUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmlu
ZF9wYXRoKFdQRV9NRVNBX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFj
a2VuZC1leHBvcnRhYmxlLWRtYS1idWYuaAorICAgIEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVE
RURJUn0gJHtQQ19XUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVf
TUVTQV9MSUJSQVJJRVMKKyAgICBOQU1FUyBXUEVCYWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BD
X1dQRV9NRVNBX0xJQkRJUn0gJHtQQ19XUEVfTUVTQV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtf
YXNfYWR2YW5jZWQoV1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKwor
aW5jbHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5E
TEVfU1RBTkRBUkRfQVJHUyhXUEVfTUVTQSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVf
RElSUyBXUEVfTUVTQV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQ
RUJhY2tlbmQuY21ha2UgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcg
QEAKKyMgLSBUcnkgdG8gZmluZCBXUEUuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQor
IworIyAgV1BFX0ZPVU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0g
dGhlIFdQRSBpbmNsdWRlIGRpcmVjdG9yaWVzCisjICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVz
ZSB0byB1c2UgV1BFLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMg
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFV
SUVUIHdwZSkKKworZmluZF9wYXRoKFdQRV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9h
ZGVyLmgKKyAgICBISU5UUyAke1BDX1dQRV9JTkNMVURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJ
UlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2Vu
ZAorICAgIEhJTlRTICR7UENfV1BFX0xJQkRJUn0gJHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQor
CittYXJrX2FzX2FkdmFuY2VkKFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVf
U1RBTkRBUkRfQVJHUyhXUEUgUkVRVUlSRURfVkFSUyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJS
QVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJj
ZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5hMjg3MDYzZTEyMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlCkBAIC0wLDAgKzEsMTM4IEBACitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQor
CitzZXQoUFJPSkVDVF9WRVJTSU9OX01BSk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9S
IDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX1BBVENIIDIwMTcwMzMwKQorc2V0KFBST0pFQ1RfVkVS
U0lPTiAke1BST0pFQ1RfVkVSU0lPTl9NQUpPUn0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7
UFJPSkVDVF9WRVJTSU9OX1BBVENIfSkKK3NldChXUEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAo
V1RGX0NQVV9YODZfNjQpCisgICAgc2V0KEVOQUJMRV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkK
KyAgICBzZXQoRU5BQkxFX0ZUTF9ERUZBVUxUIE9GRikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJ
T05fQkVHSU4oKQorCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0Rf
VFJBTlNGT1JNUyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJ
QyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9Q
Uk9DRVNTIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VO
QUJMRV9GVExfREVGQVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfR0FNRVBBRCBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUo
RU5BQkxFX0dFT0xPQ0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElP
Tl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQ
UklWQVRFIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJ
QV9DT05UUk9MU19TQ1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRf
VkFMVUUoRU5BQkxFX01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZB
VUxUX1BPUlRfVkFMVUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RF
RkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVC
TElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBV
QkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19U
UkFDSyBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVf
VklFV19NT0RFX0NTU19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9S
VF9WQUxVRShFTkFCTEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05f
REVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09Q
VElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9P
UFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKwor
V0VCS0lUX09QVElPTl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUg
c3VwcG9ydCBmb3IgR1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VCS0lUX09QVElPTl9F
TkQoKQorCitzZXQoRU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitz
ZXQoRU5BQkxFX1dFQktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9N
T0RFfSkKK3NldChFTkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJ
QykKK3NldChKYXZhU2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVf
TElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkK
K3NldChXZWJLaXQyX1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChX
ZWJLaXQyX05ldHdvcmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0
KFdlYktpdDJfRGF0YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykK
KworZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQw
LjAgUkVRVUlSRUQgQ09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1
bGUpCitmaW5kX3BhY2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2Uo
Q2Fpcm8gMS4xMC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKEhhcmZCdXp6IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShM
aWJTb3VwIDIuNDIuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJ
UkVEKQorZmluZF9wYWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2Uo
UE5HIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShXZWJQIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmlu
ZF9wYWNrYWdlKEVHTCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlS
RUQpCisKK3NldChVU0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVf
V0VCX0FVRElPKQorICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGls
cykKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAg
aWYgKEVOQUJMRV9WSURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVO
VFMgdmlkZW8gdGFnKQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykK
KyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBT
RVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAg
ZW5kaWYgKCkKKworICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09N
UE9ORU5UUyAke0dTVFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklYTUU6IFdoYXQgYWJv
dXQgTVBFR1RTIHN1cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYg
KEVOQUJMRV9NRURJQV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdl
KE9wZW5XZWJSVEMpCisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNz
YWdlKEZBVEFMX0VSUk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NU
UkVBTSBhbmQgRU5BQkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQ
T1NFX1RPX0JVSUxEKFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxF
X0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIg
UkVRVUlSRUQgQ09NUE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlv
bnMoLURCVUlMRElOR19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01B
S0VfSU5TVEFMTF9EQVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQ
T1NFX1RPX0JVSUxEKFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJ
TEQoVVNFX0VHTCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJ
Q1NfQ09OVEVYVF8zRCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVS
RV9NQVBQRVIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBF
Ul9HTCBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RP
UkUgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElD
UyBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNT
X1RIUkVBREVEIFRSVUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9T
T1VSQ0VTX0RJUn0vRm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxp
dHk9aGlkZGVuIHRvIHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5v
dCB0byBiZSB1c2VkIHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4K
K2lmIChOT1QgREVWRUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAi
JHtDTUFLRV9DX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChD
TUFLRV9DWFhfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNp
YmlsaXR5PWhpZGRlbiAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBi
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQppbmRleCBkNTgw
MGExZTlkNC4uZWIyMGY3MGYzZjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWls
dC1wcm9kdWN0LWFyY2hpdmUKQEAgLTE2Myw3ICsxNjMsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28o
ZGlyZWN0b3J5KToKIAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBw
bGF0Zm9ybSwgZnVsbFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAn
d2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMn
LCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICAjIEZJWE1FOiBJbWFn
ZURpZmYgc2hvdWxkIGJlIGJ1aWx0IHdpdGggdGhlIGhvc3QgU0RLLCA8cmRhcjovL3Byb2JsZW0v
MzAyNjYwMzg+LgogICAgICMgQW4gYXBwcm9hY2ggc2ltaWxhciB0byB0aGUgb25lIHVzZWQgZm9y
IExheW91dFRlc3RSZWxheSBpbiByMTkwNTE1IHNob3VsZCBiZSBpbWxlbWVudGVkLgpAQCAtMTgy
LDcgKzE4Miw3IEBAIGRlZiBhcmNoaXZlQnVpbHRQcm9kdWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRm
b3JtLCBmdWxsUGxhdGZvcm0pOgogCiAgICAgICAgIHNodXRpbC5ybXRyZWUodGhpbkRpcmVjdG9y
eSkKIAotICAgIGVsaWYgcGxhdGZvcm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6Cisg
ICAgZWxpZiBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9y
bSA9PSAnd3BlJzoKICAgICAgICAgIyBPbiBHVEsrL0VGTCB3ZSBkb24ndCBuZWVkIHRoZSBpbnRl
cm1lZGlhdGUgc3RlcCBvZiBjcmVhdGluZyBhIHRoaW5EaXJlY3RvcnkKICAgICAgICAgIyB0byBi
ZSBjb21wcmVzc2VkIGluIGEgWklQIGZpbGUsIGJlY2F1c2Ugd2UgY2FuIGNyZWF0ZSB0aGUgWklQ
IGRpcmVjdGx5LgogICAgICAgICAjIFRoaXMgaXMgZmFzdGVyIGFuZCByZXF1aXJlcyBsZXNzIGRp
c2sgcmVzb3VyY2VzLgpAQCAtMjE2LDcgKzIxNiw3IEBAIGRlZiB1bnppcEFyY2hpdmUoZGlyZWN0
b3J5VG9FeHRyYWN0VG8sIGNvbmZpZ3VyYXRpb24pOgogCiAKIGRlZiBleHRyYWN0QnVpbHRQcm9k
dWN0KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4g
KCdtYWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBhcmNoaXZl
RmlsZSA9IG9zLnBhdGguam9pbihfdG9wTGV2ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlv
biArICcuemlwJykKIApAQCAtMjI1LDcgKzIyNSw3IEBAIGRlZiBleHRyYWN0QnVpbHRQcm9kdWN0
KGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtKToKIAogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywg
J2lvcycpOgogICAgICAgICByZXR1cm4gdW56aXBBcmNoaXZlKF90b3BMZXZlbEJ1aWxkRGlyZWN0
b3J5LCBjb25maWd1cmF0aW9uKQotICAgIGVsaWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZv
cm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCc6CisgICAgZWxpZiBwbGF0Zm9ybSA9PSAn
d2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJyBvciBwbGF0Zm9y
bSA9PSAnd3BlJzoKICAgICAgICAgcHJpbnQgJ0V4dHJhY3RpbmcnLCBfY29uZmlndXJhdGlvbkJ1
aWxkRGlyZWN0b3J5CiAgICAgICAgIHJldHVybiB1bnppcEFyY2hpdmUoX2NvbmZpZ3VyYXRpb25C
dWlsZERpcmVjdG9yeSwgY29uZmlndXJhdGlvbikKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQnVpbGRT
bGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0
L3Rlc3QtcmVzdWx0LWFyY2hpdmUKaW5kZXggM2MyYjBiZDdhMzYuLjk4MGYwNzFjMTRmIDEwMDY0
NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCisrKyBi
L1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKQEAgLTQ2LDcgKzQ2
LDcgQEAgZGVmIG1haW4oKToKICAgICByZXR1cm4gYXJjaGl2ZVRlc3RSZXN1bHRzKG9wdGlvbnMu
Y29uZmlndXJhdGlvbiwgb3B0aW9ucy5wbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpCiAK
IGRlZiBhcmNoaXZlVGVzdFJlc3VsdHMoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRl
c3RSZXN1bHRzRGlyKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0
aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdt
YWMnLCAnd2luJywgJ2d0aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnaW9zJywgJ3dwZScpCiAKICAg
ICB0cnk6CiAgICAgICAgIG9zLnVubGluayhhcmNoaXZlRmlsZSkKQEAgLTY2LDcgKzY2LDcgQEAg
ZGVmIGFyY2hpdmVUZXN0UmVzdWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVz
dFJlc3VsdHNEaXIpOgogICAgIGlmIHBsYXRmb3JtIGluICgnbWFjJywgJ2lvcycpOgogICAgICAg
ICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJkaXR0byIsICItYyIsICItayIsICItLXNlcXVlc3RlclJz
cmMiLCAiLS16bGliQ29tcHJlc3Npb25MZXZlbCIsICIyIiwgbGF5b3V0VGVzdFJlc3VsdHNEaXIs
IGFyY2hpdmVGaWxlXSk6CiAgICAgICAgICAgICByZXR1cm4gMQotICAgIGVsaWYgcGxhdGZvcm0g
aW4gKCd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycpOgorICAgIGVsaWYgcGxhdGZvcm0g
aW4gKCd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWlybycsICd3cGUnKToKICAgICAgICAgaWYg
c3VicHJvY2Vzcy5jYWxsKFsiemlwIiwgIi1yIiwgIi0yIiwgYXJjaGl2ZUZpbGUsICIuIl0sIGN3
ZD1sYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAgICAgICAgICByZXR1cm4gMQogCmRpZmYgLS1n
aXQgYS9Ub29scy9DTWFrZUxpc3RzLnR4dCBiL1Rvb2xzL0NNYWtlTGlzdHMudHh0CmluZGV4IDRi
MmVkYjhkZTk3Li41YjljZDM5Yjk5MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ01ha2VMaXN0cy50eHQK
KysrIGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKQEAgLTM1LDYgKzM1LDExIEBAIGVsc2VpZiAoIiR7
UE9SVH0iIFNUUkVRVUFMICJKU0NPbmx5IikKICAgICBpZiAoRU5BQkxFX0FQSV9URVNUUykKICAg
ICAgICAgYWRkX3N1YmRpcmVjdG9yeShUZXN0V2ViS2l0QVBJKQogICAgIGVuZGlmICgpCitlbHNl
aWYgKCIke1BPUlR9IiBTVFJFUVVBTCAiV1BFIikKKyAgICBpZiAoREVWRUxPUEVSX01PREUpCisg
ICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoSW1hZ2VEaWZmKQorICAgICAgICBhZGRfc3ViZGlyZWN0
b3J5KFdlYktpdFRlc3RSdW5uZXIpCisgICAgZW5kaWYgKCkKIGVuZGlmICgpCiAKIGlmIChXSU4z
MikKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA0
NGUwNmVkMmM0Mi4uNzA5NWNkM2Y4MDIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2OSBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVy
c2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEx
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJr
aXQtZGV2IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFp
bC93ZWJraXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBBZGQgV1BFIHN1
cHBvcnQgdG8gdmFyaW91cyB0b29saW5nIHNjcmlwdHMsIFRlc3RXZWJLaXRBUEkgYW5kIFdlYktp
dFRlc3RSdW5uZXIuCisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBD
aGFuZ2VMb2cgZW50cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBCdWlsZFNsYXZlU3VwcG9y
dC9idWlsdC1wcm9kdWN0LWFyY2hpdmU6CisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvdGVz
dC1yZXN1bHQtYXJjaGl2ZToKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBJ
bWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvYnVp
bGQtZHVtcHJlbmRlcnRyZWU6CisgICAgICAgICogU2NyaXB0cy9idWlsZC13ZWJraXQ6CisgICAg
ICAgICogU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyOgorICAgICAgICAqIFNjcmlwdHMv
dXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQ6CisgICAgICAgICogU2NyaXB0cy91cGRhdGUtd2Vi
a2l0d3BlLWxpYnM6IEFkZGVkLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGlycy5wbToKKyAg
ICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06CisgICAgICAgICogU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weToKKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvd3BlLnB5OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1BsYXRm
b3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9JbmplY3Rl
ZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvUGxhdGZv
cm1VdGlsaXRpZXNXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dwZS9t
YWluLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5m
by5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5j
cHA6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZh
dGVGb250c1dQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dl
YktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9QbGF0Zm9ybVdlYlZpZXcuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRl
clByb3h5V1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQ
RS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9s
bGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBqaGJ1aWxkL2poYnVpbGQtd3JhcHBlcjoKKyAgICAgICAgKiB3cGUvZ2VuZXJh
dGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weTogQWRkZWQuCisgICAgICAgICogd3Bl
L2poYnVpbGQubW9kdWxlczogQWRkZWQuCisgICAgICAgICogd3BlL2poYnVpbGRyYzogQWRkZWQu
CisgICAgICAgICogd3BlL3BhdGNoZXMvY2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1z
dXJmYWNlLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMt
MTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2g6
IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUt
Zm9udC1oZWlnaHQtZml4LnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nZGF0
ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaDogQWRkZWQuCisg
ICAgICAgICogd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaDogQWRkZWQuCisgICAg
ICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5T
U0wtMS4xLjAucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5z
LWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVy
YXRlX2sucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2Ut
dGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRjaGVz
L2dzdHJlYW1lci10eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYt
dGhlLS5wYXRjaDogQWRkZWQuCisKIDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFu
bnVsZW5AeWFuZGV4LnJ1PgogCiAgICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVB
REVSU19ESVIgaW4gV2ViS2l0RlMgYW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9U
b29scy9JbWFnZURpZmYvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9JbWFnZURpZmYvUGxhdGZv
cm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRiMGVl
NTMyOGJhCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNt
YWtlCkBAIC0wLDAgKzEgQEAKK2luY2x1ZGUoQ2Fpcm8uY21ha2UpCmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlIGIvVG9vbHMvU2NyaXB0cy9idWlsZC1kdW1w
cmVuZGVydHJlZQppbmRleCBjMzA5YjgyZDk4Yy4uNjliNGQwZTQ2NWQgMTAwNzU1Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKKysrIGIvVG9vbHMvU2NyaXB0cy9idWls
ZC1kdW1wcmVuZGVydHJlZQpAQCAtNjYsNyArNjYsNyBAQCBjaGRpciBGaWxlOjpTcGVjLT5jYXRk
aXIoIlRvb2xzIiwgIkR1bXBSZW5kZXJUcmVlIikgb3IgZGllOwogbXkgJHJlc3VsdDsKIGlmIChp
c0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICRyZXN1bHQgPSBidWlsZFhDb2RlUHJvamVjdCgi
RHVtcFJlbmRlclRyZWUiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lm
IChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNBbnlXaW5kb3dzKCkpIHsKK30gZWxzaWYgKGlzR3Rr
KCkgfHwgaXNFZmwoKSB8fCBpc0FueVdpbmRvd3MoKSB8fCBpc1dQRSgpKSB7CiAgICAgIyBHdGss
IEVGTCwgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0
byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKaW5kZXggYWIyNTJhYzY1MGYuLmZmNGNiMGM0ZjMxIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAt
MTAxLDYgKzEwMSw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRv
IHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogCiAgIC0tZWZsICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBCdWlsZCB0aGUgRUZMIHBvcnQKICAgLS1ndGsgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJ1aWxkIHRoZSBHVEsrIHBvcnQKKyAgLS13cGUgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIEJ1aWxkIHRoZSBXUEUgcG9ydAogICAtLXdpbmNhaXJvICAgICAgICAgICAgICAgICAgICAg
ICAgQnVpbGQgdXNpbmcgQ2Fpcm8gKHJhdGhlciB0aGFuIENvcmVHcmFwaGljcykgb24gV2luZG93
cwogCiAgIC0taW5zcGVjdG9yLWZyb250ZW5kICAgICAgICAgICAgICBDb3B5IFdlYiBJbnNwZWN0
b3IgdXNlciBpbnRlcmZhY2UgcmVzb3VyY2VzIHRvIHRoZSBidWlsZCBkaXJlY3RvcnkKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lciBiL1Rvb2xzL1Njcmlw
dHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgppbmRleCA0NGUyNWEzODUxOC4uMGZlNTFlMDgyMzQg
MTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5lcgorKysgYi9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKQEAgLTYxLDcgKzYxLDcgQEAgY2hk
aXIgIlRvb2xzL1dlYktpdFRlc3RSdW5uZXIiIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNB
cHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIldl
YktpdFRlc3RSdW5uZXIiLCAkY2xlYW4sIFhjb2RlT3B0aW9ucygpLCBAQVJHVik7Ci19IGVsc2lm
IChpc0d0aygpIHx8IGlzRWZsKCkpIHsKK30gZWxzaWYgKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBp
c1dQRSgpKSB7CiAgICAgIyBHVEsrIGFuZCBFRkwgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hv
dC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBl
bHNlIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVp
bGQgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCmluZGV4IDM4OTNk
YWZkOGVlLi5lZWQ1ZjZiZGVhMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Vi
a2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1q
aGJ1aWxkCkBAIC0yNSw5ICsyNSwxMCBAQCB1c2UgR2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFz
c190aHJvdWdoKTsKIG15ICRwbGF0Zm9ybSA9ICIiOwogJHBsYXRmb3JtID0gImVmbCIgaWYgaXNF
ZmwoKTsKICRwbGF0Zm9ybSA9ICJndGsiIGlmIGlzR3RrKCk7CiskcGxhdGZvcm0gPSAid3BlIiBp
ZiBpc1dQRSgpOwogCiBpZiAoISRwbGF0Zm9ybSkgewotICAgIGRpZSAiTm8gcGxhdGZvcm0gc3Bl
Y2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBVc2UgLS1ndGsgb3IgLS1lZmwuXG4iOwor
ICAgIGRpZSAiTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciAiIC4gYmFzZW5hbWUoJDApIC4iLiBV
c2UgLS1ndGssIC0tZWZsIG9yIC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRF
TlZ7SkhCVUlMRF9XSVBFX09OX0NIQU5HRX0gLy8gMTsKQEAgLTEzMyw3ICsxMzQsNyBAQCBkZWxl
dGUgJEVOVntBUl9GTEFHU30gaWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxh
dGl2ZVNjcmlwdHNEaXIoKSAuICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0
eVBsYXRmb3JtID0gKCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiICk7CitteSAlcHJl
dHR5UGxhdGZvcm0gPSAoICJlZmwiID0+ICJFRkwiLCAiZ3RrIiA9PiAiR1RLKyIsICJ3cGUiID0+
ICJXUEUiICk7CiAKIGlmICghJGZvcmNlICYmICFqaGJ1aWxkQ29uZmlndXJhdGlvbkNoYW5nZWQo
KSkgewogICAgIHByaW50ICRwcmV0dHlQbGF0Zm9ybXskcGxhdGZvcm19IC4gIiBwb3J0IGRlcGVu
ZGVuY2llcyBhcmUgYWxyZWFkeSB1cCB0byBkYXRlXG4iOwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3
cGUtbGlicwpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMC4uYjIzZmJkZTZi
ODMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGli
cwpAQCAtMCwwICsxLDI0IEBACisjIS91c3IvYmluL3BlcmwgLXcKKyMgQ29weXJpZ2h0IChDKSAy
MDExIElnYWxpYSBTLkwuCisjIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbgor
IworIyBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisjIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg
R2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0
IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisj
IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl
ZSB0aGUgR05VCisjIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisjCisjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNz
ZXIgR2VuZXJhbCBQdWJsaWMKKyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYg
bm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KwordXNlIEZpbmRCaW47Cit1c2UgbGliICRGaW5kQmluOjpCaW47Cit1c2Ugd2Via2l0ZGlyczsK
KworbXkgJHNjcmlwdHNEaXIgPSByZWxhdGl2ZVNjcmlwdHNEaXIoKTsKK3N5c3RlbSgicGVybCIs
ICIkc2NyaXB0c0Rpci91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZCIsICItLXdwZSIsIEBBUkdW
KSA9PSAwIG9yIGRpZSAkITsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5w
bSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBjNDBhZmY2ZjgyOC4uYmNiMWQz
ZWMwMmUgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbQorKysgYi9Ub29s
cy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KQEAgLTEwOCw2ICsxMDgsNyBAQCB1c2UgY29uc3RhbnQg
ewogICAgIE1hYyAgICAgID0+ICJNYWMiLAogICAgIEpTQ09ubHkgID0+ICJKU0NPbmx5IiwKICAg
ICBXaW5DYWlybyA9PiAiV2luQ2Fpcm8iLAorICAgIFdQRSAgICAgID0+ICJXUEUiLAogICAgIFVu
a25vd24gID0+ICJVbmtub3duIgogfTsKIApAQCAtNDQ3LDYgKzQ0OCw3IEBAIHN1YiBhcmd1bWVu
dHNGb3JDb25maWd1cmF0aW9uKCkKICAgICBwdXNoKEBhcmdzLCAnLS02NC1iaXQnKSBpZiAoaXNX
aW42NCgpKTsKICAgICBwdXNoKEBhcmdzLCAnLS1ndGsnKSBpZiBpc0d0aygpOwogICAgIHB1c2go
QGFyZ3MsICctLWVmbCcpIGlmIGlzRWZsKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYg
aXNXUEUoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwog
ICAgIHB1c2goQGFyZ3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2go
QGFyZ3MsICctLWluc3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsK
QEAgLTY4Miw3ICs2ODQsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJv
ZHVjdERpcmVjdG9yeSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7
Ci0gICAgaWYgKGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSkgeworICAgIGlmIChp
c0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkgewogICAgICAgICAk
YmluYXJ5RGlyZWN0b3J5ID0gImJpbiI7CiAgICAgfSBlbHNpZiAoaXNBbnlXaW5kb3dzKCkpIHsK
ICAgICAgICAgJGJpbmFyeURpcmVjdG9yeSA9IGlzV2luNjQoKSA/ICJiaW42NCIgOiAiYmluMzIi
OwpAQCAtOTQzLDYgKzk0NSw5IEBAIHN1YiBidWlsdER5bGliUGF0aEZvck5hbWUKICAgICAgICAg
ICAgIHJldHVybiAiJGJhc2VQcm9kdWN0RGlyLyRsaWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGNv
bmZpZ3VyYXRpb24vJGxpYnJhcnlOYW1lLmludGVybWVkaWF0ZS8kbGlicmFyeU5hbWUubGliIjsK
ICAgICAgICAgfQogICAgIH0KKyAgICBpZiAoaXNXUEUoKSkgeworICAgICAgICByZXR1cm4gIiRj
b25maWd1cmF0aW9uUHJvZHVjdERpci9saWIvbGliV1BFV2ViS2l0LnNvIjsKKyAgICB9CiAKICAg
ICBkaWUgIlVuc3VwcG9ydGVkIHBsYXRmb3JtLCBjYW4ndCBkZXRlcm1pbmUgYnVpbHQgbGlicmFy
eSBsb2NhdGlvbnMuXG5UcnkgYGJ1aWxkLXdlYmtpdCAtLWhlbHBgIGZvciBtb3JlIGluZm9ybWF0
aW9uLlxuIjsKIH0KQEAgLTEwNTgsNyArMTA2Myw4IEBAIHN1YiBkZXRlcm1pbmVQb3J0TmFtZSgp
CiAgICAgICAgIGVmbCA9PiBFZmwsCiAgICAgICAgIGd0ayA9PiBHVEssCiAgICAgICAgICdqc2Mt
b25seScgPT4gSlNDT25seSwKLSAgICAgICAgd2luY2Fpcm8gPT4gV2luQ2Fpcm8KKyAgICAgICAg
d2luY2Fpcm8gPT4gV2luQ2Fpcm8sCisgICAgICAgIHdwZSA9PiBXUEUKICAgICApOwogCiAgICAg
Zm9yIG15ICRhcmcgKHNvcnQga2V5cyAlYXJnVG9Qb3J0TmFtZSkgewpAQCAtMTA5Myw2ICsxMDk5
LDcgQEAgc3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICAgICAgICAgICAgICAtLWVmbAogICAg
ICAgICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAg
ICAgICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3Bl
Y2lmeSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2lu
ZyBvcHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAt
MTEyNSw2ICsxMTMyLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgp
IGVxIEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkg
ZXEgV1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5z
cGlyZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0x
NTI4LDYgKzE1NDAsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVs
YXRpdmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVX
ZWJLaXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZh
cmkiOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVT
Y3JpcHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MzksNiArMTU1Myw4IEBAIHN1
YiBsYXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAo
aXNBcHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAg
IH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAg
fQogfQogCkBAIC0xODQwLDYgKzE4NTYsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgICAg
ICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc0VGTCIpOwogICAgIH0gZWxzaWYgKGlz
R3RrKCkpIHsKICAgICAgICAgcHVzaChAamhidWlsZFBhdGgsICJEZXBlbmRlbmNpZXNHVEsiKTsK
KyAgICB9IGVsc2lmIChpc1dQRSgpKSB7CisgICAgICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVw
ZW5kZW5jaWVzV1BFIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZGllICJDYW5ub3QgZ2V0IEpI
QnVpbGQgcGF0aCBmb3IgcGxhdGZvcm0gdGhhdCBpc24ndCBHVEsrIG9yIEVGTC5cbiI7CiAgICAg
fQpAQCAtMTg4Miw2ICsxOTAwLDggQEAgc3ViIHdyYXBwZXJQcmVmaXhJZk5lZWRlZCgpCiAgICAg
ICAgICAgICBwdXNoKEBwcmVmaXgsICItLWVmbCIpOwogICAgICAgICB9IGVsc2lmIChpc0d0aygp
KSB7CiAgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLWd0ayIpOworICAgICAgICB9IGVsc2lm
IChpc1dQRSgpKSB7CisgICAgICAgICAgICBwdXNoKEBwcmVmaXgsICItLXdwZSIpOwogICAgICAg
ICB9CiAgICAgICAgIHB1c2goQHByZWZpeCwgInJ1biIpOwogCkBAIC0yMDQwLDcgKzIwNjAsNyBA
QCBzdWIgZ2VuZXJhdGVCdWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKICAgICBwdXNoIEBhcmdz
LCAnLURTSE9XX0JJTkRJTkdTX0dFTkVSQVRJT05fUFJPR1JFU1M9MScgdW5sZXNzICgkd2lsbFVz
ZU5pbmphICYmIC10IFNURE9VVCk7CiAKICAgICAjIFNvbWUgcG9ydHMgaGF2ZSBwcm9kdWN0aW9u
IG1vZGUsIGJ1dCBidWlsZC13ZWJraXQgc2hvdWxkIGFsd2F5cyB1c2UgZGV2ZWxvcGVyIG1vZGUu
Ci0gICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkgfHwgaXNH
dGsoKSB8fCBpc0pTQ09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1P
TiIgaWYgaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCk7CiAKICAg
ICAjIERvbid0IHdhcm4gdmFyaWFibGVzIHdoaWNoIGFyZW4ndCB1c2VkIGJ5IGNtYWtlIHBvcnRz
LgogICAgIHB1c2ggQGFyZ3MsICItLW5vLXdhcm4tdW51c2VkLWNsaSI7CkBAIC0yMTIxLDYgKzIx
NDEsMTAgQEAgc3ViIGJ1aWxkQ01ha2VQcm9qZWN0T3JFeGl0KCQkJEApCiAgICAgICAgIHN5c3Rl
bSgicGVybCIsICIkc291cmNlRGlyL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdGd0ay1saWJz
IikgPT0gMCBvciBkaWUgJCE7CiAgICAgfQogCisgICAgaWYgKGlzV1BFKCkgJiYgY2hlY2tGb3JB
cmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXVwZGF0ZS13cGUiKSkgeworICAgICAgICBzeXN0
ZW0oInBlcmwiLCAiJHNvdXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXR3cGUtbGli
cyIpID09IDAgb3IgZGllICQhOworICAgIH0KKwogICAgICRyZXR1cm5Db2RlID0gZXhpdFN0YXR1
cyhnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdCgkcHJlZml4UGF0aCwgQGNtYWtl
QXJncykpOwogICAgIGV4aXQoJHJldHVybkNvZGUpIGlmICRyZXR1cm5Db2RlOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0KaW5kZXggYjc3ZTJhMGRmMmMuLjRjNzRkOWM0
MGUxIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCkBAIC0xNDcsMTAg
KzE0NywxMCBAQCBwcm9oaWJpdFVua25vd25Qb3J0KCk7CiAKIG15IEBmZWF0dXJlcyA9ICgKICAg
ICB7IG9wdGlvbiA9PiAiM2QtcmVuZGVyaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIDNEIFJlbmRlcmlu
ZyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZh
dWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkg
fHwgaXNFZmwoKSksIHZhbHVlID0+IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFXzNEX1RSQU5TRk9STVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29j
b2FXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQ
RSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBBY2NlbGVyYXRl
ZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRF
RF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZh
c1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZB
UyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVyYXRlZDJEQ2FudmFzU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxkIiwgZGVzYyA9PiAiVG9n
Z2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUxMSU5PTkVf
QlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBcJGFsbEluT25lQnVpbGQg
fSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUg
PT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3Nz
LWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0IHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkg
fHwgaXNHdGsoKSksIHZhbHVlID0+IFwkY3NzSW1hZ2VTZXRTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfU0VUIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0
aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1
cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+
IDEsIHZhbHVlID0+IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBt
eSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5U
IiwgZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQg
fSwKIAogICAgIHsgb3B0aW9uID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dn
bGUgRGV2aWNlIE9yaWVudGF0aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
REVWSUNFX09SSUVOVEFUSU9OIiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBc
JGRldmljZU9yaWVudGF0aW9uU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVW
SUNFX09SSUVOVEFUSU9OIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwg
dmFsdWUgPT4gXCRkZXZpY2VPcmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+
ICJkb200LWV2ZW50cy1jb25zdHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBj
b25zdHJ1Y3RvcnMiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RS
VUNUT1IiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgp
KSwgdmFsdWUgPT4gXCRkb200RXZlbnRzQ29uc3RydWN0b3IgfSwKQEAgLTIyNSw3ICsyMjUsNyBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9GT05UX0xPQURfRVZF
TlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGZvbnRMb2FkRXZlbnRzU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gImZ0bC1qaXQiLCBkZXNjID0+ICJUb2dnbGUgRlRMSklUIHN1cHBv
cnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlzWDg2
XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3Vw
cG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRMX0pJVCIsIGRlZmF1bHQgPT4gKGlz
WDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUg
PT4gXCRmdGxKSVRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZnRwZGlyIiwgZGVzYyA9
PiAiVG9nZ2xlIEZUUCBEaXJlY3Rvcnkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9GVFBESVIiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkZnRwRGlyU3VwcG9ydCB9LApAQCAt
MjM3LDcgKzIzNyw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0dBTUVQQUQiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkZ2FtZXBhZFN1cHBvcnQgfSwKIAog
ICAgIHsgb3B0aW9uID0+ICJnZW9sb2NhdGlvbiIsIGRlc2MgPT4gIlRvZ2dsZSBHZW9sb2NhdGlv
biBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVs
dCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0Vm
bCgpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0dFT0xPQ0FUSU9OIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzSU9T
V2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGdl
b2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBpLWNhbnZhcyIs
IGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkp
LCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyArMjQ2LDcgQEAg
bXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRBVEFCQVNFIiwg
ZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJhc2VTdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2MgPT4gIlRvZ2ds
ZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzRWZs
KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkaW5kZXhlZERhdGFiYXNlU3VwcG9ydCB9LAorICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBw
bGVDb2NvYVdlYktpdCgpIHx8IGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUg
PT4gXCRpbmRleGVkRGF0YWJhc2VTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5wdXQt
c3BlZWNoIiwgZGVzYyA9PiAiVG9nZ2xlIElucHV0IFNwZWVjaCBzdXBwb3J0IiwKICAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0lOUFVUX1NQRUVDSCIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRp
bnB1dFNwZWVjaFN1cHBvcnQgfSwKQEAgLTMxMiw3ICszMTIsNyBAQCBteSBAZmVhdHVyZXMgPSAo
CiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NRVRFUl9FTEVNRU5UIiwgZGVmYXVsdCA9PiAhaXNB
cHBsZVdpbldlYktpdCgpLCB2YWx1ZSA9PiBcJG1ldGVyRWxlbWVudFN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJtaHRtbCIsIGRlc2MgPT4gIlRvZ2dsZSBNSFRNTCBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc0Vm
bCgpKSwgdmFsdWUgPT4gXCRtaHRtbFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X01IVE1MIiwgZGVmYXVsdCA9PiAoaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1
ZSA9PiBcJG1odG1sU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1vdXNlLWN1cnNvci1z
Y2FsZSIsIGRlc2MgPT4gIlRvZ2dsZSBTY2FsZWQgbW91c2UgY3Vyc29yIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFIiwgZGVmYXVsdCA9PiBpc0Vm
bCgpLCB2YWx1ZSA9PiBcJG1vdXNlQ3Vyc29yU2NhbGVTdXBwb3J0IH0sCkBAIC0zMjQsNyArMzI0
LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkFWSUdBVE9S
X0hXQ09OQ1VSUkVOQ1kiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkaGFyZHdhcmVDb25jdXJy
ZW5jeVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJuZXRzY2FwZS1wbHVnaW4tYXBpIiwg
ZGVzYyA9PiAiVG9nZ2xlIE5ldHNjYXBlIFBsdWdpbiBBUEkgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJL
aXQoKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpbkFQSVN1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+ICghaXNJT1NXZWJL
aXQoKSAmJiAhaXNXUEUoKSksIHZhbHVlID0+IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAibm9zbmlmZiIsIGRlc2MgPT4gIlRvZ2dsZSBzdXBwb3J0IGZv
ciAnWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlmZiciLAogICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfTk9TTklGRiIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4gXCRub3NuaWZmU3Vw
cG9ydCB9LApAQCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQo
KSwgdmFsdWUgPT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJwZXJmb3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBU
aW1lbGluZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJ
TUVMSU5FIiwgZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxp
bmVTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElO
RSIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFu
Y2VUaW1lbGluZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRz
IiwgZGVzYyA9PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBc
JHByb3hpbWl0eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVy
ZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAw
LCB2YWx1ZSA9PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0
b3VjaC1ldmVudHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJL
aXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRzU3VwcG9y
dCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAo
aXNJT1NXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+
IFwkdG91Y2hFdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtaWNvbi1s
b2FkaW5nIiwgZGVzYyA9PiAiVG9nZ2xlIFRvdWNoIEljb24gTG9hZGluZyBTdXBwb3J0IiwKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORyIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCR0b3VjaEljb25Mb2FkaW5nU3VwcG9ydCB9LApAQCAtMzc4LDE2ICszNzgsMTYg
QEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklCUkFUSU9OIiwg
ZGVmYXVsdCA9PiBpc0VmbCgpLCB2YWx1ZSA9PiBcJHZpYnJhdGlvblN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ2aWRlbyIsIGRlc2MgPT4gIlRvZ2dsZSBWaWRlbyBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgp
IHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0IH0sCisgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8
fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0
IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidmlkZW8tdHJhY2siLCBkZXNjID0+ICJUb2dnbGUgVmlk
ZW8gVHJhY2sgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFT19UUkFDSyIs
IGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2YWx1
ZSA9PiBcJHZpZGVvVHJhY2tTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURF
T19UUkFDSyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZs
KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJ3ZWItYW5pbWF0aW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9u
cyBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVm
YXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdlYkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAid2ViLWF1ZGlvIiwgZGVzYyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gKGlzRWZsKCkg
fHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCisgICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkgfHwg
aXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4gaXNBcHBsZUNvY29h
V2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAtNDAyLDEwICs0MDIs
MTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1RJTUlO
RyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2ViQXNzZW1ibHkgc3Vw
cG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRlZmF1bHQgPT4g
KGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVlID0+IFwkd2Vi
QXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIs
IGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkgfHwgaXNX
UEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwKLSAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwg
aXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkg
fHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHdlYmdsU3VwcG9y
dCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndyaXRhYmxlU3RyZWFtQVBJIiwgZGVzYyA9PiAiVG9n
Z2xlIFdyaXRhYmxlU3RyZWFtIEFQSSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1dSSVRBQkxFX1NUUkVBTV9BUEkiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+IFwkd3JpdGFibGVT
dHJlYW1BUElTdXBwb3J0IH0sCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9s
YXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0cy5weQppbmRleCA3YzZkZGM4MzlmMy4uNTcyZThh
NWU3N2QgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcnVuX3dlYmtpdF90ZXN0cy5weQpAQCAtNDI0LDcgKzQyNCw3IEBAIGRlZiBfc2V0X3VwX2Rl
cml2ZWRfb3B0aW9ucyhwb3J0LCBvcHRpb25zKToKICAgICAgICAgb3B0aW9ucy52ZXJib3NlID0g
VHJ1ZQogCiAgICAgIyBUaGUgR1RLKyBhbmQgRUZMIHBvcnRzIG9ubHkgc3VwcG9ydCBXZWJLaXQy
IHNvIHRoZXkgYWx3YXlzIHVzZSBXS1RSLgotICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gPT0gImd0
ayIgb3Igb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZWZsIjoKKyAgICBpZiBvcHRpb25zLnBsYXRmb3Jt
IGluIFsiZWZsIiwgImd0ayIsICJ3cGUiXToKICAgICAgICAgb3B0aW9ucy53ZWJraXRfdGVzdF9y
dW5uZXIgPSBUcnVlCiAKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0
L2ZhY3RvcnkucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQppbmRl
eCBjNjFkMTdmNjUzNC4uYTcxNjQ5OWIzMjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9mYWN0b3J5LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9m
YWN0b3J5LnB5CkBAIC01Niw2ICs1Niw5IEBAIGRlZiBwbGF0Zm9ybV9vcHRpb25zKHVzZV9nbG9i
cz1GYWxzZSk6CiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWd0aycsIGFjdGlvbj0n
c3RvcmVfY29uc3QnLCBkZXN0PSdwbGF0Zm9ybScsCiAgICAgICAgICAgICBjb25zdD0oJ2d0ayon
IGlmIHVzZV9nbG9icyBlbHNlICdndGsnKSwKICAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3Ig
LS1wbGF0Zm9ybT1ndGsqJyBpZiB1c2VfZ2xvYnMgZWxzZSAnQWxpYXMgZm9yIC0tcGxhdGZvcm09
Z3RrJykpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS13cGUnLCBhY3Rpb249J3N0
b3JlX2NvbnN0JywgZGVzdD0ncGxhdGZvcm0nLAorICAgICAgICAgICAgY29uc3Q9KCd3cGUqJyBp
ZiB1c2VfZ2xvYnMgZWxzZSAnd3BlJyksCisgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0t
cGxhdGZvcm09d3BlJykpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1uby1pbnN0
YWxsJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsCiAgICAgICAgICAgICBjb25zdD1GYWxzZSwgZGVm
YXVsdD1UcnVlLCBkZXN0PSdpbnN0YWxsJywKICAgICAgICAgICAgIGhlbHA9J1NraXAgaW5zdGFs
bCBzdGVwIGZvciBkZXZpY2UgYW5kIHNpbXVsYXRvciB0ZXN0aW5nJyksCkBAIC05Nyw2ICsxMDAs
NyBAQCBjbGFzcyBQb3J0RmFjdG9yeShvYmplY3QpOgogICAgICAgICAndGVzdC5UZXN0UG9ydCcs
CiAgICAgICAgICd3aW4uV2luQ2Fpcm9Qb3J0JywKICAgICAgICAgJ3dpbi5XaW5Qb3J0JywKKyAg
ICAgICAgJ3dwZS5XUEVQb3J0JywKICAgICApCiAKICAgICBkZWYgX19pbml0X18oc2VsZiwgaG9z
dCk6CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uY2M4MzllN2ZjMDIKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvd3BlLnB5CkBAIC0wLDAgKzEsNzggQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorIyBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0
aGVyIHRoZSBHb29nbGUgbmFtZSBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMg
bWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQor
IyB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVS
UyBBTkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm1lbW9pemVkIGltcG9ydCBtZW1vaXplZAorZnJvbSB3ZWJraXRw
eS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlvbiBpbXBvcnQgVGVzdENvbmZp
Z3VyYXRpb24KK2Zyb20gd2Via2l0cHkucG9ydC5iYXNlIGltcG9ydCBQb3J0Citmcm9tIHdlYmtp
dHB5LnBvcnQubGludXhfZ2V0X2NyYXNoX2xvZyBpbXBvcnQgR0RCQ3Jhc2hMb2dHZW5lcmF0b3IK
KworY2xhc3MgV1BFUG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVm
IF9faW5pdF9fKHNlbGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQs
IHNlbGYpLl9faW5pdF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91
bGRfdXNlX2poYnVpbGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtz
ZWxmLnBhdGhfZnJvbV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdy
YXBwZXInKSwgJy0td3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVm
YXVsdCgnd3JhcHBlcicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBk
ZWYgZGVmYXVsdF90aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAg
ZGVmIF9idWlsdF9leGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJu
IHNlbGYuX2J1aWxkX3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9s
aWJyYXJpZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9w
YXRoKCooKCdsaWInLCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRz
KHNlbGYpOgorICAgICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25f
Zm9yX3NlcnZlcihzZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQg
PSBzdXBlcihXUEVQb3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25h
bWUpCisgICAgICAgIGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScK
KyAgICAgICAgZW52aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFN
RSddID0gc2VsZi5fYnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRs
ZS5zbycpCisgICAgICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRI
J10gPSBzZWxmLl9idWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25t
ZW50WydXRUJLSVRfRVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAg
ICByZXR1cm4gZW52aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmln
dXJhdGlvbnMoc2VsZik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9y
IGJ1aWxkX3R5cGUgaW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1
cmF0aW9ucy5hcHBlbmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBh
cmNoaXRlY3R1cmU9J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVy
biBjb25maWd1cmF0aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAg
ICAgcmV0dXJuIHNlbGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgp
KQorCisgICAgZGVmIF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBz
ZWxmLl9idWlsdF9leGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRf
Y3Jhc2hfbG9nKHNlbGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgor
ICAgICAgICBuYW1lID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVs
c2UgbmFtZQorICAgICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBu
ZXdlcl90aGFuLCBzZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJh
dGVfY3Jhc2hfbG9nKHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUu
Y21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxLDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJF
Q1RPUlkgIiR7Q01BS0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikK
K3NldChURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdF
QktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNl
c3NhcnkgYmVjYXVzZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGgg
V2ViS2l0MgorIyBkaXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRo
ZSBXZWJLaXQyIGhlYWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18p
CisKK2FkZF9jdXN0b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisg
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJ
X0RJUn0gLS1vdXRwdXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAt
LXBsYXRmb3JtIHNvdXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJz
CispCisKK3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2Vi
S2l0QVBJLWZvcndhcmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAk
e0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9K
YXZhU2NyaXB0Q29yZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJ
Ql9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRl
c3RfbWFpbl9TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCisp
CisKK3NldChidW5kbGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0v
d3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElf
RElSfS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0
KEFQUEVORCBUZXN0V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9X
VEYvZ2xpYi9HVW5pcXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dU
Ri9nbGliL1dvcmtRdWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1
dGFibGUoVGVzdFdlYkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdF
QktJVEFQSV9ESVJ9L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElS
fS9UZXN0cy9XZWJDb3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJ
X0RJUn0vVGVzdHMvV2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9E
SVJ9L1Rlc3RzL1dlYkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3Rz
L1dlYkNvcmUvU2hhcmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0cy9XZWJDb3JlL0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVz
dHMvV2ViQ29yZS9QdWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhU
ZXN0V2ViQ29yZSAke3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhU
ZXN0V2ViQ29yZSAke0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKwor
YWRkX3Rlc3QoVGVzdFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVD
VE9SWX0vV2ViQ29yZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJD
b3JlIFBST1BFUlRJRVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2Vi
Q29yZSBQUk9QRVJUSUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElf
UlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BF
LmNwcApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1
bmRsZUNvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIElu
amVjdGVkQnVuZGxlQ29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS93cGUvUGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUv
UGxhdGZvcm1VdGlsaXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lMjFjMWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2ds
aWIvR1JlZlB0ci5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJs
ZSBzZWNvbmRzKQoreworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3Rh
dGljIGNoYXIqIGdldEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3Qg
Y2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYo
dmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVz
IGVudmlyb25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAg
ICAgZXhpdCgxKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBn
X2ZpbGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKwor
V0tTdHJpbmdSZWYgY3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRy
PGNoYXI+IGluamVjdGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlh
YmxlQXNVVEY4KCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIp
KTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9m
aWxlbmFtZShpbmplY3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0
ZWRCdW5kbGUuc28iLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVU
RjhDU3RyaW5nKGluamVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBj
cmVhdGVVUkxGb3JSZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0
ZW5zaW9uKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0Rmls
ZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJ
VDJfUkVTT1VSQ0VTX1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2Vu
YW1lKGdfc3RyZHVwX3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAg
R1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJl
c291cmNlc1BhdGguZ2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAg
ICBHUmVmUHRyPEdGaWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3Jf
cGF0aChyZXNvdXJjZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNv
dXJjZVVSSShnX2ZpbGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4g
V0tVUkxDcmVhdGVXaXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8v
IG5hbWVzcGFjZSBVdGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2
OGI2YzMyZAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4u
Y3BwCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJv
bGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJu
IFRlc3RXZWJLaXRBUEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFy
Z3YpID8gRVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmNwcAppbmRleCAwYTEzMGQ0ZThkZC4uZGUyYmUzZTdiY2QgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNj
ZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVy
biBXS0FjY2Vzc2liaWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZMKQorI2lmICFQTEFURk9STShHVEspICYm
ICFQTEFURk9STShFRkwpICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsKICAgICBXS0J1
bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5wYWdlKCktPnBh
Z2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUv
QWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCA1Y2YwZDczOWMxZS4uYzhk
NzhlNzdhMTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTczLDcgKzczLDcg
QEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0cjxOb3RpZmlj
YXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0jZWxzZQorI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFjY2Vzc2liaWxpdHlO
b3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7CiAjZW5kaWYK
IH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3Rl
ZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAyMzNmZjdkMjAzNC4uYjhh
ZjZmMTZjYTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAtNzgsNyArNzgs
NyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBtZXRob2RzIG9uIHZh
cmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90aGVyIHBsYXRmb3Jt
cyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICghUExBVEZPUk0oR1RLKSAmJiAh
UExBVEZPUk0oRUZMKSkgfHwgIUhBVkUoQUNDRVNTSUJJTElUWSkKKyNpZiAoIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKEVGTCkgJiYgIVBMQVRGT1JNKFdQRSkpIHx8ICFIQVZFKEFDQ0VTU0lC
SUxJVFkpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
Y2hhcmFjdGVyQXRPZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CiBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkgeyBy
ZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50LmgKaW5kZXggNTUwOWFmMjE3N2QuLjZkMDcwNjc4YjllIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlV
SUVsZW1lbnQuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0Fj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQuaApAQCAtMzE3LDcgKzMxNyw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBnZXRVSUVsZW1lbnRzV2l0aEF0dHJpYnV0ZShKU1N0cmluZ1JlZiwgVmVjdG9yPFJlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JikgY29uc3Q7CiAjZW5kaWYKIAotI2lmIFBMQVRG
T1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKKyNpZiBQTEFURk9S
TShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpIHx8IFBMQVRGT1JNKFdQ
RSkKICAgICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gPiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxl
bmd0aCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IGFmZmM0MGYwZTQzLi4wMTkxMzYyMzc0ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVy
LmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5u
ZXIuY3BwCkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwg
bV9kYXRhYmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFs
c2UpCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVu
TG9vcDo6bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJG
aXJlZCkKICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Jbmpl
Y3RlZEJ1bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL1Rlc3RSdW5uZXIuaAppbmRleCA4ZGM4OWNhMzE1ZS4uNGRiMjhhZDRhMmMgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5o
CkBAIC0zOCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUg
PENvcmVGb3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29w
VGltZXJSZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
bmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJX
UEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNz
aWJpbGl0eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApA
QCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgor
ICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExl
c3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5z
ZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws
CisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg
d2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisg
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwor
dm9pZCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJp
bmdSZWYgaWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpw
bGF0Zm9ybU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlcjo6cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVu
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9s
bGVyOjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250
cm9sbGVyOjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5k
aWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0
OTE1MGE1NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJh
bCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMg
bGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRp
b24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAy
MTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVu
Q291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVt
ZW50QXRQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9m
Q2hpbGQoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdElu
ZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5k
ZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmls
aXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4
KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpyb3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNp
Z25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJv
d0F0SW5kZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2Vk
VUlFbGVtZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmF0dHJpYnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0
cmluZ1JlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUo
SlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDAuMDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRBcnJheUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVm
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVl
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJv
b2xBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRl
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnN1YnJvbGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b2xlRGVzY3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpjb21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9
CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp3aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOwor
fQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2lu
dFkoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91
YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24o
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzRGVjcmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0Vu
YWJsZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Citib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNTZWxlY3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlv
bkFjdGl2ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGll
cmFyY2hpY2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpzcGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29u
c3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZm
ZWN0cygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRp
b24oaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmJvdW5kc0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVk
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pT
UmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVk
U3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWdu
ZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNh
dGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJl
ZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYs
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwg
Ym9vbCwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
c2VsZWN0VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVl
UmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJz
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
c09mQ29sdW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmF0dHJpYnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVk
LCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFu
Z2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWdu
ZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNy
ZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGls
ZEF0SW5kZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4
KHVuc2lnbmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNS
ZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJ
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYg
ZnVuY3Rpb25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRp
b25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzVmlzaWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlz
U2luZ2xlTGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rp
b24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
CitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxp
dHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JU
ZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZv
ckJvdW5kcyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQs
IGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRN
YXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3Ry
aW5nUmVmLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtl
ckZvckluZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
Kwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNjcm9sbFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0
aFN1YkZvY3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3Vw
cG9ydGVkQWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1Jl
dGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlw
dHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChp
bnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
fSAvLyBuYW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZh
dGVGb250c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVk
ZSA8Zm9udGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxp
dGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdU
UiB7CisKK0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9w
TGV2ZWxEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICBy
ZXR1cm4gdG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFy
aWFibGUgd2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAg
IC8vIFdlYktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0
aGlzIHdpbGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5k
YXJkLCBidXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0
cjxjaGFyPiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJs
ZVBhdGgoKS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChn
X2J1aWxkX2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxw
dHIpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRo
KGxheW91dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVs
UGF0aC5nZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNo
YXIqIHdlYmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAg
aWYgKHdlYmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKwor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQ
YXRoKCkuZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1
dERpci5nZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBD
U3RyaW5nIHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gZm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwg
IkRlcGVuZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0
cikpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdG
aWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAg
ICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9u
dHMgcGF0aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRw
dXREaXIuZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdf
ZmlsZV90ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVf
VEVTVF9FWElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRz
UGF0aC5nZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVG
b250cygpCit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVS
X0ZPTlRDT05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJ
bml0KCk7CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9y
IHJlbW92ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRv
IHJlc2V0IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFm
ZmVjdGluZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBG
Y0ZvbnRTZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRp
b24pOworICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250
ID09IG51bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1
cmF0aW9uIGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAg
IC8vIG5hbWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyog
Y29uZmlnID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29u
ZmlnRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYi
LCBudWxscHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0
KCksIEdfRklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmlu
ZCBmb250cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlm
ICghRmNDb25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgq
Pihmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291
bGRuJ3QgbG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdG
aWxlbmFtZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgp
OworICAgIGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5v
dCBsb2NhdGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9u
dHNQYXRoLmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdf
ZGlyX29wZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25z
dCBjaGFyKiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5n
ZXQoKSkpIHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAi
LnR0ZiIpICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdf
YnVpbGRfZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIp
KTsKKyAgICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdf
ZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAg
IH0KKworICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09O
Rl9ESVIsICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZv
bnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxl
bmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVz
ISIsIGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBm
b250RmlsZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIs
CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRX
ZWlnaHRXYXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0
ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJL
aXRXZWlnaHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAw
LnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJX
ZWJLaXRXZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVl
UHRyPGdjaGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwg
Ii4uIiwgIi4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAg
ICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZj
Q2hhcjgqPihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxk
IG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisg
ICAgLy8gQSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQ
dHI8Z2NoYXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFt
ZShGT05UU19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIp
KTsKKyAgICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9j
YXN0PEZjQ2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisg
ICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1Zh
bGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJl
bnQoY29uZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBm
b250IGNvbmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMo
Y29uZmlnLCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
SW5qZWN0ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgor
CituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFs
aXplKFdLVHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1
NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVm
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
VGVzdFJ1bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmlu
Z0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxp
ZGF0ZVdhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRv
Z1RpbWVyLnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUo
KQoreworfQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcklmTmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNB
Y3RpdmUoKSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3Qo
bV90aW1lb3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNr
YWdlKExpYkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlS
RUQpCisKK2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFk
ZXJzCisgICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0
cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRf
VEVTVFJVTk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0
Zm9ybSB3cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9O
QU1FIFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBX
ZWJLaXRUZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fp
cm8vVGVzdEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElS
fS93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJ
Un0vd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9E
SVJ9L3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9E
SVJ9L3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJ
Un0vd3BlL21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRs
ZS93cGUKKyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURF
X0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJ
UlN9CisgICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktp
dFRlc3RSdW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElC
X0xJQlJBUklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJS
QVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9T
T1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9B
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lO
SkVDVEVEQlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRz
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUv
SW5qZWN0ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJV
TkRMRV9ESVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisg
ICAgLURGT05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2Zv
bnRzIgorICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDcxYTRlNzY2MTc2Li41NDJm
MDM2NmQ1NyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZp
ZXcuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01
Myw2ICs1MywxMSBAQCB0eXBlZGVmIGNhaXJvX3N1cmZhY2VfdCAqUGxhdGZvcm1JbWFnZTsKICNl
bGlmIFBMQVRGT1JNKEVGTCkKIHR5cGVkZWYgRXZhc19PYmplY3QqIFBsYXRmb3JtV0tWaWV3Owog
dHlwZWRlZiBFY29yZV9FdmFzKiBQbGF0Zm9ybVdpbmRvdzsKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
K2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQ7Cit0eXBlZGVmIFdLVmlld1JlZiBQbGF0Zm9ybVdL
VmlldzsKK3R5cGVkZWYgSGVhZGxlc3NWaWV3QmFja2VuZCogUGxhdGZvcm1XaW5kb3c7Cit0eXBl
ZGVmIGNhaXJvX3N1cmZhY2VfdCogUGxhdGZvcm1JbWFnZTsKICNlbmRpZgogCiBuYW1lc3BhY2Ug
V1RSIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIu
Y3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKaW5kZXggOWI3
MDllMzZmNzUuLmFkMTlmMTBiNDI4IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcApAQCAtNzY3LDcgKzc2Nyw3IEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0
U3RhdGVUb0NvbnNpc3RlbnRWYWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAg
Ly8gc29tZSBvdGhlciBjb2RlIGRvaW5nIHRoaXMsIGl0IHNob3VsZCBwcm9iYWJseSBiZSByZXNw
b25zaWJsZSBmb3IgY2xlYW51cCB0b28uCiAgICAgcmVzZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVu
dFZhbHVlcyhvcHRpb25zKTsKIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0o
Q09DT0EpICYmICFQTEFURk9STShXUEUpCiAgICAgV0tUZXh0Q2hlY2tlckNvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZCh0cnVlKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41MWVlMGZjMmU1NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2VuZGVyUHJveHlXUEUuY3Bw
CkBAIC0wLDAgKzEsMTIxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudFNlbmRlclBy
b3h5LmgiCisKK25hbWVzcGFjZSBXVFIgeworCitFdmVudFNlbmRlclByb3h5OjpFdmVudFNlbmRl
clByb3h5KFRlc3RDb250cm9sbGVyKiB0ZXN0Q29udHJvbGxlcikKKyAgICA6IG1fdGVzdENvbnRy
b2xsZXIodGVzdENvbnRyb2xsZXIpCisgICAgLCBtX3RpbWUoMCkKKyAgICAsIG1fbGVmdE1vdXNl
QnV0dG9uRG93bihmYWxzZSkKKyAgICAsIG1fY2xpY2tDb3VudCgwKQorICAgICwgbV9jbGlja1Rp
bWUoMCkKKyAgICAsIG1fY2xpY2tCdXR0b24oa1dLRXZlbnRNb3VzZUJ1dHRvbk5vQnV0dG9uKQor
eworfQorCitFdmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VEb3duKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJz
KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlVXAodW5zaWduZWQsIFdLRXZl
bnRNb2RpZmllcnMpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VNb3ZlVG8o
ZG91YmxlLCBkb3VibGUpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3Jv
bGxCeShpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50LCBpbnQsIGludCwgaW50KQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCwgaW50
LCBib29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJkKGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3RyaW5nUmVmLCBXS0V2
ZW50TW9kaWZpZXJzLCB1bnNpZ25lZCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojph
ZGRUb3VjaFBvaW50KGludCwgaW50KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnVw
ZGF0ZVRvdWNoUG9pbnQoaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclBy
b3h5OjpzZXRUb3VjaE1vZGlmaWVyKFdLRXZlbnRNb2RpZmllcnMsIGJvb2wpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hQb2ludFJhZGl1cyhpbnQsIGludCkKK3sKK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaFN0YXJ0KCkKK3sKK30KKwordm9pZCBFdmVu
dFNlbmRlclByb3h5Ojp0b3VjaE1vdmUoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6
OnRvdWNoRW5kKCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaENhbmNlbCgp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6Y2xlYXJUb3VjaFBvaW50cygpCit7Cit9
CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6cmVsZWFzZVRvdWNoUG9pbnQoaW50KQoreworfQor
Cit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNhbmNlbFRvdWNoUG9pbnQoaW50KQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvSGVh
ZGxlc3NWaWV3QmFja2VuZC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjU2MGI0MGEzZWZiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5jcHAKQEAgLTAsMCArMSwyNTAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkhlYWRsZXNzVmlld0JhY2tlbmQuaCIKKworI2luY2x1ZGUgPGNhc3Nl
cnQ+CisjaW5jbHVkZSA8ZmNudGwuaD4KKyNpbmNsdWRlIDx1bmlzdGQuaD4KKworLy8gRklYTUU6
IERlcGxveSBnb29kIHByYWN0aWNlcyBhbmQgY2xlYW4gdXAgR0JNIHJlc291cmNlcyBhdCBwcm9j
ZXNzIGV4aXQuCitzdGF0aWMgRUdMRGlzcGxheSBnZXRFR0xEaXNwbGF5KCkKK3sKKyAgICBzdGF0
aWMgRUdMRGlzcGxheSBzX2Rpc3BsYXkgPSBFR0xfTk9fRElTUExBWTsKKyAgICBpZiAoc19kaXNw
bGF5ID09IEVHTF9OT19ESVNQTEFZKSB7CisgICAgICAgIGludCBmZCA9IG9wZW4oIi9kZXYvZHJp
L3JlbmRlckQxMjgiLCBPX1JEV1IgfCBPX0NMT0VYRUMgfCBPX05PQ1RUWSB8IE9fTk9OQkxPQ0sp
OworICAgICAgICBpZiAoZmQgPCAwKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZ
OworCisgICAgICAgIHN0cnVjdCBnYm1fZGV2aWNlKiBkZXZpY2UgPSBnYm1fY3JlYXRlX2Rldmlj
ZShmZCk7CisgICAgICAgIGlmICghZGV2aWNlKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19E
SVNQTEFZOworCisgICAgICAgIEVHTERpc3BsYXkgZGlzcGxheSA9IGVnbEdldERpc3BsYXkoZGV2
aWNlKTsKKyAgICAgICAgaWYgKGRpc3BsYXkgPT0gRUdMX05PX0RJU1BMQVkpCisgICAgICAgICAg
ICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CisKKyAgICAgICAgaWYgKCFlZ2xJbml0aWFsaXplKGRp
c3BsYXksIG51bGxwdHIsIG51bGxwdHIpKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQ
TEFZOworCisgICAgICAgIGlmICghZWdsQmluZEFQSShFR0xfT1BFTkdMX0VTX0FQSSkpCisgICAg
ICAgICAgICByZXR1cm4gRUdMX05PX0RJU1BMQVk7CisKKyAgICAgICAgc19kaXNwbGF5ID0gZGlz
cGxheTsKKyAgICB9CisKKyAgICByZXR1cm4gc19kaXNwbGF5OworfQorCitIZWFkbGVzc1ZpZXdC
YWNrZW5kOjpIZWFkbGVzc1ZpZXdCYWNrZW5kKCkKK3sKKyAgICBtX2VnbC5kaXNwbGF5ID0gZ2V0
RUdMRGlzcGxheSgpOworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb25maWdBdHRyaWJ1dGVz
WzEzXSA9IHsKKyAgICAgICAgRUdMX1NVUkZBQ0VfVFlQRSwgRUdMX1dJTkRPV19CSVQsCisgICAg
ICAgIEVHTF9SRURfU0laRSwgMSwKKyAgICAgICAgRUdMX0dSRUVOX1NJWkUsIDEsCisgICAgICAg
IEVHTF9CTFVFX1NJWkUsIDEsCisgICAgICAgIEVHTF9BTFBIQV9TSVpFLCAxLAorICAgICAgICBF
R0xfUkVOREVSQUJMRV9UWVBFLCBFR0xfT1BFTkdMX0VTMl9CSVQsCisgICAgICAgIEVHTF9OT05F
CisgICAgfTsKKworICAgIEVHTGludCBudW1Db25maWdzOworICAgIEVHTEJvb2xlYW4gcmV0ID0g
ZWdsQ2hvb3NlQ29uZmlnKG1fZWdsLmRpc3BsYXksIGNvbmZpZ0F0dHJpYnV0ZXMsICZtX2VnbC5j
b25maWcsIDEsICZudW1Db25maWdzKTsKKyAgICBpZiAoIXJldCB8fCAhbnVtQ29uZmlncykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgc3RhdGljIGNvbnN0IEVHTGludCBjb250ZXh0QXR0cmlidXRl
c1szXSA9IHsKKyAgICAgICAgRUdMX0NPTlRFWFRfQ0xJRU5UX1ZFUlNJT04sIDIsCisgICAgICAg
IEVHTF9OT05FCisgICAgfTsKKworICAgIG1fZWdsLmNvbnRleHQgPSBlZ2xDcmVhdGVDb250ZXh0
KG1fZWdsLmRpc3BsYXksIG1fZWdsLmNvbmZpZywgRUdMX05PX0NPTlRFWFQsIGNvbnRleHRBdHRy
aWJ1dGVzKTsKKyAgICBpZiAobV9lZ2wuY29udGV4dCA9PSBFR0xfTk9fQ09OVEVYVCkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKCFlZ2xNYWtlQ3VycmVudChtX2VnbC5kaXNwbGF5LCBFR0xf
Tk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIG1fZWdsLmNvbnRleHQpKQorICAgICAgICByZXR1
cm47CisKKyAgICBtX2VnbC5jcmVhdGVJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMQ1JF
QVRFSU1BR0VLSFJQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsQ3JlYXRlSW1hZ2VLSFIiKSk7
CisgICAgbV9lZ2wuZGVzdHJveUltYWdlID0gcmVpbnRlcnByZXRfY2FzdDxQRk5FR0xERVNUUk9Z
SU1BR0VLSFJQUk9DPihlZ2xHZXRQcm9jQWRkcmVzcygiZWdsRGVzdHJveUltYWdlS0hSIikpOwor
ICAgIG1fZWdsLmltYWdlVGFyZ2V0VGV4dHVyZTJET0VTID0gcmVpbnRlcnByZXRfY2FzdDxQRk5H
TEVHTElNQUdFVEFSR0VUVEVYVFVSRTJET0VTUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImdsRUdM
SW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMiKSk7CisKKyAgICBtX2V4cG9ydGFibGUgPSB3cGVfbWVz
YV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NyZWF0ZSgmc19leHBvcnRhYmxlQ2xp
ZW50LCB0aGlzKTsKKworICAgIG1fdXBkYXRlU291cmNlID0gZ190aW1lb3V0X3NvdXJjZV9uZXco
bV9mcmFtZVJhdGUgLyAxMDAwKTsKKyAgICBnX3NvdXJjZV9zZXRfY2FsbGJhY2sobV91cGRhdGVT
b3VyY2UsCisgICAgICAgIFtdKGdwb2ludGVyIGRhdGEpIC0+IGdib29sZWFuIHsKKyAgICAgICAg
ICAgIGF1dG8mIGJhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+KGRh
dGEpOworICAgICAgICAgICAgYmFja2VuZC5wZXJmb3JtVXBkYXRlKCk7CisgICAgICAgICAgICBy
ZXR1cm4gVFJVRTsKKyAgICAgICAgfSwgdGhpcywgbnVsbHB0cik7CisgICAgZ19zb3VyY2VfYXR0
YWNoKG1fdXBkYXRlU291cmNlLCBnX21haW5fY29udGV4dF9kZWZhdWx0KCkpOworfQorCitIZWFk
bGVzc1ZpZXdCYWNrZW5kOjp+SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgaWYgKG1fdXBk
YXRlU291cmNlKQorICAgICAgICBnX3NvdXJjZV9kZXN0cm95KG1fdXBkYXRlU291cmNlKTsKKwor
ICAgIGlmIChhdXRvIGltYWdlID0gc3RkOjpnZXQ8MD4obV9wZW5kaW5nSW1hZ2Uuc2Vjb25kKSkK
KyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKyAgICBp
ZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSkKKyAgICAg
ICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIGltYWdlKTsKKworICAgIGZvciAo
YXV0byBpdCA6IG1fZXhwb3J0TWFwKSB7CisgICAgICAgIGludCBmZCA9IGl0LnNlY29uZDsKKyAg
ICAgICAgaWYgKGZkID49IDApCisgICAgICAgICAgICBjbG9zZShmZCk7CisgICAgfQorCisgICAg
aWYgKG1fZWdsLmNvbnRleHQpCisgICAgICAgIGVnbERlc3Ryb3lDb250ZXh0KG1fZWdsLmRpc3Bs
YXksIG1fZWdsLmNvbnRleHQpOworfQorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogSGVhZGxl
c3NWaWV3QmFja2VuZDo6YmFja2VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfZ2V0X3ZpZXdfYmFja2VuZChtX2V4cG9ydGFi
bGUpOworfQorCitjYWlyb19zdXJmYWNlX3QqIEhlYWRsZXNzVmlld0JhY2tlbmQ6OmNyZWF0ZVNu
YXBzaG90KCkKK3sKKyAgICBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBFR0xJbWFnZUtIUiBpbWFn
ZSA9IHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICBpZiAoIWltYWdlKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHVpbnQzMl90IHdpZHRoID0gc3RkOjpnZXQ8
MT4obV9sb2NrZWRJbWFnZS5zZWNvbmQpOworICAgIHVpbnQzMl90IGhlaWdodCA9IHN0ZDo6Z2V0
PDI+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKworICAgIHVpbnQ4X3QqIGJ1ZmZlciA9IG5ldyB1
aW50OF90WzQgKiB3aWR0aCAqIGhlaWdodF07CisgICAgYm9vbCBzdWNjZXNzZnVsU25hcHNob3Qg
PSBmYWxzZTsKKworICAgIG1ha2VDdXJyZW50KCk7CisKKyAgICBHTHVpbnQgaW1hZ2VUZXh0dXJl
OworICAgIGdsR2VuVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisgICAgZ2xCaW5kVGV4dHVy
ZShHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1cmUpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX01JTl9GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfTUFHX0ZJTFRFUiwgR0xfTElORUFS
KTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQX1Ms
IEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBH
TF9URVhUVVJFX1dSQVBfVCwgR0xfQ0xBTVBfVE9fRURHRSk7CisgICAgZ2xUZXhJbWFnZTJEKEdM
X1RFWFRVUkVfMkQsIDAsIEdMX0JHUkFfRVhULCB3aWR0aCwgaGVpZ2h0LCAwLCBHTF9CR1JBX0VY
VCwgR0xfVU5TSUdORURfQllURSwgbnVsbHB0cik7CisKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRl
eHR1cmUyRE9FUyhHTF9URVhUVVJFXzJELCBpbWFnZSk7CisgICAgZ2xCaW5kVGV4dHVyZShHTF9U
RVhUVVJFXzJELCAwKTsKKworICAgIEdMdWludCBpbWFnZUZyYW1lYnVmZmVyOworICAgIGdsR2Vu
RnJhbWVidWZmZXJzKDEsICZpbWFnZUZyYW1lYnVmZmVyKTsKKyAgICBnbEJpbmRGcmFtZWJ1ZmZl
cihHTF9GUkFNRUJVRkZFUiwgaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xGcmFtZWJ1ZmZlclRl
eHR1cmUyRChHTF9GUkFNRUJVRkZFUiwgR0xfQ09MT1JfQVRUQUNITUVOVDAsIEdMX1RFWFRVUkVf
MkQsIGltYWdlVGV4dHVyZSwgMCk7CisKKyAgICBnbEZsdXNoKCk7CisgICAgaWYgKGdsQ2hlY2tG
cmFtZWJ1ZmZlclN0YXR1cyhHTF9GUkFNRUJVRkZFUikgPT0gR0xfRlJBTUVCVUZGRVJfQ09NUExF
VEUpIHsKKyAgICAgICAgZ2xSZWFkUGl4ZWxzKDAsIDAsIHdpZHRoLCBoZWlnaHQsIEdMX0JHUkFf
RVhULCBHTF9VTlNJR05FRF9CWVRFLCBidWZmZXIpOworICAgICAgICBzdWNjZXNzZnVsU25hcHNo
b3QgPSB0cnVlOworICAgIH0KKworICAgIGdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVS
LCAwKTsKKyAgICBnbERlbGV0ZUZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7Cisg
ICAgZ2xEZWxldGVUZXh0dXJlcygxLCAmaW1hZ2VUZXh0dXJlKTsKKworICAgIGlmICghc3VjY2Vz
c2Z1bFNuYXBzaG90KSB7CisgICAgICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgfQorCisgICAgY2Fpcm9fc3VyZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBj
YWlyb19pbWFnZV9zdXJmYWNlX2NyZWF0ZV9mb3JfZGF0YShidWZmZXIsCisgICAgICAgIENBSVJP
X0ZPUk1BVF9BUkdCMzIsIHdpZHRoLCBoZWlnaHQsIGNhaXJvX2Zvcm1hdF9zdHJpZGVfZm9yX3dp
ZHRoKENBSVJPX0ZPUk1BVF9BUkdCMzIsIHdpZHRoKSk7CisgICAgY2Fpcm9fc3VyZmFjZV9tYXJr
X2RpcnR5KGltYWdlU3VyZmFjZSk7CisKKyAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90
IGJ1ZmZlcktleTsKKyAgICBjYWlyb19zdXJmYWNlX3NldF91c2VyX2RhdGEoaW1hZ2VTdXJmYWNl
LCAmYnVmZmVyS2V5LCBidWZmZXIsCisgICAgICAgIFtdKHZvaWQqIGRhdGEpIHsKKyAgICAgICAg
ICAgIGF1dG8qIGJ1ZmZlciA9IHN0YXRpY19jYXN0PHVpbnQ4X3QqPihkYXRhKTsKKyAgICAgICAg
ICAgIGRlbGV0ZVtdIGJ1ZmZlcjsKKyAgICAgICAgfSk7CisKKyAgICByZXR1cm4gaW1hZ2VTdXJm
YWNlOworfQorCitib29sIEhlYWRsZXNzVmlld0JhY2tlbmQ6Om1ha2VDdXJyZW50KCkKK3sKKyAg
ICByZXR1cm4gZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KTsKK30KKwordm9pZCBIZWFkbGVzc1ZpZXdCYWNr
ZW5kOjpwZXJmb3JtVXBkYXRlKCkKK3sKKyAgICBpZiAoIW1fcGVuZGluZ0ltYWdlLmZpcnN0KQor
ICAgICAgICByZXR1cm47CisKKyAgICB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9k
bWFfYnVmX2Rpc3BhdGNoX2ZyYW1lX2NvbXBsZXRlKG1fZXhwb3J0YWJsZSk7CisgICAgaWYgKG1f
bG9ja2VkSW1hZ2UuZmlyc3QpIHsKKyAgICAgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9y
dGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9yZWxlYXNlX2J1ZmZlcihtX2V4cG9ydGFibGUsIG1fbG9j
a2VkSW1hZ2UuZmlyc3QpOworICAgICAgICBtX2VnbC5kZXN0cm95SW1hZ2UobV9lZ2wuZGlzcGxh
eSwgc3RkOjpnZXQ8MD4obV9sb2NrZWRJbWFnZS5zZWNvbmQpKTsKKyAgICB9CisKKyAgICBtX2xv
Y2tlZEltYWdlID0gbV9wZW5kaW5nSW1hZ2U7CisgICAgbV9wZW5kaW5nSW1hZ2UgPSBzdGQ6OnBh
aXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+
IHsgfTsKK30KKworc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9i
dWZfY2xpZW50IEhlYWRsZXNzVmlld0JhY2tlbmQ6OnNfZXhwb3J0YWJsZUNsaWVudCA9IHsKKyAg
ICAvLyBleHBvcnRfZG1hX2J1ZgorICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfbWVzYV92
aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2RhdGEqIGltYWdlRGF0YSkKKyAgICB7Cisg
ICAgICAgIGF1dG8mIGJhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8SGVhZGxlc3NWaWV3QmFja2VuZCo+
KGRhdGEpOworCisgICAgICAgIGF1dG8gaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmVuZCgpOwor
ICAgICAgICBpZiAoaW1hZ2VEYXRhLT5mZCA+PSAwKSB7CisgICAgICAgICAgICBhc3NlcnQoYmFj
a2VuZC5tX2V4cG9ydE1hcC5maW5kKGltYWdlRGF0YS0+aGFuZGxlKSA9PSBiYWNrZW5kLm1fZXhw
b3J0TWFwLmVuZCgpKTsKKworICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmlu
c2VydCh7IGltYWdlRGF0YS0+aGFuZGxlLCBpbWFnZURhdGEtPmZkIH0pLmZpcnN0OworICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChp
bWFnZURhdGEtPmhhbmRsZSkgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisgICAgICAg
ICAgICBpdCA9IGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSk7Cisg
ICAgICAgIH0KKworICAgICAgICBhc3NlcnQoaXQgIT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQo
KSk7CisgICAgICAgIHVpbnQzMl90IGhhbmRsZSA9IGl0LT5maXJzdDsKKyAgICAgICAgaW50MzJf
dCBmZCA9IGl0LT5zZWNvbmQ7CisKKyAgICAgICAgYmFja2VuZC5tYWtlQ3VycmVudCgpOworCisg
ICAgICAgIEVHTGludCBhdHRyaWJ1dGVzW10gPSB7CisgICAgICAgICAgICBFR0xfV0lEVEgsIHN0
YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT53aWR0aCksCisgICAgICAgICAgICBFR0xfSEVJ
R0hULCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+aGVpZ2h0KSwKKyAgICAgICAgICAg
IEVHTF9MSU5VWF9EUk1fRk9VUkNDX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEt
PmZvcm1hdCksCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfRkRfRVhULCBmZCwKKyAg
ICAgICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9PRkZTRVRfRVhULCAwLAorICAgICAgICAgICAg
RUdMX0RNQV9CVUZfUExBTkUwX1BJVENIX0VYVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURh
dGEtPnN0cmlkZSksCisgICAgICAgICAgICBFR0xfTk9ORSwKKyAgICAgICAgfTsKKyAgICAgICAg
RUdMSW1hZ2VLSFIgaW1hZ2UgPSBiYWNrZW5kLm1fZWdsLmNyZWF0ZUltYWdlKGJhY2tlbmQubV9l
Z2wuZGlzcGxheSwgRUdMX05PX0NPTlRFWFQsIEVHTF9MSU5VWF9ETUFfQlVGX0VYVCwgbnVsbHB0
ciwgYXR0cmlidXRlcyk7CisgICAgICAgIGJhY2tlbmQubV9wZW5kaW5nSW1hZ2UgPSB7IGltYWdl
RGF0YS0+aGFuZGxlLCBzdGQ6Om1ha2VfdHVwbGUoaW1hZ2UsIGltYWdlRGF0YS0+d2lkdGgsIGlt
YWdlRGF0YS0+aGVpZ2h0KSB9OworICAgIH0sCit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93cGUvSGVhZGxlc3NWaWV3QmFja2VuZC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5iMDU0ZjgzNDIyMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApAQCAtMCwwICsxLDcxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnYm0uaD4KKyNpbmNsdWRlIDxn
bGliLmg+CisjaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3
LWJhY2tlbmQtZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+Cisj
aW5jbHVkZSA8R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8RUdML2VnbC5oPgorI2luY2x1ZGUg
PEVHTC9lZ2xleHQuaD4KKworY2xhc3MgSGVhZGxlc3NWaWV3QmFja2VuZCB7CitwdWJsaWM6Cisg
ICAgSGVhZGxlc3NWaWV3QmFja2VuZCgpOworICAgIH5IZWFkbGVzc1ZpZXdCYWNrZW5kKCk7CisK
KyAgICBzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIGNvbnN0OworCisgICAgY2Fp
cm9fc3VyZmFjZV90KiBjcmVhdGVTbmFwc2hvdCgpOworCitwcml2YXRlOgorICAgIGJvb2wgbWFr
ZUN1cnJlbnQoKTsKKyAgICB2b2lkIHBlcmZvcm1VcGRhdGUoKTsKKworICAgIHN0YXRpYyBzdHJ1
Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jbGllbnQgc19leHBv
cnRhYmxlQ2xpZW50OworCisgICAgc3RydWN0IHsKKyAgICAgICAgRUdMRGlzcGxheSBkaXNwbGF5
OworICAgICAgICBFR0xDb25maWcgY29uZmlnOworICAgICAgICBFR0xDb250ZXh0IGNvbnRleHQ7
CisKKyAgICAgICAgUEZORUdMQ1JFQVRFSU1BR0VLSFJQUk9DIGNyZWF0ZUltYWdlOworICAgICAg
ICBQRk5FR0xERVNUUk9ZSU1BR0VLSFJQUk9DIGRlc3Ryb3lJbWFnZTsKKyAgICAgICAgUEZOR0xF
R0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0MgaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVM7Cisg
ICAgfSBtX2VnbDsKKworICAgIHN0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9kbWFfYnVmKiBtX2V4cG9ydGFibGU7CisKKyAgICBzdGQ6OnVub3JkZXJlZF9tYXA8dWludDMy
X3QsIGludDMyX3Q+IG1fZXhwb3J0TWFwOworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0
dXBsZTxFR0xJbWFnZUtIUiwgdWludDMyX3QsIHVpbnQzMl90Pj4gbV9wZW5kaW5nSW1hZ2UgeyB9
OworICAgIHN0ZDo6cGFpcjx1aW50MzJfdCwgc3RkOjp0dXBsZTxFR0xJbWFnZUtIUiwgdWludDMy
X3QsIHVpbnQzMl90Pj4gbV9sb2NrZWRJbWFnZSB7IH07CisKKyAgICBHU291cmNlKiBtX3VwZGF0
ZVNvdXJjZTsKKyAgICBnaW50NjQgbV9mcmFtZVJhdGUgeyBHX1VTRUNfUEVSX1NFQyAvIDYwIH07
Cit9OwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1XZWJW
aWV3V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjk1MDQzOTRiZDQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvUGxhdGZvcm1X
ZWJWaWV3V1BFLmNwcApAQCAtMCwwICsxLDE0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1XZWJWaWV3LmgiCisKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisj
aW5jbHVkZSA8V2ViS2l0L1dLSW1hZ2VDYWlyby5oPgorI2luY2x1ZGUgPGNhaXJvLmg+CisjaW5j
bHVkZSA8Y3N0ZGlvPgorI2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5o
PgorCituYW1lc3BhY2UgV1RSIHsKKworUGxhdGZvcm1XZWJWaWV3OjpQbGF0Zm9ybVdlYlZpZXco
V0tQYWdlQ29uZmlndXJhdGlvblJlZiBjb25maWd1cmF0aW9uLCBjb25zdCBUZXN0T3B0aW9ucyYg
b3B0aW9ucykKKyAgICA6IG1fd2luZG93SXNLZXkodHJ1ZSkKKyAgICAsIG1fb3B0aW9ucyhvcHRp
b25zKQoreworICAgIG1fd2luZG93ID0gbmV3IEhlYWRsZXNzVmlld0JhY2tlbmQ7CisgICAgbV92
aWV3ID0gV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKG1fd2luZG93LT5iYWNrZW5kKCksIGNv
bmZpZ3VyYXRpb24pOworfQorCitQbGF0Zm9ybVdlYlZpZXc6On5QbGF0Zm9ybVdlYlZpZXcoKQor
eworICAgIGRlbGV0ZSBtX3dpbmRvdzsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlc2l6
ZVRvKHVuc2lnbmVkLCB1bnNpZ25lZCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK1dLUGFn
ZVJlZiBQbGF0Zm9ybVdlYlZpZXc6OnBhZ2UoKQoreworICAgIHJldHVybiBXS1ZpZXdHZXRQYWdl
KG1fdmlldyk7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb2N1cygpCit7Cit9CisKK1dL
UmVjdCBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd0ZyYW1lKCkKK3sKKyAgICByZXR1cm4gV0tSZWN0
eyAwLCAwLCAxLCAxIH07Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dGcmFt
ZShXS1JlY3QsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6ZGlkSW5pdGlhbGl6ZUNsaWVudHMoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6
YWRkQ2hyb21lSW5wdXRGaWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1v
dmVDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZFRv
V2luZG93KCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnJlbW92ZUZyb21XaW5kb3co
KQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKK3sKKyAgICBtX3dpbmRvd0lzS2V5ID0gd2luZG93SXNLZXk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1XZWJWaWV3OjptYWtlV2ViVmlld0ZpcnN0UmVzcG9uZGVyKCkKK3sKK30KKworY2Fp
cm9fc3VyZmFjZV90KiBQbGF0Zm9ybVdlYlZpZXc6OndpbmRvd1NuYXBzaG90SW1hZ2UoKQorewor
ICAgIHsKKyAgICAgICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgICAgICBUaW1lb3V0
VGltZXIoKQorICAgICAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAm
VGltZW91dFRpbWVyOjpmaXJlZCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aW1l
ci5zdGFydE9uZVNob3QoMS4wIC8gNjApOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICB2
b2lkIGZpcmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgICAgICBSdW5M
b29wOjpUaW1lcjxUaW1lb3V0VGltZXI+IHRpbWVyOworICAgICAgICB9IHRpbWVvdXRUaW1lcjsK
KworICAgICAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisgICAgfQorCisgICAgY2Fpcm9fc3Vy
ZmFjZV90KiBpbWFnZVN1cmZhY2UgPSBtX3dpbmRvdy0+Y3JlYXRlU25hcHNob3QoKTsKKyAgICBy
ZXR1cm4gaW1hZ2VTdXJmYWNlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Y2hhbmdlV2lu
ZG93U2NhbGVJZk5lZWRlZChmbG9hdCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNl
dE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCkKK3sKK30KKworYm9vbCBQbGF0Zm9ybVdl
YlZpZXc6OnZpZXdTdXBwb3J0c09wdGlvbnMoY29uc3QgVGVzdE9wdGlvbnMmKSBjb25zdAorewor
ICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9yY2VXaW5kb3dG
cmFtZXNDaGFuZ2VkKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBjYzNkZWRlOTg2Ci0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCkBAIC0wLDAg
KzEsMTM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorCisj
aW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6bm90aWZ5RG9uZSgpCit7CisgICAgUnVuTG9vcDo6bWFpbigpLnN0b3AoKTsKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6c2V0SGlkZGVuKGJvb2wpCit7Cit9CisKK3ZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK1dLUHJlZmVyZW5jZXNSZWYg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUHJlZmVyZW5jZXMoKQoreworICAgIHJldHVybiBXS1Bh
Z2VHcm91cEdldFByZWZlcmVuY2VzKG1fcGFnZUdyb3VwLmdldCgpKTsKK30KKwordm9pZCBUZXN0
Q29udHJvbGxlcjo6cGxhdGZvcm1EZXN0cm95KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1Jbml0aWFsaXplQ29udGV4dCgpCit7Cit9CisKK3N0YXRpYyBHTWFpbkNvbnRl
eHQqIHRocmVhZERlZmF1bHRDb250ZXh0KCkKK3sKKyAgICBpZiAoR01haW5Db250ZXh0KiBjb250
ZXh0ID0gZ19tYWluX2NvbnRleHRfZ2V0X3RocmVhZF9kZWZhdWx0KCkpCisgICAgICAgIHJldHVy
biBjb250ZXh0OworICAgIHJldHVybiBnX21haW5fY29udGV4dF9kZWZhdWx0KCk7Cit9CisKK3Zv
aWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUnVuVW50aWwoYm9vbCYgY29uZGl0aW9uLCBkb3Vi
bGUgdGltZW91dCkKK3sKKyAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgVGltZW91
dFRpbWVyKCkKKyAgICAgICAgICAgIDogdGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmVGlt
ZW91dFRpbWVyOjpmaXJlZCkKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9pZCBmaXJlZCgpIHsg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsgfQorICAgICAgICBSdW5Mb29wOjpUaW1lcjxUaW1lb3V0
VGltZXI+IHRpbWVyOworICAgIH0gdGltZW91dFRpbWVyOworCisgICAgdGltZW91dFRpbWVyLnRp
bWVyLnNldFByaW9yaXR5KEdfUFJJT1JJVFlfREVGQVVMVF9JRExFKTsKKyAgICBpZiAodGltZW91
dCA+PSAwKQorICAgICAgICB0aW1lb3V0VGltZXIudGltZXIuc3RhcnRPbmVTaG90KHRpbWVvdXQp
OworCisgICAgUnVuTG9vcDo6bWFpbigpLnJ1bigpOworCisgICAgdGltZW91dFRpbWVyLnRpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1EaWRDb21taXRMb2Fk
Rm9yRnJhbWUoV0tQYWdlUmVmLCBXS0ZyYW1lUmVmKQoreworfQorCitzdGF0aWMgY2hhciogZ2V0
RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZyhjb25zdCBjaGFyKiB2YXJpYWJsZU5hbWUp
Cit7CisgICAgY29uc3QgY2hhciogdmFsdWUgPSBnX2dldGVudih2YXJpYWJsZU5hbWUpOworICAg
IGlmICghdmFsdWUpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICIlcyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMCk7Cisg
ICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191
dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OmluaXRpYWxpemVJbmplY3RlZEJ1bmRsZVBhdGgoKQoreworICAgIEdVbmlxdWVQdHI8
Y2hhcj4gcGF0aChnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKCJURVNUX1JVTk5F
Ul9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUiKSk7CisgICAgbV9pbmplY3RlZEJ1bmRsZVBhdGgu
YWRvcHQoV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJpbmcocGF0aC5nZXQoKSkpOworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplVGVzdFBsdWdpbkRpcmVjdG9yeSgpCit7Cit9
CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnJ1bk1vZGFsKFBsYXRmb3JtV2ViVmlldyopCit7Cit9
CisKK1dLQ29udGV4dFJlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db250ZXh0KCkKK3sKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworY29uc3QgY2hhciogVGVzdENvbnRyb2xsZXI6OnBsYXRm
b3JtTGlicmFyeVBhdGhGb3JUZXN0aW5nKCkKK3sKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
dm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Db25maWd1cmVWaWV3Rm9yVGVzdChjb25zdCBU
ZXN0SW52b2NhdGlvbiYpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtUmVz
ZXRQcmVmZXJlbmNlc1RvQ29uc2lzdGVudFZhbHVlcygpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnVwZGF0ZVBsYXRmb3JtU3BlY2lmaWNUZXN0T3B0aW9uc0ZvclRlc3QoVGVzdE9wdGlv
bnMmLCBjb25zdCBzdGQ6OnN0cmluZyYpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdU
UgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvbWFpbi5jcHAgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uNmNmMmI3ZmYzMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL3dwZS9tYWluLmNwcApAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCisKK2ludCBtYWluKGludCBhcmdjLCBjaGFy
KiogYXJndikKK3sKKyAgICBXVFI6OlRlc3RDb250cm9sbGVyIGNvbnRyb2xsZXIoYXJnYywgY29u
c3RfY2FzdDxjb25zdCBjaGFyKio+KGFyZ3YpKTsKKyAgICByZXR1cm4gMDsKK30KZGlmZiAtLWdp
dCBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxk
LXdyYXBwZXIKaW5kZXggZjZjNDAzZDMxYjAuLmUzZWVjZGZjZTg3IDEwMDc1NQotLS0gYS9Ub29s
cy9qaGJ1aWxkL2poYnVpbGQtd3JhcHBlcgorKysgYi9Ub29scy9qaGJ1aWxkL2poYnVpbGQtd3Jh
cHBlcgpAQCAtMzEsNiArMzEsOCBAQCBkZWYgZGV0ZXJtaW5lX3BsYXRmb3JtKCk6CiAgICAgICAg
IHJldHVybiAiZWZsIjsKICAgICBpZiAnLS1ndGsnIGluIHN5cy5hcmd2OgogICAgICAgICByZXR1
cm4gImd0ayI7CisgICAgaWYgJy0td3BlJyBpbiBzeXMuYXJndjoKKyAgICAgICAgcmV0dXJuICJ3
cGUiCiAgICAgcmFpc2UgVmFsdWVFcnJvcignTm8gcGxhdGZvcm0gc3BlY2lmaWVkIGZvciBqaGJ1
aWxkLXdyYXBwZXIuJykKIAogdHJ5OgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2dlbmVyYXRlLWlu
c3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgYi9Ub29scy93cGUvZ2VuZXJhdGUtaW5zcGVj
dG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAw
MDAwMDAwMC4uYWIxOTQ3NDRjNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvZ2VuZXJh
dGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weQpAQCAtMCwwICsxLDc3IEBACisjIS91
c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisjCisj
IFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBh
bmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l
cmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyMgTUVS
Q0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRo
ZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4K
KyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5r
bGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorCitp
bXBvcnQgYXJncGFyc2UKK2ltcG9ydCBnbG9iCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworQ09N
UFJFU1NJQkxFX0VYVEVOU0lPTlMgPSBbJy5odG1sJywgJy5qcycsICcuY3NzJywgJy5zdmcnXQor
QkFTRV9ESVIgPSAnV2ViSW5zcGVjdG9yVUkvJworCisKK2RlZiBnZXRfZmlsZW5hbWVzKGFyZ3Mp
OgorICAgIGZpbGVuYW1lcyA9IFtdCisKKyAgICBmb3IgcGF0dGVybiBpbiBhcmdzOgorICAgICAg
ICBwYXRocyA9IGdsb2IuZ2xvYihwYXR0ZXJuKQorICAgICAgICBmb3IgZmlsZW5hbWUgaW4gcGF0
aHM6CisgICAgICAgICAgICBiYXNlX2Rpcl9pbmRleCA9IGZpbGVuYW1lLnJmaW5kKEJBU0VfRElS
KQorICAgICAgICAgICAgaWYgYmFzZV9kaXJfaW5kZXggIT0gLTE6CisgICAgICAgICAgICAgICAg
bmFtZSA9IGZpbGVuYW1lW2Jhc2VfZGlyX2luZGV4ICsgbGVuKEJBU0VfRElSKTpdCisgICAgICAg
ICAgICAgICAgIyBUaGUgcmVzdWx0IHNob3VsZCB1c2UgZm9yd2FyZCBzbGFzaGVzLCB0aHVzIG1h
a2Ugc3VyZSBhbnkgb3Mtc3BlY2lmaWMKKyAgICAgICAgICAgICAgICAjIHNlcGFyYXRvciwgYWRk
ZWQgYnkgdGhlIGdsb2IuZ2xvYigpIGNhbGwsIGlzIHByb3Blcmx5IHJlcGxhY2VkCisgICAgICAg
ICAgICAgICAgaWYgb3Muc2VwICE9ICcvJzoKKyAgICAgICAgICAgICAgICAgICAgbmFtZSA9IG5h
bWUucmVwbGFjZShvcy5zZXAsICcvJykKKyAgICAgICAgICAgICAgICBmaWxlbmFtZXMuYXBwZW5k
KG5hbWUpCisgICAgcmV0dXJuIGZpbGVuYW1lcworCisKK2RlZiBpc19jb21wcmVzc2libGUoZmls
ZW5hbWUpOgorICAgIHJldHVybiBvcy5wYXRoLnNwbGl0ZXh0KGZpbGVuYW1lKVsxXSBpbiBDT01Q
UkVTU0lCTEVfRVhURU5TSU9OUworCisKK2lmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CisgICAg
cGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIoZGVzY3JpcHRpb249J0dlbmVyYXRlIGEg
R1Jlc291cmNlcyBmaWxlIGZvciB0aGUgaW5zcGVjdG9yLicpCisgICAgcGFyc2VyLmFkZF9hcmd1
bWVudCgnLS1vdXRwdXQnLCBuYXJncz0nPycsIHR5cGU9YXJncGFyc2UuRmlsZVR5cGUoJ3cnKSwg
ZGVmYXVsdD1zeXMuc3Rkb3V0LAorICAgICAgICAgICAgICAgICAgICAgICAgaGVscD0ndGhlIG91
dHB1dCBmaWxlJykKKyAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KCdmaWxlbmFtZXMnLCBtZXRhdmFy
PSdGSUxFUycsIG5hcmdzPScrJywKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBs
aXN0IG9mIGZpbGVzIHRvIGluY2x1ZGUnKQorCisgICAgYXJncyA9IHBhcnNlci5wYXJzZV9hcmdz
KHN5cy5hcmd2WzE6XSkKKworICAgIGFyZ3Mub3V0cHV0LndyaXRlKFwKKyAgICAiIiI8P3htbCB2
ZXJzaW9uPTEuMCBlbmNvZGluZz1VVEYtOD8+CisgICAgPGdyZXNvdXJjZXM+CisgICAgICAgIDxn
cmVzb3VyY2UgcHJlZml4PSIvb3JnL3dwZS9pbnNwZWN0b3IiPgorIiIiKQorCisgICAgZm9yIGZp
bGVuYW1lIGluIGdldF9maWxlbmFtZXMoYXJncy5maWxlbmFtZXMpOgorICAgICAgICBsaW5lID0g
JyAgICAgICAgICAgIDxmaWxlJworICAgICAgICBpZiBpc19jb21wcmVzc2libGUoZmlsZW5hbWUp
OgorICAgICAgICAgICAgbGluZSArPSAnIGNvbXByZXNzZWQ9InRydWUiJworICAgICAgICBpZiAn
SW1hZ2VzL2d0ay8nIGluIGZpbGVuYW1lOgorICAgICAgICAgICAgbGluZSArPSAnIGFsaWFzPSIl
cyInICUgZmlsZW5hbWUucmVwbGFjZSgnZ3RrLycsICcnKQorICAgICAgICBsaW5lICs9ICc+JXM8
L2ZpbGU+XG4nICUgZmlsZW5hbWUKKworICAgICAgICBhcmdzLm91dHB1dC53cml0ZShsaW5lKQor
CisgICAgYXJncy5vdXRwdXQud3JpdGUoXAorICAgICIiIiAgICA8L2dyZXNvdXJjZT4KKzwvZ3Jl
c291cmNlcz4KKyIiIikKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBi
L1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVp
bGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+Cis8IURP
Q1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1zdHlsZXNoZWV0
IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxlc2V0PgorCisg
IDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMiPgorICAgIDxk
ZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIvPgorICAgICAg
PGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0eXBl
NiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgorICAgICAgPGRl
cCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMt
YmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+CisgICAgICA8
ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3Qt
bGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVsZT4KKworICA8
cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1taXJyb3IiCisg
ICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0LmNvbS8i
Lz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9yZyIKKyAg
ICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRh
cmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDovL2NhaXJv
Z3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZyZWVk
ZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3JnIi8+Cisg
IDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRlc2t0b3Aub3Jn
IgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+CisgIDxyZXBv
c2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9ImdpdDovL2dp
dGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ3N0cmVhbWVy
IgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3JjLyIvPgor
ICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3JnIgorICAgICAg
aHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFs
bCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3dubG9hZC5z
YXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYmZmaSIg
YXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGliZmZpL2xpYmZm
aS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAgcmVwbz0ic291
cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmMDFlYjkwMjdl
OWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVmM2I0OTJmIi8+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAgICAgICAg
YXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2Fi
bGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJsaWJm
ZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1Yi9HTk9N
RS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249IjIuNDQuMSIK
KyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUzZDczMGQyMTEy
NzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZpeC5wYXRjaCIg
c3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9y
bWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAg
PC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5nIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgPC9kZXBlbmRl
bmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGliLW5ldHdv
cmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lvbj0iMi40Mi4w
IgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNo
YTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZjMzE4NjUzNmQx
MTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImxpYnNv
dXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRpc2FibGUt
aW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
Z2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1
bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4LjAudGFyLnh6
IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3JnIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5MGQwNjkxZTlk
OTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIKKyAgICAg
ICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNv
bSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBjaGVja291dGRp
cj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRvdG9vbHM+CisK
KyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIK
KyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0
aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMuZ2l0IiBjaGVj
a291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAgPC9hdXRvdG9v
bHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUi
PgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEudGFyLmJ6MiIg
dmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251Lm9yZyIKKyAg
ICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUzNGQ3Y2EzNzFj
OTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1c3VtPSJiOTM0
MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZnJlZXR5
cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlwPSIxIi8+Cisg
ICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZvbnRjb25m
aWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5j
aCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIuMTEuMS50
YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9y
ZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRjMGRmYmFlOWQz
NjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAgICAgbWQ1c3Vt
PSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFuY2g+CisgIDwv
YXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13aXRoLWdsaWI9
bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAg
cGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBt
b2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMudGFyLmJ6MiIK
KyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tvdXRkaXI9Imhh
cmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgorICAgICAg
ICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2JjYzE4ZjdmMTIx
MTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09Ijk3YWUxNWE3
MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3RrPW5vIj4KKyAg
ICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oiIHZlcnNpb249
IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgICAg
ICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3OTNjYzdlM2U5
MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29s
cyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5hYmxlLWdsZXN2
MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9InBpeG1h
biIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxlYXNlcy9j
YWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAgICByZXBvPSJj
YWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5OTk4NmY5M2M5
ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0iY2Fpcm8tZWds
LWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwv
YnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jjb21tb24iPgor
ICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAudGFyLnh6IiB2
ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmciCisgICAgICAg
ICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZiZTViZmEi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIgYXV0b2dlbmFy
Z3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFz
ZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAgICAgICAgcmVw
bz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6OWM4
NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMxMmUxMzViNzMw
MWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1dG9nZW5h
cmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJh
bmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQuMTciCisgICAg
ICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6NGZjN2Nj
YTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1NzhkMWQ1ZDdl
OCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4NWUyYTEyYTEi
Lz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVyIiBhdXRvZ2Vu
LXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9kZXBlbmRlbmNp
ZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJzaW9ufS50
YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5M2RjNzc3
Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVzdW09IjcxMWFk
YTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3RyZWFt
ZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0
Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dlbi1zaD0iY29u
ZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1k
aXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJn
c3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNp
b249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFz
aD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3NjExZWQyYzJk
OTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZlYjc0NzlkNWY1
Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9Imdz
dC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0tZGlz
YWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRl
cGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAg
IDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5zLWdvb2Qv
Z3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAg
ICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MjEwM2Ux
NzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2ZmZWFkMDk3
MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRlMDNkNDci
PgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29k
ZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5z
LWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1m
ci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+CisKKyAg
PGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1kaXNhYmxl
LWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9
ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRhci54eiIg
dmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQyN2ZkYWZkYmRh
N2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUwOGRhMmE4YTVj
M2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJh
ZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIvPgorICAg
ICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgt
ZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+CisgICAg
PC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1saWJhdiIg
YXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4dHJhLWNv
bmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8ZGVwZW5k
ZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGliYXYtJHt2
ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVh
bWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYzNDZhMjI0
N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAgICAgICBtZDVz
dW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVs
ZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAgICAgICAgIHRh
Zz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4KKyAgPC9jbWFr
ZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAg
PGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiIC8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9InhrYmNvbW1v
biIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20i
IG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0IgorICAg
ICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2FiYTIxMTQxIiAv
PgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93cGUvamhidWls
ZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvamhidWls
ZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisj
CisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUg
aW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMg
Rm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u
LCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitzeXMucGF0
aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyksICIuLi9q
aGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19jb21tb24uaW5p
dChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGlyIGJ1aWxkcy4K
K2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tvdXRyb290KSwg
IkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2Ut
Y3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVn
bC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZhY2UucGF0
Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2ZDc1ZWVmNDk5
Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBEb2JlcnNlayA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAxOjIzOjE1IC0w
ODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWds
X3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2NiArKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3JjL2NhaXJvLWds
LmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlvbnMoKyks
IDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYyBi
L3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5IDEwMDY0NAor
LS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1lZ2wtY29udGV4
dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWdsX2NvbnRleHQg
eworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29udGV4dDsKKyAK
Ky0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNlIHN1cmZhY2U7
CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBFR0xDb250ZXh0
IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3VyZmFjZTsKK0BA
IC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9fZWdsX2NvbnRl
eHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCA9PSBOVUxM
IHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgtPmJhc2UuY3Vy
cmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOworKwlyZXR1cm4g
IGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19lZ2xfc3VyZmFj
ZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEsOCArMTUyLDgg
QEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVnbE1ha2VDdXJy
ZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNF
LCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05P
X1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBjdHgt
PmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNlICYmIGN0eC0+
c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lTdXJmYWNlIChj
dHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWlyb19ib29sX3QK
K0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxh
eSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwgZWdsLCBFR0xf
Q09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25maWcgKGRweSwg
Y29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0JY3R4LT5kdW1t
eV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBhdHRyaWJz
KTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+aXNfZHVtbXlf
c3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJTdXJmYWNl
IChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0gTlVMTCkgewor
IAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVf
aW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlmICghZWdsTWFr
ZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1cmZhY2UsIGVn
bCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2UsIGN0eC0+c3Vy
ZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xf
Y29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CitA
QCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBk
cHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9p
bml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CistCWlmIChj
dHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xEZXN0cm95U3Vy
ZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJmYWNlICE9IEVH
TF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5zdXJmYWNl
KTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9l
cnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAoZHB5LCBFR0xf
Tk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysKKysgICAgcmV0
dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2Vn
bF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xfY29udGV4dF90
ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4ID0gY2FsbG9j
ICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVubGlrZWx5IChj
dHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3Ig
KENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkgPSBkcHk7Cisr
ICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3VyZmFjZTsKKysK
KysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0eC0+YmFzZS5y
ZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJyZW50ID0gX2Vn
bF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBfZWdsX3N3YXBf
YnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7CisrCisrICAg
IC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIEVHTCwgc28g
d2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFjZSBub3cgaW5z
dGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRlIChjdHgpOwor
KworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2UsIGVnbCkpIHsK
KysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRl
X2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAgICBzdGF0dXMg
PSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwgZWdsR2V0UHJv
Y0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJlZSAoY3R4KTsK
KysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysg
ICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4LT5iYXNl
KTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7CisgCXJldHVy
biBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisgICAgIH0KK2Rp
ZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRleCA5ZmQ3NjA4
Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3NyYy9jYWlyby1n
bC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9kYyAo
Y2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2RldmljZV90ICoK
KyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWds
KTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9kZXZpY2Vf
Y3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsLCBF
R0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNlX3QgKgor
IGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90CSpkZXZpY2Us
CisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9m
b250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50
aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMt
YS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2L251bGwKKysr
IGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0
d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAKK0Zyb20g
NzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2VwIDE3IDAwOjAw
OjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitEYXRlOiBTdW4s
IDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMrKzExIHJlcXVp
cmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1JlcG9ydGVkIGJ5
IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysrLS0tCisgMSBm
aWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdp
dCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK2lu
ZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2ZvbnRjb25maWcu
aAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEyLDkgQEAgdHlw
ZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJkZWNvcmF0aXZl
IgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFudCAqLworICNk
ZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLworIAorLSNkZWZp
bmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorLSNkZWZp
bmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgor
LSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJGQ19DQUNIRV9W
RVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIgRkNfQ0FDSEVf
VkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iIEZD
X0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5j
YWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSByYXN0ZXJpemVy
ICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJbnQgKi8KKy0t
IAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40
LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2Zy
ZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rldi9udWxsCisr
KyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWln
aHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4NzBhNWFkNjBi
MmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFdlcm5l
ciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAxMDowNzowNyAr
MDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyogc3JjL3RydWV0
eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVyaW5nCitlbmdp
bmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2NlbmRlciB0byBj
b21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1naXQgYS9zcmMv
dHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4IGM2MWIyMTgu
LjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysrKyBiL3NyYy90
cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8K
KyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCistLyogIENvcHly
aWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBUdXJuZXIsIFJv
YmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAgICAgICAgICov
CisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIEZy
ZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLworQEAgLTExNzcs
MTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5y
b290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5kZXNj
ZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuZGVz
Y2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5oZWlnaHQgPQor
LSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVpZ2h0LCBtZXRy
aWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9CisgICAgICAg
ICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5jZV93aWR0aCwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3NjYWxlICkgKTsK
KysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVkIHZhbHVlcyAq
LworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0gbWV0cmljcy0+
ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5zZm9ybWF0aW9u
ICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ2Rh
dGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9Ub29scy93
cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5w
YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjYjk1MWExOWMK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJp
bmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitGcm9tIDNh
N2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAxNyAwMDowMDow
MCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwgOCBGZWIgMjAx
NiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1cHByZXNzIHN0
cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9mIEdDQyBlbWl0
IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAxIGZpbGUgY2hh
bmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRlLmMgYi9nbGli
L2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9nbGliL2dkYXRl
LmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBnX2RhdGVfc3Ry
ZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0aGVyIHN0cmZ0
aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAgICAqLworICAg
ICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwdXNo
CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1ub25saXRl
cmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNpemUsIGxvY2Fs
ZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AKKyAKKyAg
ICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAgICAgICB7Cist
LSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1m
aXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gKQEAgLTAs
MCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEyNWExOWMxOTVk
IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8gPG1jYXRh
bnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1MjozMyAtMDUwMAor
U3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0b3JhZ2UgY2xh
c3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dlcnMgd2Fybmlu
Z3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3MgZGVwcmVjYXRl
ZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRoZSBsYW5ndWFn
ZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAxOTgwCithbnlt
b3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzUwOTE4
CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAxIGZpbGUgY2hh
bmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZ29i
amVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMKK2luZGV4
IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5j
CisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQxMiw5IEBAIGdl
bmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdfZnByaW50ZiAo
Zm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9pbnRlciIpKTsK
KyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAgIGdfZnByaW50
ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFt
ZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1cmUgKmNjID0g
KEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJl
Z2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnByaW50ZiAoZm91
dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CisrICAgICAgZ19m
cHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4i
KTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIp
OworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChmb3V0LCAiICAl
cyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQuMgpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4x
LjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVkMTA2NGVk
NWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFk
LTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCArMSwyMzYgQEAK
K0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+CitEYXRl
OiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHM6
IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2UgdGhlIHdyYXBw
ZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNlcnZlCisg
IGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9ucworCist
IFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50X21lc3Nh
Z2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNlIFJTQV9nZW5l
cmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVfa2V5CisK
K2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAKKy0tLQor
IGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBleHQvZHRscy9n
c3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkgZGVsZXRp
b25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4
dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5NjAyIDEwMDY0
NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dz
dGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVyYXRlZCAo
R3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9rZXkgPSBOVUxM
OworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9rZXkgaXMg
YWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVN
QkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgsIFJTQV9G
NCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7CisrICBpZiAocnNh
ICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBpZiAoZSAhPSBO
VUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0FfZ2VuZXJhdGVf
a2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUgKHJzYSk7Cisr
ICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysgIH0KKysjZW5k
aWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2VsZiwgImZh
aWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY29u
bmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXggMzZmNmQ2My4u
NzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKKysrKyBi
L2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBACisgI2luY2x1
ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CisgCisrI2luY2x1
ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9kdGxzX2Nv
bm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxzX2Nvbm5l
Y3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5lY3Rpb24s
IGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYgKzIxOCwzOCBA
QCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkKKyAgIEdf
T0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZpbmFsaXpl
IChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAweDEwMTAw
MDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQgKnB0cikK
Kyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgorK0JJT19nZXRf
ZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9CisrCisrc3RhdGlj
IHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikKKyt7Cisr
ICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3Nl
dF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9IGluaXQ7Cisr
fQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1MDlfU1RP
UkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNlbmRpZgorKwor
IHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdPYmplY3Qg
KiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFy
YW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5lY3Rpb25f
c2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAgICAgIHBy
aXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOworICAgICAg
IGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+YmlvLT5wdHIg
PSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKKyAgICAgICBT
U0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7CisgCisgICAgICAg
U1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAgbG9nX3N0YXRl
IChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAgc3RhdGVz
IHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBzdGF0ZXMgfD0g
KCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBPUEVOU1NMX1ZF
UlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6
IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0ciwKKyAgICAg
ICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4MSw2ICs2MTYs
MTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICog
c3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHByaXYtPmJpb19i
dWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3NsKSwgU1NM
X3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NUX0xPR19PQkpF
Q1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCisrICAgICAg
c3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIsCisrICAg
ICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNldCwKKysg
ICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUg
KHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7CisrI2VuZGlm
CisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xfdmVyaWZ5
X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQor
ICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4KTsKKyAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxmKSwgRkFM
U0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+Y2VydCk7
CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dldDBfY2Vy
dCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVD
VCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sgKGlu
dCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICAgZ2ludCBs
ZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4IChiaW8s
IFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAgICAgICAgICBY
NTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3ViamVjdF9uYW1l
IChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAgICAgICAgIFhO
X0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxlbik7Cisg
ICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVuc3NsX3Zl
cmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0
eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBPUEVOU1NMX1ZF
UlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBjdXN0b21fYmlv
X21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BAIC03OTUsMTEg
Kzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsKKyAgIHJldHVy
biAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9fTUVUSE9EICpj
dXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJT19zX2dzdF9k
dGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9kcyAhPSBO
VUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3VzdG9tX2Jpb19t
ZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKKysgIGlmIChj
dXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfd3JpdGUg
KGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8fCAhQklPX21l
dGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQorKyAgICAg
IHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0aG9kX2N0
cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywg
YmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChjdXN0b21f
YmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhfZnJlZSAoY3Vz
dG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICByZXR1cm4g
Y3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50CisgYmlvX21l
dGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkKKyB7Cist
ICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+cHRy
KTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoQklP
X2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklPOiB3cml0
aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rfd3JpdGUg
KEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGljIGludAorIGJp
b19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyB7
CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+
cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElPTiAo
QklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAqcHJpdiA9
IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBjb3B5X3NpemU7
CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpv
dXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2RfY3RybCAoQklP
ICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAgR3N0RHRsc0Nv
bm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3RE
dGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAo
YmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2Owor
IAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhvZF9uZXcg
KEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3Iik7Cisg
CistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBCSU9fc2V0X3No
dXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAorICAgcmV0dXJu
IDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAqIGJpbykK
KyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09O
TkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JKRUNUIChHU1Rf
RFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsKKyAgIHJl
dHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmct
aW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0
ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNjY4Nzcz
NzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJh
ZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRl
X2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGViZGFjYWM4NmY0
YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9VVEYtOD9x
P1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNvbT4KK0Rh
dGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRDSF0gZHRs
c2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRlX2tleV9leCgp
CisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5TU0wgMS4xLgor
CitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzI4CistLS0K
KyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEgZmlsZSBjaGFu
Z2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQv
ZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5j
CitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2Nl
cnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMjA3
LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAqIHNlbGYp
CisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7CisgICAgIEJJR05V
TSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29yZCAoZSwg
UlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4LCBlLCBO
VUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwgUlNBX0Y0KQor
KyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsK
KyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAgICB9CistICAg
IEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsKKyAgIH0KKyAj
ZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1t
b29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2
ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5wYXRjaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3MmIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1x
dGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKQEAgLTAs
MCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVkNGU1ZGI0
OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1ZXogQ2FsdmFy
IDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3OjE2ICsw
MjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVhbXMgd2l0
aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJldmVydHMgY29t
bWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCistLS0KKyBnc3Qv
aXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KKyAyIGZpbGVz
IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0
IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5kZXggMzli
ZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9n
c3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11eF9pbml0
IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1VWF9TVEFU
RV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBxdGRlbXV4LT5w
b3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0g
RkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11eC0+dG9kcm9w
ID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7CitAQCAtMjA0
OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRlbXV4LCBn
Ym9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVkaWFfY2Fw
cywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0ZGVtdXgtPmdv
dF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7
CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9mbG93X2NvbWJp
bmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4gPSAwOyBuIDwg
cXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0X3F0ZGVt
dXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQor
ICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VSQ0NfbW9v
dikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdvdF9zYW1wbGVz
ID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0dXAgd2Ug
Y291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVuZCB1cCBhdCB0
aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyArNjEzMywxOSBA
QCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xl
YW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBkZW11eC0+
bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4KTsKKyAg
ICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAg
IGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3Ry
ZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAgICAgIGZvciAo
biA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAgIFF0RGVt
dXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAgZ290
X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAgICAgfQorLSAg
ICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsKKy0gICAg
ICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAgICAgIHF0ZGVt
dXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7CistICAg
ICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0g
ICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tu
XTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFtIChkZW11
eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgZm9yIChuID0g
MDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAgICBRdERlbXV4
U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAgICAgICAgICAg
Z3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CisgICAgICAgICAg
ICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRpbmdfc2Vn
bWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0g
RkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRlbXV4LT5wZW5k
aW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAgICAgIGRl
bXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2Vu
ZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBmcmFnbWVudGVk
IHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCisgICAgICAg
ICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2NCw2IEBAIGdz
dF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBm
b3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAgICAgIEdzdENs
b2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0OworLSAg
ICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11
eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBAQCBnc3RfcXRk
ZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2Up
CisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAgICAgIGdv
dG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQg
dG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBh
IG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVlZCB0byBi
ZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCistICAgICAg
ICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1cmUpIHsK
Ky0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAgICAgICAgICAg
aWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAgICAgICAgR3N0
U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2luaXQgKCZz
ZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdTVF9ERUJVR19P
QkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAgICAgICAgICAg
ICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZz
ZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4
cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAg
ICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAg
ICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07Cist
ICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0
cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBNU1Mgd2UgbmVl
ZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29uJ3QgZ2V0
IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRlbXV4LT5l
eHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQp
IHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAgICAgICAgICAg
ICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKysgICAgICAg
ICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdzZWdtZW50
Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZl
bnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0gICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7CistICAg
ICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysgICAgICAgICAg
ICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAgICB9CisgICAg
ICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJE
aXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIv
Z3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0CistLS0g
YS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC04
OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBwb3N0ZWRfcmVk
aXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jvb2xlYW4gcGVu
ZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50IHRvZHJvcDsK
KyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYgLS1naXQgYS9U
b29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGlt
ZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0
LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1w
bHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0wLDAgKzEsMTQ2
IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3NzIgTW9uIFNl
cCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1DMz1CMWE9
MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwgMTAgTm92
IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0ZmR0IGRlY29k
ZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4gdGhlIHRpbWUg
aW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJsZWQKKworaHR0
cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAorLS0tCisgZ3N0
L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSArCisgMiBmaWxl
cyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0
ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5kOGI1NGYwIDEw
MDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11
eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9hcHBlbmRf
cHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBjb25zdCBn
Y2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVfZnJlZSAoR3N0
U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9z
ZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0
IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZvaWQgZ3N0X3F0
ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAg
ICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRpYyB2b2lkCisg
Z3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisgeworQEAg
LTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNz
ICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVla19wYXJlbnQg
KGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdzdF9xdGRlbXV4
X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IGdzdF9xdGRl
bXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBnc3RfcXRk
ZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5cy1ob25vci10
ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3BlY3Qgd2hhdCB0
aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0
YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQsCisrICAg
ICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJBbHdheXMgaG9u
b3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3aWxsIGFsd2F5
cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGltZXN0YW1w
cyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1fU1RBVElD
X1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0ZSA9IEdTVF9E
RUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAwCisgICBnc3Rl
bGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0ZGVtdXhf
c2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVRE
ZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVzID0gTlVMTDsK
KyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRlbXV4LT5wcm90
ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQg
PSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZlbnRfcXVl
dWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9GT1JNQVRf
VElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5lcl9uZXcg
KCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChHT2JqZWN0ICog
b2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9wcm9wZXJ0eSAo
R09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVlICogdmFs
dWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4ID0gR1NU
X1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAgY2FzZSBQ
Uk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7
CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dldF9ib29sZWFu
ICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOworKyAgICAgIGJy
ZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJU
WV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICB9CisrfQor
KworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2Jq
ZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFtU3BlYyAqIHBz
cGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2JqZWN0KTsK
KysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hPTk9SX1RG
RFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBnX3ZhbHVlX3Nl
dF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOworKyAgICAgIEdT
VF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVmYXVsdDoK
KysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwgcHJvcF9p
ZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9pZAorIGdz
dF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERlbXV4ICogcXRk
ZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitAQCAtMjk5NSw2
ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVtdXgsIEdz
dEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3RyZWFtLT5u
X3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3Ry
ZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3ZSdyZSBhbHdh
eXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlmZmVyZW5jZQor
KyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFtcCwgcHJlZmVy
IGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZkdCA9PSBU
UlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+CisrICAgICAg
ICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9uKSB7Cisr
ICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAgImRlY29kZV90
cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNpbmcgZGVjb2Rl
X3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAgfQorKworICAg
ICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRpbWVzdGFtcCk7
CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxlIHRzICUiIEdT
VF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNhbXBsZXMpIiwg
R1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4
LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2MyAxMDA2NDQK
Ky0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAor
QEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBndWludDggKmNl
bmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3VudDsKKyAK
KysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0IF9Hc3RRVERl
bXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9OworIAorKy8q
IHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlTX0hPTk9SX1RG
RFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsKKyAKKyBHX0VO
RF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3Ry
ZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0u
cGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEt
Q0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93
bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0M2VlNTk4OWQ3
YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zy
b206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmlj
dWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAwCitTdWJqZWN0
OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJlYW0gaWYg
dGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBzaWduYWwgaGFu
ZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0ZWQKK3R5
cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBhdCB0aGF0
IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5leHBlY3Rl
ZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMvZWxlbWVudHMv
Z3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp
b25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVu
dC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5kZXggYzY4NjQx
Mi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVt
ZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK0BAIC0x
NzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUgKEdzdFR5cGVG
aW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBlZmluZCwgImZv
dW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAorICAgICAgIGNh
cHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0cmVhbSBpcyBw
dWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5kLT5zcmMpID09
IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JKRUNUX0xPQ0sg
KHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBTIGV2ZW50IGRv
d25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307728</attachid>
            <date>2017-04-21 07:48:50 -0700</date>
            <delta_ts>2017-04-27 06:08:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>504515</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmlu
ZGV4IDc2MjkzY2NmMDlkLi5hYWFhZTRmZGRlZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBi
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6
ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAgICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTExMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ01ha2VMaXN0
cy50eHQ6IEFkZCB0aGUgV1BFIHBvcnQgaWRlbnRpZmllci4KKyAgICAgICAgKiBTb3VyY2UvY21h
a2UvRmluZExpYkdCTS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL0ZpbmRX
UEVCYWNrZW5kLW1lc2EuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFNvdXJjZS9jbWFrZS9GaW5k
V1BFQmFja2VuZC5jbWFrZTogQWRkZWQuCisgICAgICAgICogU291cmNlL2NtYWtlL09wdGlvbnNX
UEUuY21ha2U6IEFkZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51
bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURF
UlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKaW5kZXggNTUxN2Y0NmNiYjMuLmE2NTZiYTczNTAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVy
c2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3JtV1BFLmNt
YWtlOiBBZGRlZC4KKyAgICAgICAgKiBzaGVsbC9QbGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisK
IDIwMTctMDQtMjAgIEtvbnN0YW50aW4gVG9rYXJldiAgPGFubnVsZW5AeWFuZGV4LnJ1PgogCiAg
ICAgICAgIFtjbWFrZV0gRGVmaW5lIEZPUldBUkRJTkdfSEVBREVSU19ESVIgaW4gV2ViS2l0RlMg
YW5kIHVzZSBpdCBldmVyeXdoZXJlCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvUGxhdGZvcm1XUEUuY21h
a2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjZjZhZjkyY2Q0Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMjMgQEAKK2xpc3QoQVBQRU5EIEphdmFTY3JpcHRDb3JlX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9JTkNM
VURFX0RJUkVDVE9SSUVTCisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke1dURl9ESVJ9
CispCisKK3NldChXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hFQURFUlMKKyAgICBBUEkv
SmF2YVNjcmlwdC5oCisgICAgQVBJL0pTQmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisg
ICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAgICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5
cGVkQXJyYXkuaAorICAgIEFQSS9KU1ZhbHVlUmVmLmgKKyAgICBBUEkvV2ViS2l0QXZhaWxhYmls
aXR5LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfSkFWQVNDUklQVENPUkVf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFL0phdmFTY3JpcHRDb3JlIgorICAgIENPTVBPTkVOVCAi
RGV2ZWxvcG1lbnQiCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvc2hlbGwvUGxhdGZvcm1X
UEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjYyMzE4M2Ey
YjA4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRm
b3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMyBAQAorbGlzdChBUFBFTkQgSlNDX0xJQlJBUklFUwor
ICAgICR7R0xJQl9MSUJSQVJJRVN9CispCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5kZXgg
NmE0YzE4MGZhYWMuLjBkMTgxMGQ0OWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oOgorICAgICAgICBBbGxvdyBidWlsZGluZyBXUEUgb24gcGxhdGZvcm1zIHRoYXQgZG9uJ3Qg
cHJvdmlkZSBYMTEgbGlicmFyaWVzLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYg
IDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5H
X0hFQURFUlNfRElSIGluIFdlYktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5
ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L2luY2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAgICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVm
IHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1hcF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5
cGVkZWYgdm9pZCogICAgICAgICAgICAgICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlw
ZTsKIAotI2VsaWYgZGVmaW5lZChVU0VfT1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkg
fHwgZGVmaW5lZChVU0VfV1BFKQogCiB0eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlU
eXBlOwogdHlwZWRlZiBpbnRwdHJfdCBFR0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCBjZGQyNzgx
NzA0Mi4uZTRiYzM5MzU3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTctMDQtMjEgIFphbiBE
b2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBX
UEUgcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcxMTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiB3dGYvUGxhdGZvcm0uaDoKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XUEUuY21ha2U6IEFkZGVk
LgorICAgICAgICAqIHd0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oOgorCiAyMDE3LTA0
LTIwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgTW92ZSBub3RGb3Vu
ZCBpbnRvIGl0cyBvd24gZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggY2E2MmEzZjUwZGYuLmUxZmMzYmVi
MTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ0OCw2ICs0NDgsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTQ5
Miw3ICs0OTQsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYwOCw3
ICs2MTAsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzQ0LDcgKzc0Niw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTM1LDcgKzkzNyw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAwMiw3ICsxMDA0LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDUyLDExICsxMDU0LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTE5LDcgKzExMjEsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zMTRlZjQzMmJjMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dSZWZQdHIuY3BwCisgICAgZ2xpYi9HTGliVXRpbGl0
aWVzLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQ1ZjEyY2JkNTA3Li5kZmI4YmE1YWZhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTYsMTEgKzM5OTYsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0MjUwNGQwNmM3Ni4uMzUyNWRlYjQ1NzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3MyBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8
emRvYmVyc2VrQGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICB3ZWJraXQtZGV2
IHRocmVhZDoKKyAgICAgICAgaHR0cHM6Ly9saXN0cy53ZWJraXQub3JnL3BpcGVybWFpbC93ZWJr
aXQtZGV2LzIwMTctQXByaWwvMDI4OTIzLmh0bWwKKworICAgICAgICBFeGlzdGluZyBmaWxlcyBt
b3N0bHkgY2hhbmdlZCB0byBwcm9wZXJseSB1c2UgUExBVEZPUk0oV1BFKSBidWlsZCBndWFyZHMu
CisgICAgICAgIEluLWZpbGUgY2hhbmdlcyByZW1vdmVkIGZyb20gdGhpcyBDaGFuZ2VMb2cgZW50
cnkgZm9yIGJyZXZpdHkuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBQ
bGF0Zm9ybVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5T2JqZWN0Lmg6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNo
ZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxp
dHlPYmplY3RXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9nbGliL0F1ZGlvQnVzR0xpYi5jcHAuCisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaDoKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuaDoKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuaDoKKyAgICAgICAgKiBlZGl0aW5nL3dwZS9FZGl0b3JXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgICogcGFnZS93cGUvRXZl
bnRIYW5kbGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vQ3Vyc29yLmg6Cisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0RhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1h
Z2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9GaWxlU3lzdGVtLmg6CisgICAgICAgICogcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9NYWluVGhy
ZWFkU2hhcmVkVGltZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAg
ICAgICogcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5Lmg6CisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1QYXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnku
Y3BwOgorICAgICAgICAqIHBsYXRmb3JtL1dpZGdldC5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1
ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL0ZpbGVT
eXN0ZW1HbGliLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJy
aWRnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9PcGVuR0xFU1NoaW1zLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHA6IENvcGllZCBmcm9tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVh
bWVyQmFzZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNz
Q29udGV4dDNET3BlbkdMQ29tbW9uLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93
cGUvSWNvbldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUu
aDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHA6IENvcGllZCBm
cm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBw
bGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
RHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVi
b2FyZFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVl
bldQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaC4KKyAgICAgICAgKiBwbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oLgorICAgICAg
ICAqIHBsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogcGxhdGZvcm0vd3BlL1Nj
cm9sbGJhclRoZW1lV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0Ry
YXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQ
RS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgu
CisgICAgICAgICogcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNl
L1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIHBsYXRmb3JtL3dw
ZS9UaGVtZVdQRS5jcHA6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9UaGVtZVdQRS5o
OiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisg
ICAgICAgICogcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKwogMjAxNy0wNC0yMSAgVGltb3RoeSBI
b3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgRXhwb3NlIG9ic2N1
cmVkIGluc2V0cyB0byB3ZWIgY29udGVudCAoYXMgInNhZmUgYXJlYSBpbnNldHMiKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggM2Y1NmYyZWE0Y2MuLjZlOWJhYjAxYTU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMiBAQAorMjAxNy0wNC0yMSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CisKKyAgICAgICAgVXBzdHJlYW0gdGhlIFdQRSBwb3J0CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzExMTAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9QbGF0Zm9ybVdQRS5j
bWFrZTogQWRkZWQuCisKIDIwMTctMDQtMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtNYWNdIEFsbG93IGN1c3RvbWl6aW5nIEgyNjQgZW5jb2RlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZSBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjc3NWMxODk4NGFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvUEFML3BhbC9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3Qo
QVBQRU5EIFBBTF9TT1VSQ0VTCisgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9EaWdlc3RHQ3J5cHQu
Y3BwCispCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5lNjM3OTVmNGNiZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjg2IEBACitpbmNsdWRlKHBsYXRmb3Jt
L0dTdHJlYW1lci5jbWFrZSkKK2luY2x1ZGUocGxhdGZvcm0vSW1hZ2VEZWNvZGVycy5jbWFrZSkK
K2luY2x1ZGUocGxhdGZvcm0vTGludXguY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL1RleHR1cmVN
YXBwZXIuY21ha2UpCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfSU5DTFVERV9ESVJFQ1RPUklFUwor
ICAgICIke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9IgorICAgICIke0RFUklW
RURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9ESVJ9L2luc3BlY3RvciIKKyAgICAke0pBVkFTQ1JJ
UFRDT1JFX0RJUn0KKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0ZvcndhcmRpbmdIZWFkZXJz
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vQVBJIgorICAgICIke0pBVkFTQ1JJUFRDT1JF
X0RJUn0vYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvZGUiCisg
ICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ieXRlY29tcGlsZXIiCisgICAgIiR7SkFWQVNDUklQ
VENPUkVfRElSfS9kZmciCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kaXNhc3NlbWJsZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9kb21qaXQiCisgICAgIiR7SkFWQVNDUklQVENP
UkVfRElSfS9oZWFwIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGVidWdnZXIiCisgICAg
IiR7SkFWQVNDUklQVENPUkVfRElSfS9pbnRlcnByZXRlciIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2ppdCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2xsaW50IgorICAgICIke0pB
VkFTQ1JJUFRDT1JFX0RJUn0vcGFyc2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vcHJv
ZmlsZXIiCisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9ydW50aW1lIgorICAgICIke0pBVkFT
Q1JJUFRDT1JFX0RJUn0veWFyciIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvIgorICAg
ICIke1RISVJEUEFSVFlfRElSfS9BTkdMRS9pbmNsdWRlL0tIUiIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNz
L2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wiCisgICAg
IiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2dseCIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2dzdHJlYW1lciIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3MvaGFyZmJ1enovIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9o
YXJmYnV6ei9uZyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3Blbmds
IgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlIgorICAgICIke1dFQkNPUkVfRElS
fS9wbGF0Zm9ybS9ncmFwaGljcy93YXlsYW5kIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9tb2NrL21lZGlhc291cmNlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3b3Jr
L3NvdXAiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL3RleHQvaWN1IgorICAgICR7V1RG
X0RJUn0KKykKKworbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgYWNjZXNzaWJpbGl0
eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAKKyAgICBhY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3Np
YmlsaXR5T2JqZWN0V1BFLmNwcAorCisgICAgbG9hZGVyL3NvdXAvQ2FjaGVkUmF3UmVzb3VyY2VT
b3VwLmNwcAorICAgIGxvYWRlci9zb3VwL1N1YnJlc291cmNlTG9hZGVyU291cC5jcHAKKworICAg
IHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3JhcGhpY3MvU2Nyb2xsaW5nQ29vcmRpbmF0b3JD
b29yZGluYXRlZEdyYXBoaWNzLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL2Nvb3JkaW5hdGVkZ3Jh
cGhpY3MvU2Nyb2xsaW5nU3RhdGVOb2RlQ29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKKworICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU3RpY2t5Tm9kZS5jcHAKKyAgICBwYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUaHJlYWQuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
Y3BwCisKKyAgICBwbGF0Zm9ybS9DdXJzb3IuY3BwCisgICAgcGxhdGZvcm0vS2lsbFJpbmdOb25l
LmNwcAorICAgIHBsYXRmb3JtL1BsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKyAgICBwbGF0Zm9ybS9U
aGVtZS5jcHAKKworICAgIHBsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAorCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZVNvdXJjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCisKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9CYWNraW5nU3RvcmVCYWNrZW5kQ2Fpcm9JbXBsLmNwcAorICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0NhaXJvVXRpbGl0aWVzLmNwcAorICAgIHBsYXRmb3JtL2dyYXBo
aWNzL2NhaXJvL0Zsb2F0UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm9IYXJm
YnV6ek5HLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYWRpZW50Q2Fpcm8uY3Bw
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vR3JhcGhpY3NDb250ZXh0M0RDYWlyby5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUJ1ZmZlckNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vSW50UmVjdENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL05h
dGl2ZUltYWdlQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGF0aENhaXJv
LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BhdHRlcm5DYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybUNvbnRleHRDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVBhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9SZWZQdHJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWly
by9UcmFuc2Zvcm1hdGlvbk1hdHJpeENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0dseXBoUGFnZVRyZWVOb2RlRnJlZVR5cGUuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1lci9JbWFnZUdTdHJlYW1lckNhaXJvLmNwcAorCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovQ29tcGxleFRleHRDb250cm9sbGVySGFyZkJ1enou
Y3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpGYWNlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6RmFjZUNhaXJvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAorCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9vcGVuZ2wvRXh0ZW5zaW9uczNET3BlbkdMRVMuY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMRVMuY3BwCisgICAgcGxh
dGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9UZW1wb3JhcnlPcGVuR0xTZXR0aW5nLmNwcAor
CisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5cGUvT3BlblR5cGVWZXJ0aWNhbERhdGEuY3Bw
CisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcAorCisg
ICAgcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvY2Fpcm8vSW1hZ2VCYWNraW5nU3RvcmVDYWlyby5j
cHAKKworICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0NlcnRpZmljYXRlSW5mby5jcHAKKyAg
ICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQ29va2llSmFyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvQ29va2llU3RvcmFnZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0NyZWRlbnRpYWxTdG9yYWdlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
RE5TU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvR1JlZlB0clNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL05ldHdvcmtTdG9yYWdlU2Vzc2lvblNvdXAuY3BwCisg
ICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Byb3h5U2VydmVyU291cC5jcHAKKyAgICBwbGF0Zm9y
bS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VFcnJvclNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VSZXF1ZXN0U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3Vy
Y2VSZXNwb25zZVNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1NvY2tldFN0cmVh
bUhhbmRsZUltcGxTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Tb3VwTmV0d29y
a1Nlc3Npb24uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1N5bmNocm9ub3VzTG9hZGVy
Q2xpZW50U291cC5jcHAKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvV2ViS2l0U291cFJlcXVl
c3RHZW5lcmljLmNwcAorCisgICAgcGxhdGZvcm0vc291cC9TaGFyZWRCdWZmZXJTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL3NvdXAvVVJMU291cC5jcHAKKworICAgIHBsYXRmb3JtL3RleHQvSHlwaGVu
YXRpb24uY3BwCisgICAgcGxhdGZvcm0vdGV4dC9Mb2NhbGVJQ1UuY3BwCisgICAgcGxhdGZvcm0v
dGV4dC9UZXh0Q29kZWNJQ1UuY3BwCisgICAgcGxhdGZvcm0vdGV4dC9UZXh0RW5jb2RpbmdEZXRl
Y3RvcklDVS5jcHAKKworICAgICMgRklYTUU6IFNwbGl0IGJ1aWxkIHRhcmdlcnMgYmVsb3cgaW50
byBhIFdlYkNvcmVQbGF0Zm9ybSBsaWJyYXJ5CisgICAgZWRpdGluZy93cGUvRWRpdG9yV1BFLmNw
cAorCisgICAgcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ2xp
Yi9FdmVudExvb3BHbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvRmlsZVN5c3RlbUdsaWIuY3Bw
CisgICAgcGxhdGZvcm0vZ2xpYi9LZXllZERlY29kZXJHbGliLmNwcAorICAgIHBsYXRmb3JtL2ds
aWIvS2V5ZWRFbmNvZGVyR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL01haW5UaHJlYWRTaGFy
ZWRUaW1lckdMaWIuY3BwCisgICAgcGxhdGZvcm0vZ2xpYi9TaGFyZWRCdWZmZXJHbGliLmNwcAor
ICAgIHBsYXRmb3JtL2dsaWIvU1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dyYXBoaWNzQ29udGV4dENhaXJvLmNwcAorCisgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9lZ2wv
R0xDb250ZXh0RUdMV1BFLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0lj
b25XUEUuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcAorCisgICAg
cGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5jcHAKKworICAgIHBsYXRmb3JtL3dwZS9DdXJzb3JX
UEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCisgICAgcGxh
dGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5
Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BF
LmNwcAorICAgIHBsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKKyAgICBwbGF0Zm9y
bS93cGUvUmVuZGVyVGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1l
V1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUv
VGhlbWVXUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5jcHAKKworICAgIHBsYXRm
b3JtL3hkZy9NSU1FVHlwZVJlZ2lzdHJ5WGRnLmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X1VTRVJfQUdFTlRfU1RZTEVfU0hFRVRTCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRp
YWNvbnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmNzcworKQorCitzZXQoV2ViQ29yZV9VU0VSX0FH
RU5UX1NDUklQVFMKKyAgICAke1dFQkNPUkVfRElSfS9FbmdsaXNoLmxwcm9qL21lZGlhQ29udHJv
bHNMb2NhbGl6ZWRTdHJpbmdzLmpzCisgICAgJHtXRUJDT1JFX0RJUn0vTW9kdWxlcy9tZWRpYWNv
bnRyb2xzL21lZGlhQ29udHJvbHNCYXNlLmpzCispCisKK3NldChXZWJDb3JlX1VTRVJfQUdFTlRf
U0NSSVBUU19ERVBFTkRFTkNJRVMgJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcCkKKworbGlzdChBUFBFTkQgV2ViQ29yZV9MSUJSQVJJRVMKKyAgICAke0NBSVJP
X0xJQlJBUklFU30KKyAgICAke0VHTF9MSUJSQVJJRVN9CisgICAgJHtGT05UQ09ORklHX0xJQlJB
UklFU30KKyAgICAke0ZSRUVUWVBFMl9MSUJSQVJJRVN9CisgICAgJHtHTElCX0dJT19MSUJSQVJJ
RVN9CisgICAgJHtHTElCX0dNT0RVTEVfTElCUkFSSUVTfQorICAgICR7R0xJQl9HT0JKRUNUX0xJ
QlJBUklFU30KKyAgICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R05VVExTX0xJQlJBUklFU30K
KyAgICAke0hBUkZCVVpaX0xJQlJBUklFU30KKyAgICAke0lDVV9MSUJSQVJJRVN9CisgICAgJHtM
SUJHQ1JZUFRfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJRVN9CisgICAgJHtMSUJY
TUwyX0xJQlJBUklFU30KKyAgICAke0xJQlhTTFRfTElCUkFSSUVTfQorICAgICR7U1FMSVRFX0xJ
QlJBUklFU30KKyAgICAke1dQRV9MSUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
SU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7RUdM
X0lOQ0xVREVfRElSU30KKyAgICAke0ZPTlRDT05GSUdfSU5DTFVERV9ESVJTfQorICAgICR7RlJF
RVRZUEUyX0lOQ0xVREVfRElSU30KKyAgICAke0dMSUJfSU5DTFVERV9ESVJTfQorICAgICR7R05V
VExTX0lOQ0xVREVfRElSU30KKyAgICAke0hBUkZCVVpaX0lOQ0xVREVfRElSU30KKyAgICAke0lD
VV9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQ1JZUFRfSU5DTFVERV9ESVJTfQorICAgICR7TElC
U09VUF9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJYTUwyX0lOQ0xVREVfRElSfQorICAgICR7TElC
WFNMVF9JTkNMVURFX0RJUn0KKyAgICAke1NRTElURV9JTkNMVURFX0RJUn0KKyAgICAke1dQRV9J
TkNMVURFX0RJUlN9CispCisKK2lmIChFTkFCTEVfU1VCVExFX0NSWVBUTykKKyAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobS5jcHAK
KyAgICAgICAgY3J5cHRvL0NyeXB0b0FsZ29yaXRobVJlZ2lzdHJ5LmNwcAorICAgICAgICBjcnlw
dG8vQ3J5cHRvS2V5LmNwcAorICAgICAgICBjcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorICAgICAg
ICBjcnlwdG8vV2ViS2l0U3VidGxlQ3J5cHRvLmNwcAorCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DRkIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNE
U0EuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuY3Bw
CisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuY3BwCisgICAg
ICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5jcHAKKyAgICAgICAg
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5jcHAKKyAg
ICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUu
Y3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmNw
cAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwCisgICAgICAg
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5jcHAKKyAgICAgICAgY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmNwcAorICAgICAgICBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuY3BwCisKKyAgICAgICAgY3J5cHRvL2dj
cnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobUFFU19DRkJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUkdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlw
dC9DcnlwdG9BbGdvcml0aG1BRVNfR0NNR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0
L0NyeXB0b0FsZ29yaXRobUFFU19LV0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1FQ0RIR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0
b0FsZ29yaXRobUVDRFNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0Fs
Z29yaXRobUhLREZHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3Jp
dGhtSE1BQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1Q
QktERjJHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUEdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9BbGdvcml0aG1SZWdpc3RyeUdDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9D
cnlwdG9LZXlFQ0dDcnlwdC5jcHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9LZXlSU0FH
Q3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9nY3J5cHQvU2VyaWFsaXplZENyeXB0b0tleVdyYXBH
Q3J5cHQuY3BwCisKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorICAgICAg
ICBjcnlwdG8va2V5cy9DcnlwdG9LZXlEYXRhT2N0ZXRTZXF1ZW5jZS5jcHAKKyAgICAgICAgY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RGF0YVJTQUNvbXBvbmVudHMuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNw
cAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisgICAgICAgIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJhdy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5U2VyaWFs
aXphdGlvblJhdy5jcHAKKyAgICApCitlbmRpZiAoKQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCmluZGV4IDE1OWQ1Y2NjNDIyLi4z
MWEyMWZhYjgzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0LmgKQEAgLTY2LDYgKzY2LDggQEAgdHlwZWRlZiBXZWJBY2Nlc3NpYmls
aXR5T2JqZWN0V3JhcHBlciBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbGlmIFBMQVRG
T1JNKEdUSykKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQXRrT2JqZWN0OwogdHlwZWRlZiBz
dHJ1Y3QgX0F0a09iamVjdCBBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKKyNlbGlmIFBMQVRG
T1JNKFdQRSkKK2NsYXNzIEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8QWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI+IHsgfTsKICNlbHNlCiBjbGFzcyBBY2Nl
c3NpYmlsaXR5T2JqZWN0V3JhcHBlcjsKICNlbmRpZgpAQCAtMTExMSw2ICsxMTEzLDggQEAgcHJv
dGVjdGVkOgogICAgIENPTVB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93cmFwcGVy
OwogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIEF0a09iamVjdCogbV93cmFwcGVyOworI2VsaWYg
UExBVEZPUk0oV1BFKQorICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0V3JhcHBlcj4gbV93
cmFwcGVyOwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4xNTQxNTk0YWRlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCkBAIC0wLDAgKzEsNjUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwg
UHVibGljCisgKiAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91
bmRhdGlvbjsgZWl0aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91
ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlz
dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxp
YnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjEx
MC0xMzAxICBVU0EKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmpl
Y3RDYWNoZS5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1w
bGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEFYT2JqZWN0Q2FjaGU6
OmRldGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCosIEFjY2Vzc2liaWxpdHlEZXRhY2ht
ZW50VHlwZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmF0dGFjaFdyYXBwZXIoQWNjZXNzaWJpbGl0eU9iamVjdCopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpwb3N0UGxhdGZvcm1Ob3RpZmljYXRp
b24oQWNjZXNzaWJpbGl0eU9iamVjdCosIEFYTm90aWZpY2F0aW9uKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6bm9kZVRleHRDaGFuZ2VQbGF0Zm9y
bU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiwgQVhUZXh0Q2hhbmdlLCB1bnNpZ25l
ZCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFY
T2JqZWN0Q2FjaGU6OmZyYW1lTG9hZGluZ0V2ZW50UGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNz
aWJpbGl0eU9iamVjdCosIEFYTG9hZGluZ0V2ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1IYW5kbGVGb2N1c2VkVUlFbGVtZW50
Q2hhbmdlZChOb2RlKiwgTm9kZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVTY3JvbGxlZFRvQW5jaG9yKGNvbnN0IE5vZGUqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBlOTRjNTk5NGNhCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVj
dFdQRS5jcHAKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2Fs
aWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2Yg
dGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgor
ICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg
YmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRo
ZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGlj
ZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBT
b2Z0d2FyZQorICogIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGgg
Rmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJ
VFkpCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6YWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1l
bnQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCitBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFj
Y2Vzc2liaWxpdHlQbGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBEZWZhdWx0QmVoYXZpb3I7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbmZpZy5oIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKaW5kZXgg
ZDVkNDNmZTRkZjQuLjE4MDk5MGViZmZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb25m
aWcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaApAQCAtMTA0LDcgKzEwNCw3IEBACiAj
ZW5kaWYKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oTUFDKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oV1BFKQogI2RlZmluZSBVU0VfTkVXX1RIRU1FIDEKICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaAppbmRleCA0NDNhNjgyMTVhYi4uNGM3ZDAy
OThlOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuaApAQCAtMzYs
NyArMzYsNyBAQCB0eXBlZGVmIHN0cnVjdCBfQ0NFQ0NyeXB0b3IgKkNDRUNDcnlwdG9yUmVmOwog
dHlwZWRlZiBDQ0VDQ3J5cHRvclJlZiBQbGF0Zm9ybUVDS2V5OwogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5X3Nl
eHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBnY3J5
X3NleHAqIFBsYXRmb3JtRUNLZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlSU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5oCmluZGV4IDMwNWJkNGM0M2EwLi40MWJjZTg1OWVhMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1
Y3QgX0NDUlNBQ3J5cHRvciAqQ0NSU0FDcnlwdG9yUmVmOwogdHlwZWRlZiBDQ1JTQUNyeXB0b3JS
ZWYgUGxhdGZvcm1SU0FLZXk7CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIC8vIGdjcnlfc2V4cCogZXF1YXRlcyBnY3J5X3Nl
eHBfdC4KIHN0cnVjdCBnY3J5X3NleHA7CiB0eXBlZGVmIGdjcnlfc2V4cCogUGxhdGZvcm1SU0FL
ZXk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggM2MxNTdlZjZkODguLjA1ZTkxYmZm
MDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCkBAIC0xMjQ2LDEzICsxMjQ2LDEzIEBA
IHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlvblNwZWNpZmllciBhY3Rp
b24pCiAgICAgICAgICAgICBpbWFnZUVsZW1lbnQgPSBpbWFnZUVsZW1lbnRGcm9tSW1hZ2VEb2N1
bWVudChkb2N1bWVudCgpKTsKIAogICAgICAgICBpZiAoaW1hZ2VFbGVtZW50KSB7Ci0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgICAgICB3cml0ZUltYWdlVG9QYXN0
ZWJvYXJkKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSwgKmltYWdlRWxlbWVu
dCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1lbnQoKS50aXRsZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgqaW1h
Z2VFbGVtZW50LCBkb2N1bWVudCgpLnVybCgpLCBkb2N1bWVudCgpLnRpdGxlKCkpOwogI2VuZGlm
CiAgICAgICAgIH0gZWxzZSB7Ci0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykK
KyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAg
ICAgICAgICAgICB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogI2Vsc2UKICAgICAgICAgICAgIC8vIEZJWE1FOiBDb252ZXJ0
IGFsbCBvdGhlciBwbGF0Zm9ybXMgdG8gbWF0Y2ggTWFjIGFuZCBkZWxldGUgdGhpcy4KQEAgLTEz
NzcsNyArMTM3Nyw3IEBAIHZvaWQgRWRpdG9yOjpjb3B5SW1hZ2UoY29uc3QgSGl0VGVzdFJlc3Vs
dCYgcmVzdWx0KQogICAgIGlmICh1cmwuaXNFbXB0eSgpKQogICAgICAgICB1cmwgPSByZXN1bHQu
YWJzb2x1dGVJbWFnZVVSTCgpOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
CiAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICplbGVtZW50LCB1cmwsIHJlc3VsdC5hbHREaXNwbGF5U3RyaW5nKCkpOwogI2Vs
c2UKICAgICBQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKS0+d3JpdGVJbWFnZSgq
ZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0RGlzcGxheVN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCmluZGV4IDE2NTJiNmRiMzkzLi4zNmI5NmIyYmNlMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5oCkBAIC00NjcsNyArNDY3LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgcmVwbGFjZVNlbGVjdGlvbldpdGhBdHRyaWJ1dGVkU3RyaW5nKE5TQXR0cmlidXRlZFN0cmlu
ZyAqLCBNYWlsQmxvY2txdW90ZUhhbmRsaW5nID0gTWFpbEJsb2NrcXVvdGVIYW5kbGluZzo6UmVz
cGVjdEJsb2NrcXVvdGUpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JN
KFdQRSkKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJk
KFBhc3RlYm9hcmQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdyaXRlSW1hZ2VUb1Bhc3Rl
Ym9hcmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmIGltYWdlRWxlbWVudCwgY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiB0aXRsZSk7CiAgICAgdm9pZCB3cml0ZVNlbGVjdGlvbihQYXN0ZWJvYXJkV3Jp
dGVyRGF0YSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9y
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmFmZmQyZGUxZTk4Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy93cGUvRWRpdG9yV1BFLmNwcApAQCAtMCww
ICsxLDg4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFZGl0b3IuaCIKKworI2luY2x1ZGUg
IkRvY3VtZW50RnJhZ21lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk5vdElt
cGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIm1hcmt1cC5o
IgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBQYXNzUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGNyZWF0ZUZyYWdtZW50RnJvbVBhc3RlYm9hcmREYXRhKFBhc3RlYm9hcmQmIHBhc3Rl
Ym9hcmQsIEZyYW1lJiBmcmFtZSwgUmFuZ2UmIHJhbmdlLCBib29sIGFsbG93UGxhaW5UZXh0LCBi
b29sJiBjaG9zZVBsYWluVGV4dCkKK3sKKyAgICBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOworCisg
ICAgVmVjdG9yPFN0cmluZz4gdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzKCk7CisgICAgaWYgKHR5
cGVzLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAodHlwZXMu
Y29udGFpbnMoInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IikgJiYgZnJhbWUuZG9jdW1lbnQoKSkg
eworICAgICAgICBTdHJpbmcgbWFya3VwID0gcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L2h0
bWw7Y2hhcnNldD11dGYtOCIpOworICAgICAgICBpZiAoUmVmUHRyPERvY3VtZW50RnJhZ21lbnQ+
IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tTWFya3VwKCpmcmFtZS5kb2N1bWVudCgpLCBt
YXJrdXAsIGVtcHR5U3RyaW5nKCksIERpc2FsbG93U2NyaXB0aW5nQW5kUGx1Z2luQ29udGVudCkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIGlm
ICghYWxsb3dQbGFpblRleHQpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgaWYgKHR5
cGVzLmNvbnRhaW5zKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkgeworICAgICAgICBjaG9z
ZVBsYWluVGV4dCA9IHRydWU7CisgICAgICAgIGlmIChSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4g
ZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KHJhbmdlLCBwYXN0ZWJvYXJkLnJlYWRT
dHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIpKSkKKyAgICAgICAgICAgIHJldHVybiBm
cmFnbWVudC5yZWxlYXNlKCk7CisgICAgfQorCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgRWRpdG9yOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQoreworICAgIFBhc3RlYm9hcmRXZWJDb250ZW50IHBhc3RlYm9hcmRDb250ZW50OworICAg
IHBhc3RlYm9hcmRDb250ZW50LnRleHQgPSBzZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIoKTsK
KyAgICBwYXN0ZWJvYXJkQ29udGVudC5tYXJrdXAgPSBjcmVhdGVNYXJrdXAoKnNlbGVjdGVkUmFu
Z2UoKSwgbnVsbHB0ciwgQW5ub3RhdGVGb3JJbnRlcmNoYW5nZSwgZmFsc2UsIFJlc29sdmVOb25M
b2NhbFVSTHMpOworICAgIHBhc3RlYm9hcmQud3JpdGUocGFzdGVib2FyZENvbnRlbnQpOworfQor
Cit2b2lkIEVkaXRvcjo6d3JpdGVJbWFnZVRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJiwgRWxlbWVu
dCYsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBFZGl0b3I6OnBhc3RlV2l0aFBhc3RlYm9hcmQoUGFzdGVib2FyZCogcGFzdGVi
b2FyZCwgYm9vbCBhbGxvd1BsYWluVGV4dCwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyBtYWlsQmxv
Y2txdW90ZUhhbmRsaW5nKQoreworICAgIFJlZlB0cjxSYW5nZT4gcmFuZ2UgPSBzZWxlY3RlZFJh
bmdlKCk7CisgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYm9vbCBjaG9z
ZVBsYWluVGV4dDsKKyAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVh
dGVGcmFnbWVudEZyb21QYXN0ZWJvYXJkRGF0YSgqcGFzdGVib2FyZCwgbV9mcmFtZSwgKnJhbmdl
LCBhbGxvd1BsYWluVGV4dCwgY2hvc2VQbGFpblRleHQpOworICAgIGlmIChmcmFnbWVudCAmJiBz
aG91bGRJbnNlcnRGcmFnbWVudChmcmFnbWVudCwgcmFuZ2UsIEVkaXRvckluc2VydEFjdGlvbjo6
UGFzdGVkKSkKKyAgICAgICAgcGFzdGVBc0ZyYWdtZW50KCpmcmFnbWVudCwgY2FuU21hcnRSZXBs
YWNlV2l0aFBhc3RlYm9hcmQoKnBhc3RlYm9hcmQpLCBjaG9zZVBsYWluVGV4dCwgbWFpbEJsb2Nr
cXVvdGVIYW5kbGluZyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA2OTU3Yzg3ODRmYy4uZWRlOTQwMTczOTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTI2MTEsNyArMjYxMSw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjppc0luc2lkZVNjcm9sbGJhcihjb25zdCBJbnRQb2ludCYgd2luZG93UG9p
bnQpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykKKyNp
ZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogCiBib29sIEV2ZW50SGFuZGxlcjo6
c2hvdWxkVHVyblZlcnRpY2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0
JiwgY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4zZWRjZDg1ZDgzNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5jcHAKQEAgLTAsMCArMSwxMDggQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkV2ZW50SGFuZGxlci5oIgorCisjaW5jbHVkZSAiUGFnZS5oIgorI2lu
Y2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRm9jdXNDb250cm9sbGVyLmgiCisjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEV2ZW50SGFu
ZGxlcjo6dGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQmKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEV2ZW50SGFu
ZGxlcjo6Zm9jdXNEb2N1bWVudFZpZXcoKQoreworICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFt
ZS5wYWdlKCkpCisgICAgICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLnNldEZvY3VzZWRGcmFt
ZSgmbV9mcmFtZSk7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3du
RXZlbnRUb1dpZGdldChjb25zdCBNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaWRnZXRNb3VzZURvd25FdmVudFRvV2lkZ2V0KFJlbmRlcldpZGdldCopCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjpwYXNzTW91c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6ZXZlbnRBY3RpdmF0ZWRWaWV3KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpIGNvbnN0Cit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZl
bnRIYW5kbGVyOjp3aWRnZXREaWRIYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYsIFdpZGdldCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VQcmVzc0V2ZW50VG9TdWJmcmFt
ZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwgRnJhbWUqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFz
c01vdXNlTW92ZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiwg
RnJhbWUqLCBIaXRUZXN0UmVzdWx0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZVJlbGVhc2VFdmVu
dFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworT3B0aW9uU2V0PFBs
YXRmb3JtRXZlbnQ6Ok1vZGlmaWVyPiBFdmVudEhhbmRsZXI6OmFjY2Vzc0tleU1vZGlmaWVycygp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gUGxhdGZvcm1FdmVudDo6TW9k
aWZpZXI6OkFsdEtleTsKK30KKworYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNh
bFRpY2tzSW50b0hvcml6b250YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3Jt
V2hlZWxFdmVudCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKaW5kZXggY2RjZjI2NWYyNjAu
LjVlOTExZDcwOGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3Iu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaApAQCAtNzQsNiArNzQsOCBA
QCB1c2luZyBQbGF0Zm9ybUN1cnNvciA9IFJlZlB0cjxTaGFyZWRDdXJzb3I+OwogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBOU0N1cnNvciAqOwogI2VsaWYgUExBVEZPUk0oR1RLKQogdXNpbmcgUGxh
dGZvcm1DdXJzb3IgPSBHUmVmUHRyPEdka0N1cnNvcj47CisjZWxpZiBQTEFURk9STShXUEUpCit1
c2luZyBQbGF0Zm9ybUN1cnNvciA9IHZvaWQqOwogI2VuZGlmCiAKIGNsYXNzIEN1cnNvciB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaAppbmRleCAxOTU3MjFiMWZkYS4uZjM2M2ZhZjU1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAtNTMsNyArNTMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBjbGFzcyBTZWxlY3Rpb25EYXRhOwogfQogdHlwZWRlZiBXZWJDb3JlOjpT
ZWxlY3Rpb25EYXRhKiBEcmFnRGF0YVJlZjsKLSNlbGlmIFBMQVRGT1JNKElPUykKKyNlbGlmIFBM
QVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB2b2lkKiBEcmFnRGF0YVJlZjsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGUzMjU1ZDE5YWQy
Li5jYmVmNzM4ZjY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKQEAgLTQxLDcg
KzQxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dJbWFnZSAqQ0dJbWFnZVJlZjsKIE9CSkNfQ0xBU1Mg
TlNJbWFnZTsKICNlbGlmIFBMQVRGT1JNKFdJTikKIHR5cGVkZWYgc3RydWN0IEhCSVRNQVBfXyog
SEJJVE1BUDsKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAjZW5kaWYKIApAQCAtNjQsNyAr
NjQsNyBAQCB0eXBlZGVmIFJldGFpblB0cjxDR0ltYWdlUmVmPiBEcmFnSW1hZ2VSZWY7CiB0eXBl
ZGVmIFJldGFpblB0cjxOU0ltYWdlPiBEcmFnSW1hZ2VSZWY7CiAjZWxpZiBQTEFURk9STShXSU4p
CiB0eXBlZGVmIEhCSVRNQVAgRHJhZ0ltYWdlUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2Vs
aWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIFJlZlB0cjxjYWlyb19z
dXJmYWNlX3Q+IERyYWdJbWFnZVJlZjsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxl
U3lzdGVtLmgKaW5kZXggZjEyNjhhNjhkMmQuLjFkMTIzNmFhN2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9GaWxlU3lzdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRmlsZVN5c3RlbS5oCkBAIC0xOTgsNyArMTk4LDcgQEAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBmaWxlc0hhdmVTYW1lVm9sdW1lKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpOwogUmV0
YWluUHRyPENGVVJMUmVmPiBwYXRoQXNVUkwoY29uc3QgU3RyaW5nJik7CiAjZW5kaWYKIAotI2lm
IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKIFN0cmlu
ZyBmaWxlbmFtZUZvckRpc3BsYXkoY29uc3QgU3RyaW5nJik7CiBDU3RyaW5nIGFwcGxpY2F0aW9u
RGlyZWN0b3J5UGF0aCgpOwogQ1N0cmluZyBzaGFyZWRSZXNvdXJjZXNQYXRoKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcAppbmRleCA3
NzhjYWMyZDk4Yi4uZGRhNjgyZWI4NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmNwcApAQCAtMzQsNyArMzQsNyBAQCBNYWluVGhyZWFk
U2hhcmVkVGltZXImIE1haW5UaHJlYWRTaGFyZWRUaW1lcjo6c2luZ2xldG9uKCkKICAgICByZXR1
cm4gaW5zdGFuY2U7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShHVEsp
ICYmICFQTEFURk9STShXUEUpCiBNYWluVGhyZWFkU2hhcmVkVGltZXI6Ok1haW5UaHJlYWRTaGFy
ZWRUaW1lcigpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWlu
VGhyZWFkU2hhcmVkVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCmluZGV4IDU5MGY2ODk0YWQzLi40OTA3MzBmMTQzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmgKQEAgLTMwLDcgKzMw
LDcgQEAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ry
b3llZC5oPgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjZW5kaWYKIApAQCAtNTQsNyArNTQs
NyBAQCBwcml2YXRlOgogICAgIE1haW5UaHJlYWRTaGFyZWRUaW1lcigpOwogCiAgICAgc3RkOjpm
dW5jdGlvbjx2b2lkKCk+IG1fZmlyZWRGdW5jdGlvbjsKLSNpZiBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgUnVuTG9vcDo6VGltZXI8TWFpblRo
cmVhZFNoYXJlZFRpbWVyPiBtX3RpbWVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGI5NGQ3MGExZjZhLi45YzE0YmEyN2M5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtNjIsNyArNjIsNyBAQCBlbnVtIFNob3VsZFNlcmlh
bGl6ZVNlbGVjdGVkVGV4dEZvckRhdGFUcmFuc2ZlciB7IERlZmF1bHRTZWxlY3RlZFRleHRUeXBl
LCBJbmNsdQogLy8gRm9yIHdyaXRpbmcgdG8gdGhlIHBhc3RlYm9hcmQuIEdlbmVyYWxseSBzb3J0
ZWQgd2l0aCB0aGUgcmljaGVzdCBmb3JtYXRzIG9uIHRvcC4KIAogc3RydWN0IFBhc3RlYm9hcmRX
ZWJDb250ZW50IHsKLSNpZiAhKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSkKKyNpZiAh
KFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV0lOKSB8fCBQTEFURk9STShXUEUpKQogICAgIFdF
QkNPUkVfRVhQT1JUIFBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
flBhc3RlYm9hcmRXZWJDb250ZW50KCk7CiAgICAgYm9vbCBjYW5TbWFydENvcHlPckRlbGV0ZTsK
QEAgLTgwLDYgKzgwLDEwIEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7CiAgICAgU3Ry
aW5nIHRleHQ7CiAgICAgU3RyaW5nIG1hcmt1cDsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICBTdHJpbmcgdGV4dDsKKyAgICBTdHJpbmcgbWFya3VwOworI2VuZGlmCiB9OwogCiBzdHJ1
Y3QgUGFzdGVib2FyZFVSTCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkU3RyYXRlZ3kuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRT
dHJhdGVneS5oCmluZGV4IGU4OGE0ODkxMTgzLi45OWQ3NWY0ZWJiMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKQEAgLTY5LDEwICs2OSwxOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBsb25nIHNldFBhdGhuYW1lc0ZvclR5cGUoY29uc3QgVmVjdG9y
PFN0cmluZz4mLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKSA9IDA7CiAgICAgdmlydHVhbCBsb25nIHNldFN0cmluZ0ZvclR5cGUoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdmly
dHVhbCB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwg
Y29uc3QgU2VsZWN0aW9uRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIFJlZjxTZWxlY3Rpb25EYXRh
PiByZWFkRnJvbUNsaXBib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAj
ZW5kaWYgLy8gUExBVEZPUk0oR1RLKQorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZpcnR1YWwg
dm9pZCBnZXRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgdHlwZXMpID0gMDsKKyAgICB2aXJ0dWFsIFN0
cmluZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmRUeXBlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNv
bnN0IFBhc3RlYm9hcmRXZWJDb250ZW50JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRv
UGFzdGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKSA9
IDA7CisjZW5kaWYKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgflBhc3RlYm9hcmRTdHJhdGVn
eSgpCiAgICAgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Q
YXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQu
aAppbmRleCAzN2E3OTE4M2Y2Yy4uZjNlNDMwNDNlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oCkBAIC00MCw2ICs0MCwxMCBAQCBPQkpDX0NMQVNT
IE5TUGFzdGVib2FyZDsKIE9CSkNfQ0xBU1MgVUlQYXN0ZWJvYXJkOwogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCitzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQ7CisjZW5kaWYKKwogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBjbGFzcyBDb2xvcjsKQEAgLTUyLDcgKzU2LDcgQEAgc3RydWN0IFBhc3Rl
Ym9hcmRXZWJDb250ZW50OwogY2xhc3MgUGxhdGZvcm1QYXN0ZWJvYXJkIHsKIHB1YmxpYzoKICAg
ICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBQbGF0Zm9ybVBhc3RlYm9hcmQoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSk7Ci0jaWYgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKElPUykg
fHwgUExBVEZPUk0oV1BFKQogICAgIFdFQkNPUkVfRVhQT1JUIFBsYXRmb3JtUGFzdGVib2FyZCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIFZlY3RvcjxTdHJpbmc+IGZpbGVuYW1lc0ZvckRhdGFJbnRl
cmFjdGlvbigpOwogI2VuZGlmCkBAIC0xMDUsNiArMTA5LDkgQEAgcHJpdmF0ZToKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgR3RrQ2xpcGJvYXJkKiBtX2NsaXBib2FyZDsKICNlbmRpZgorI2lmIFBM
QVRGT1JNKFdQRSkKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmQqIG1fcGFzdGVib2FyZDsKKyNl
bmRpZgogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1l
UmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3Bw
CmluZGV4IDViYWQzY2QwZDU2Li42NGUzNTYzOTZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2NoZW1lUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1NjaGVtZVJlZ2lzdHJ5LmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgVVJMU2NoZW1l
c01hcCYgc2VjdXJlU2NoZW1lcygpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJh
Ym91dCIpOwogICAgICAgICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgiZGF0YSIpOwogICAgICAg
ICBzZWN1cmVTY2hlbWVzLmdldCgpLmFkZCgid3NzIik7Ci0jaWYgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBzZWN1cmVTY2hlbWVzLmdl
dCgpLmFkZCgicmVzb3VyY2UiKTsKICNlbmRpZgogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vV2lkZ2V0
LmgKaW5kZXggNTViNDlhNGRkYzcuLjVkN2FhNDhhNzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9XaWRnZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRn
ZXQuaApAQCAtNjEsNiArNjEsMTAgQEAgdHlwZWRlZiBzdHJ1Y3QgX0d0a0NvbnRhaW5lciBHdGtD
b250YWluZXI7CiB0eXBlZGVmIEd0a1dpZGdldCogUGxhdGZvcm1XaWRnZXQ7CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3R5cGVkZWYgdm9pZCogUGxhdGZvcm1XaWRnZXQ7CisjZW5kaWYK
KwogdHlwZWRlZiBQbGF0Zm9ybVdpZGdldCBQbGF0Zm9ybVBhZ2VDbGllbnQ7CiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2ds
aWIvQXVkaW9CdXNHTGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIv
QXVkaW9CdXNHTGliLmNwcAppbmRleCA3OTFiZmEzOTYzNi4uODE5NzViNjRhNWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9nbGliL0F1ZGlvQnVzR0xpYi5jcHAK
QEAgLTI3LDExICsyNywxNyBAQAogI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4KICNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKKyNpZiBQTEFURk9STShHVEspCisjZGVmaW5l
IEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8iCisj
ZWxpZiBQTEFURk9STShXUEUpCisjZGVmaW5lIEFVRElPX0dSRVNPVVJDRV9QQVRIICIvb3JnL3dl
YmtpdHdwZS9yZXNvdXJjZXMvYXVkaW8iCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
CiBQYXNzUmVmUHRyPEF1ZGlvQnVzPiBBdWRpb0J1czo6bG9hZFBsYXRmb3JtUmVzb3VyY2UoY29u
c3QgY2hhciogbmFtZSwgZmxvYXQgc2FtcGxlUmF0ZSkKIHsKLSAgICBHVW5pcXVlUHRyPGNoYXI+
IHBhdGgoZ19zdHJkdXBfcHJpbnRmKCIvb3JnL3dlYmtpdGd0ay9yZXNvdXJjZXMvYXVkaW8vJXMi
LCBuYW1lKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBwYXRoKGdfc3RyZHVwX3ByaW50ZihBVURJ
T19HUkVTT1VSQ0VfUEFUSCAiLyVzIiwgbmFtZSkpOwogICAgIEdSZWZQdHI8R0J5dGVzPiBkYXRh
ID0gYWRvcHRHUmVmKGdfcmVzb3VyY2VzX2xvb2t1cF9kYXRhKHBhdGguZ2V0KCksIEdfUkVTT1VS
Q0VfTE9PS1VQX0ZMQUdTX05PTkUsIG51bGxwdHIpKTsKICAgICBBU1NFUlQoZGF0YSk7CiAgICAg
cmV0dXJuIGNyZWF0ZUJ1c0Zyb21Jbk1lbW9yeUF1ZGlvRmlsZShnX2J5dGVzX2dldF9kYXRhKGRh
dGEuZ2V0KCksIG51bGxwdHIpLCBnX2J5dGVzX2dldF9zaXplKGRhdGEuZ2V0KCkpLCBmYWxzZSwg
c2FtcGxlUmF0ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9nbGliL0Zp
bGVTeXN0ZW1HbGliLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwCmluZGV4IDZmYTNlYTc3MWYzLi44M2QzMmUxMzhmNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5jcHAKQEAgLTIxMyw2ICsyMTMs
OSBAQCBDU3RyaW5nIHNoYXJlZFJlc291cmNlc1BhdGgoKQogICAgIGlmICghY2FjaGVkUGF0aC5p
c051bGwoKSkKICAgICAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBhdGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJ
UiwgIndwZSIsIG51bGxwdHIpKTsKKyNlbGlmIFBMQVRGT1JNKEdUSykKICNpZiBPUyhXSU5ET1dT
KQogICAgIEhNT0RVTEUgaG1vZHVsZSA9IDA7CiAgICAgR2V0TW9kdWxlSGFuZGxlRXhBKEdFVF9N
T0RVTEVfSEFORExFX0VYX0ZMQUdfRlJPTV9BRERSRVNTLCByZWludGVycHJldF9jYXN0PGNoYXIq
PihzaGFyZWRSZXNvdXJjZXNQYXRoKSwgJmhtb2R1bGUpOwpAQCAtMjIyLDYgKzIyNSw3IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAjZWxzZQogICAgIEdVbmlxdWVQdHI8Z2NoYXI+
IGRhdGFQYXRoKGdfYnVpbGRfZmlsZW5hbWUoREFUQV9ESVIsICJ3ZWJraXRndGstIiBXRUJLSVRH
VEtfQVBJX1ZFUlNJT05fU1RSSU5HLCBOVUxMKSk7CiAjZW5kaWYKKyNlbmRpZgogCiAgICAgY2Fj
aGVkUGF0aCA9IGRhdGFQYXRoLmdldCgpOwogICAgIHJldHVybiBjYWNoZWRQYXRoOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgK
aW5kZXggOTExNGU3NmM3NTkuLjJhY2NmYWQxNTk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKQEAgLTM2LDcgKzM2LDcg
QEAKICNpbmNsdWRlIDxPcGVuR0wvZ2wuaD4KICNlbGlmIFBMQVRGT1JNKFdJTikKICNpbmNsdWRl
ICJPcGVuR0xFU1NoaW1zLmgiCi0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9STShH
VEspIHx8IFBMQVRGT1JNKFdQRSkKICNpZiBVU0UoT1BFTkdMX0VTXzIpCiAjaW5jbHVkZSA8R0xF
UzIvZ2wyLmg+CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR0xDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dM
Q29udGV4dC5jcHAKaW5kZXggNzBmNTg3MzkyZjYuLmMxNWJlYzVlOWIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKQEAgLTEyMCw3ICsxMjAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0PiBHTENvbnRleHQ6OmNyZWF0ZVNoYXJpbmdD
b250ZXh0KFBsYXRmb3JtRGlzcGxheSYgZGlzcAogICAgIH0KICNlbmRpZgogCi0jaWYgVVNFKEVH
TCkgfHwgUExBVEZPUk0oV0FZTEFORCkKKyNpZiBVU0UoRUdMKSB8fCBQTEFURk9STShXQVlMQU5E
KSB8fCBQTEFURk9STShXUEUpCiAgICAgaWYgKGF1dG8gZWdsQ29udGV4dCA9IEdMQ29udGV4dEVH
TDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQoZGlzcGxheSkpCiAgICAgICAgIHJldHVybiBXVEZNb3Zl
KGVnbENvbnRleHQpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HTENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dMQ29udGV4dC5oCmluZGV4IDJjMGVhMjdlMTkzLi4wNDY5ZWI1MzNiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmgKQEAgLTI1LDcgKzI1LDEzIEBA
CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKICNpZiBVU0UoRUdMKSAmJiAhUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIEZJWE1FOiBGaW5kIHNvbWUgd2F5IHRvIGRl
ZHVjZSB0aGlzLgorI2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0u
aD4KKyNlbHNlCiAjaW5jbHVkZSAiZWdscGxhdGZvcm0uaCIKKyNlbmRpZgogdHlwZWRlZiBFR0xO
YXRpdmVXaW5kb3dUeXBlIEdMTmF0aXZlV2luZG93VHlwZTsKICNlbHNlCiB0eXBlZGVmIHVpbnQ2
NF90IEdMTmF0aXZlV2luZG93VHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dDNELmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRC5oCmluZGV4IDdkODBkNWI0NWI0Li5iMmI3OTUy
NTQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NDb250ZXh0M0QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0NvbnRleHQzRC5oCkBAIC02MCw3ICs2MCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0
ci5oPgogT0JKQ19DTEFTUyBDQUxheWVyOwogT0JKQ19DTEFTUyBXZWJHTExheWVyOwotI2VsaWYg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU5fQ0FJUk8pCisjZWxpZiBQTEFURk9STShHVEsp
IHx8IFBMQVRGT1JNKFdJTl9DQUlSTykgfHwgUExBVEZPUk0oV1BFKQogdHlwZWRlZiB1bnNpZ25l
ZCBpbnQgR0x1aW50OwogI2VuZGlmCiAKQEAgLTEzNzMsNyArMTM3Myw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2hhZGVyTmFtZUhhc2g+IG5hbWVIYXNoTWFwRm9yU2hhZGVy
czsKIAotI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pKSAmJiBVU0UoT1BFTkdM
X0VTXzIpKQorI2lmICgoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JN
KFdQRSkpICYmIFVTRShPUEVOR0xfRVNfMikpCiAgICAgZnJpZW5kIGNsYXNzIEV4dGVuc2lvbnMz
RE9wZW5HTEVTOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxFeHRlbnNpb25zM0RPcGVuR0xFUz4gbV9l
eHRlbnNpb25zOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL09wZW5HTEVTU2hpbXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L09wZW5HTEVTU2hpbXMuaAppbmRleCBiNGU5NTE1NzIxNy4uYWI3YzZiOGYzOTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9PcGVuR0xFU1NoaW1zLmgKQEAgLTI2
LDcgKzI2LDcgQEAKICNpZm5kZWYgT3BlbkdMRVNTaGltc19oCiAjZGVmaW5lIE9wZW5HTEVTU2hp
bXNfaAogCi0jaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXSU4pCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgZ2xCaW5kRnJh
bWVidWZmZXJFWFQgZ2xCaW5kRnJhbWVidWZmZXIKICNkZWZpbmUgZ2xGcmFtZWJ1ZmZlclRleHR1
cmUyREVYVCBnbEZyYW1lYnVmZmVyVGV4dHVyZTJECiAjZGVmaW5lIGdsQmluZFJlbmRlcmJ1ZmZl
ckVYVCBnbEJpbmRSZW5kZXJidWZmZXIKQEAgLTQ1LDYgKzQ1LDcgQEAKICNkZWZpbmUgZ2xJc0Zy
YW1lYnVmZmVyRVhUIGdsSXNGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEdlbmVyYXRlTWlwbWFwRVhU
IGdsR2VuZXJhdGVNaXBtYXAKICNkZWZpbmUgR0xfREVQVEhfQVRUQUNITUVOVF9FWFQgR0xfREVQ
VEhfQVRUQUNITUVOVAorI2RlZmluZSBHTF9DT0xPUl9BVFRBQ0hNRU5UMF9FWFQgR0xfQ09MT1Jf
QVRUQUNITUVOVDAKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfQ09NUExFVEVfRVhUIEdMX0ZSQU1F
QlVGRkVSX0NPTVBMRVRFCiAjZGVmaW5lIEdMX0ZSQU1FQlVGRkVSX0VYVCBHTF9GUkFNRUJVRkZF
UgogI2RlZmluZSBHTF9ERVBUSDI0X1NURU5DSUw4X0VYVCBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1E
aXNwbGF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5jcHAKaW5kZXggNjdlZmJjZWI4YjMuLjFiNzE5NTRmNTUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKQEAgLTQy
LDYgKzQyLDEwIEBACiAjaW5jbHVkZSAiUGxhdGZvcm1EaXNwbGF5V2luLmgiCiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKKyNlbmRp
ZgorCiAjaWYgUExBVEZPUk0oR1RLKQogI2luY2x1ZGUgPGdkay9nZGsuaD4KICNlbmRpZgpAQCAt
MTAwLDYgKzEwNCwxMCBAQCBzdGQ6OnVuaXF1ZV9wdHI8UGxhdGZvcm1EaXNwbGF5PiBQbGF0Zm9y
bURpc3BsYXk6OmNyZWF0ZVBsYXRmb3JtRGlzcGxheSgpCiAgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8UGxhdGZvcm1EaXNwbGF5WDExPihudWxscHRyKTsKICNlbmRpZgogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBsYXRmb3JtRGlzcGxheVdQRT4o
KTsKKyNlbmRpZgorCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIG51bGxw
dHI7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0
Zm9ybURpc3BsYXkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3Jt
RGlzcGxheS5oCmluZGV4IGY3NjRjMmQ0NTFmLi5jYjVmYTFlZjMwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmgKQEAgLTU0LDYg
KzU0LDkgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikKICAgICAgICAgV2luZG93cywKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgV1BFLAorI2VuZGlmCiAgICAgfTsKIAog
ICAgIHZpcnR1YWwgVHlwZSB0eXBlKCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcAppbmRleCAxYzFjZWMy
NmFjZi4uOWZlNzU1ZmM1OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCkBAIC0yMDQsNiArMjA0LDEzIEBAIHN0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlU2hhcmluZ0NvbnRl
eHQoUGxhdGZvcm1EaXNwbGF5CiAgICAgaWYgKGVnbEJpbmRBUEkoZ0VHTEFQSVZlcnNpb24pID09
IEVHTF9GQUxTRSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgaWYgKHBsYXRmb3JtRGlzcGxheS50eXBlKCkgPT0gUGxhdGZvcm1EaXNwbGF5OjpUeXBl
OjpXUEUpIHsKKyAgICAgICAgaWYgKGF1dG8gY29udGV4dCA9IGNyZWF0ZVdQRUNvbnRleHQocGxh
dGZvcm1EaXNwbGF5KSkKKyAgICAgICAgICAgIHJldHVybiBjb250ZXh0OworICAgIH0KKyNlbmRp
ZgorCiAgICAgYXV0byBjb250ZXh0ID0gY3JlYXRlU3VyZmFjZWxlc3NDb250ZXh0KHBsYXRmb3Jt
RGlzcGxheSk7CiAgICAgaWYgKCFjb250ZXh0KSB7CiAjaWYgUExBVEZPUk0oWDExKQpAQCAtMjUx
LDYgKzI1OCw5IEBAIEdMQ29udGV4dEVHTDo6fkdMQ29udGV4dEVHTCgpCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2VuZGlmCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIGRlc3Ryb3lXUEVUYXJnZXQoKTsKKyNlbmRpZgogfQogCiBib29sIEdMQ29u
dGV4dEVHTDo6Y2FuUmVuZGVyVG9EZWZhdWx0RnJhbWVidWZmZXIoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCmluZGV4IGU1YTMz
NTk3ZDdiLi45YTAzM2ZlYjJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuaApAQCAtMzIsNiArMzIsMTAgQEAKIHN0cnVjdCB3
bF9lZ2xfd2luZG93OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisjZW5kaWYKKwogdHlwZWRlZiB2b2lkICpFR0xDb25maWc7CiB0
eXBlZGVmIHZvaWQgKkVHTENvbnRleHQ7CiB0eXBlZGVmIHZvaWQgKkVHTERpc3BsYXk7CkBAIC03
Myw2ICs3Nyw5IEBAIHByaXZhdGU6CiAgICAgR0xDb250ZXh0RUdMKFBsYXRmb3JtRGlzcGxheSYs
IEVHTENvbnRleHQsIEVHTFN1cmZhY2UsIFdsVW5pcXVlUHRyPHN0cnVjdCB3bF9zdXJmYWNlPiYm
LCBzdHJ1Y3Qgd2xfZWdsX3dpbmRvdyopOwogICAgIHZvaWQgZGVzdHJveVdheWxhbmRXaW5kb3co
KTsKICNlbmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGRlc3Ryb3lXUEVUYXJnZXQo
KTsKKyNlbmRpZgogCiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IGNy
ZWF0ZVdpbmRvd0NvbnRleHQoR0xOYXRpdmVXaW5kb3dUeXBlLCBQbGF0Zm9ybURpc3BsYXkmLCBF
R0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CiAgICAgc3RhdGljIHN0ZDo6dW5p
cXVlX3B0cjxHTENvbnRleHRFR0w+IGNyZWF0ZVBidWZmZXJDb250ZXh0KFBsYXRmb3JtRGlzcGxh
eSYsIEVHTENvbnRleHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKQEAgLTg1LDYgKzkyLDkg
QEAgcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3Jl
YXRlV2F5bGFuZENvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29udGV4dCBzaGFyaW5nQ29u
dGV4dCA9IG51bGxwdHIpOwogICAgIHN0YXRpYyBFR0xTdXJmYWNlIGNyZWF0ZVdpbmRvd1N1cmZh
Y2VXYXlsYW5kKEVHTERpc3BsYXksIEVHTENvbmZpZywgR0xOYXRpdmVXaW5kb3dUeXBlKTsKICNl
bmRpZgorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29u
dGV4dEVHTD4gY3JlYXRlV1BFQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNo
YXJpbmdDb250ZXh0ID0gbnVsbHB0cik7CisjZW5kaWYKIAogICAgIHN0YXRpYyBib29sIGdldEVH
TENvbmZpZyhFR0xEaXNwbGF5LCBFR0xDb25maWcqLCBFR0xTdXJmYWNlVHlwZSk7CiAKQEAgLTk4
LDYgKzEwOCw5IEBAIHByaXZhdGU6CiAgICAgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+
IG1fd2xTdXJmYWNlOwogICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiBtX3dsV2luZG93IHsgbnVs
bHB0ciB9OwogI2VuZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gbV93cGVUYXJnZXQ7CisjZW5k
aWYKICNpZiBVU0UoQ0FJUk8pCiAgICAgY2Fpcm9fZGV2aWNlX3QqIG1fY2Fpcm9EZXZpY2UgeyBu
dWxscHRyIH07CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2VnbC9HTENvbnRleHRFR0xXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjlmM2Y0MmQ3NjQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKQEAgLTAsMCAr
MSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAg
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2Vu
ZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1
dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5
IG9mCisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRo
aXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5k
YXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEg
IDAyMTEwLTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJH
TENvbnRleHRFR0wuaCIKKworI2lmIFVTRShFR0wpICYmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1
ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0ZDo6
dW5pcXVlX3B0cjxHTENvbnRleHRFR0w+IEdMQ29udGV4dEVHTDo6Y3JlYXRlV1BFQ29udGV4dChQ
bGF0Zm9ybURpc3BsYXkmIHBsYXRmb3JtRGlzcGxheSwgRUdMQ29udGV4dCBzaGFyaW5nQ29udGV4
dCkKK3sKKyAgICBhdXRvIG9mZnNjcmVlblRhcmdldCA9IGRvd25jYXN0PFBsYXRmb3JtRGlzcGxh
eVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xPZmZzY3JlZW5UYXJnZXQoKTsKKyAgICBh
dXRvIGNvbnRleHQgPSBjcmVhdGVXaW5kb3dDb250ZXh0KG9mZnNjcmVlblRhcmdldC0+bmF0aXZl
V2luZG93KCksIHBsYXRmb3JtRGlzcGxheSwgc2hhcmluZ0NvbnRleHQpOworICAgIGlmIChjb250
ZXh0KQorICAgICAgICBjb250ZXh0LT5tX3dwZVRhcmdldCA9IFdURk1vdmUob2Zmc2NyZWVuVGFy
Z2V0KTsKKyAgICByZXR1cm4gY29udGV4dDsKK30KKwordm9pZCBHTENvbnRleHRFR0w6OmRlc3Ry
b3lXUEVUYXJnZXQoKQoreworICAgIG1fd3BlVGFyZ2V0ID0gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3Bw
CmluZGV4IDJiZjExZWExYmQ3Li4yOTE3MzQzNmZiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2dzdHJlYW1l
ci9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNlLmNwcApAQCAtNTksNyArNTksOSBAQAog
I2VuZGlmCiAKICNpZiBVU0UoRUdMKQorI2lmICFQTEFURk9STShXUEUpCiAjaW5jbHVkZSAiR0xD
b250ZXh0RUdMLmgiCisjZW5kaWYKICNpbmNsdWRlIDxnc3QvZ2wvZWdsL2dzdGdsZGlzcGxheV9l
Z2wuaD4KICNlbmRpZgogCkBAIC02OSw2ICs3MSw4IEBACiAKICNpZiBQTEFURk9STShXQVlMQU5E
KQogI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdheWxhbmQuaCIKKyNlbGlmIFBMQVRGT1JNKFdQ
RSkKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXUEUuaCIKICNlbmRpZgogCiAvLyBnc3RnbGFw
aS5oIG1heSBpbmNsdWRlIGVnbHBsYXRmb3JtLmggYW5kIGl0IGluY2x1ZGVzIFguaCwgd2hpY2gK
QEAgLTQzOSw2ICs0NDMsMTEgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXJCYXNl
OjplbnN1cmVHc3RHTENvbnRleHQoKQogICAgICAgICAgICAgbV9nbERpc3BsYXkgPSBHU1RfR0xf
RElTUExBWShnc3RfZ2xfZGlzcGxheV9lZ2xfbmV3X3dpdGhfZWdsX2Rpc3BsYXkoZG93bmNhc3Q8
UGxhdGZvcm1EaXNwbGF5V2F5bGFuZD4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgQVNTRVJUKGlzPFBsYXRmb3JtRGlz
cGxheVdQRT4oc2hhcmVkRGlzcGxheSkpOworICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9E
SVNQTEFZKGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQ
bGF0Zm9ybURpc3BsYXlXUEU+KHNoYXJlZERpc3BsYXkpLmVnbERpc3BsYXkoKSkpOworI2VuZGlm
CisKICAgICAgICAgQVNTRVJUKG1fZ2xEaXNwbGF5KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9w
ZW5HTENvbW1vbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wv
R3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCmluZGV4IGM3YTBlYzdmMjUyLi4xMjY1
ZTAwMWQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3Bl
bmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29tbW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24u
Y3BwCkBAIC0yMzYsNiArMjM2LDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQzRDo6cHJlcGFyZVRl
eHR1cmUoKQogICAgICAgICByZXNvbHZlTXVsdGlzYW1wbGluZ0lmTmVjZXNzYXJ5KCk7CiAKICNp
ZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisjaWYgVVNFKE9QRU5HTF9FU18y
KQorICAgIDo6Z2xGbHVzaCgpOworI2VuZGlmCiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9j
b21wb3NpdG9yVGV4dHVyZSk7CiAgICAgc3RkOjpzd2FwKG1fdGV4dHVyZSwgbV9pbnRlcm1lZGlh
dGVUZXh0dXJlKTsKICAgICA6OmdsQmluZEZyYW1lYnVmZmVyKEdMX0ZSQU1FQlVGRkVSLCBtX2Zi
byk7CkBAIC0zOTgsNyArNDAxLDcgQEAgYm9vbCBHcmFwaGljc0NvbnRleHQzRDo6Y2hlY2tWYXJ5
aW5nc1BhY2tpbmcoUGxhdGZvcm0zRE9iamVjdCB2ZXJ0ZXhTaGFkZXIsIFBsYXQKICAgICAgICAg
dmFyaWFibGVzLnB1c2hfYmFjayh2YXJ5aW5nU3ltYm9sKTsKIAogICAgIEdDM0RpbnQgbWF4VmFy
eWluZ1ZlY3RvcnMgPSAwOwotI2lmICFQTEFURk9STShJT1MpICYmICEoKFBMQVRGT1JNKFdJTikg
fHwgUExBVEZPUk0oR1RLKSkgJiYgVVNFKE9QRU5HTF9FU18yKSkKKyNpZiAhUExBVEZPUk0oSU9T
KSAmJiAhKChQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBHQzNEaW50IG1heFZhcnlpbmdGbG9hdHMgPSAwOwog
ICAgIDo6Z2xHZXRJbnRlZ2VydihHTF9NQVhfVkFSWUlOR19GTE9BVFMsICZtYXhWYXJ5aW5nRmxv
YXRzKTsKICAgICBtYXhWYXJ5aW5nVmVjdG9ycyA9IG1heFZhcnlpbmdGbG9hdHMgLyA0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kM2MzN2JkZjhhYQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNw
cApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJY29uLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworSWNvbjo6fkljb24oKQoreworfQorCit2b2lkIEljb246OnBh
aW50KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYpCit7Cit9CisKK1JlZlB0cjxJ
Y29uPiBJY29uOjpjcmVhdGVJY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZz4mKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ltYWdlV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWFhMzBhODU2NmMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3Bw
CkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkJpdG1hcEltYWdlLmgi
CisKKyNpbmNsdWRlIDxjc3RkaW8+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBCaXRt
YXBJbWFnZTo6aW52YWxpZGF0ZVBsYXRmb3JtRGF0YSgpCit7Cit9CisKK1Bhc3NSZWZQdHI8SW1h
Z2U+IEltYWdlOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSkKK3sK
KyAgICBzdGQ6OmZwcmludGYoc3RkZXJyLCAiV0FSTklORzogdHJ5aW5nIHRvIGxvYWQgcGxhdGZv
cm0gcmVzb3VyY2UgJyVzJ1xuIiwgcmVzb3VyY2UpOworICAgIHJldHVybiBCaXRtYXBJbWFnZTo6
Y3JlYXRlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRkNWJiMWQxZjQxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5jcHAKQEAgLTAsMCArMSwxMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1EaXNwbGF5V1BFLmgiCisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRl
ICJHTENvbnRleHRFR0wuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSA8RUdML2Vn
bC5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1iYWNrZW5kLWVnbC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6UGxhdGZvcm1EaXNwbGF5V1BFKCkgPSBk
ZWZhdWx0OworCitQbGF0Zm9ybURpc3BsYXlXUEU6On5QbGF0Zm9ybURpc3BsYXlXUEUoKQorewor
ICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3Zv
aWQgUGxhdGZvcm1EaXNwbGF5V1BFOjppbml0aWFsaXplKGludCBob3N0RmQpCit7CisgICAgbV9i
YWNrZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX2NyZWF0ZShob3N0RmQpOworCisgICAg
bV9lZ2xEaXNwbGF5ID0gZWdsR2V0RGlzcGxheSh3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfZ2V0
X25hdGl2ZV9kaXNwbGF5KG1fYmFja2VuZCkpOworICAgIGlmIChtX2VnbERpc3BsYXkgPT0gRUdM
X05PX0RJU1BMQVkpIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJQbGF0Zm9ybURpc3BsYXlX
UEU6IGNvdWxkIG5vdCBjcmVhdGUgdGhlIEVHTCBkaXNwbGF5LlxuIik7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBQbGF0Zm9ybURpc3BsYXk6OmluaXRpYWxpemVFR0xEaXNwbGF5KCk7
Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gUGxh
dGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVFR0xUYXJnZXQoRUdMVGFyZ2V0OjpDbGllbnQmIGNsaWVu
dCwgaW50IGhvc3RGZCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxFR0xUYXJnZXQ+
KCp0aGlzLCBjbGllbnQsIGhvc3RGZCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURp
c3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldD4gUGxhdGZvcm1EaXNwbGF5V1BFOjpjcmVhdGVF
R0xPZmZzY3JlZW5UYXJnZXQoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTE9m
ZnNjcmVlblRhcmdldD4oKnRoaXMpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdl
dDo6RUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSwgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQgaG9zdEZkKQorICAgIDog
bV9kaXNwbGF5KGRpc3BsYXkpCisgICAgLCBtX2NsaWVudChjbGllbnQpCit7CisgICAgbV9iYWNr
ZW5kID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jcmVhdGUoaG9zdEZkKTsKKwor
ICAgIHN0YXRpYyBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9jbGllbnQg
c19jbGllbnQgPSB7CisgICAgICAgIC8vIGZyYW1lX2NvbXBsZXRlCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHN1cmZhY2UgPSAqcmVpbnRlcnBy
ZXRfY2FzdDxFR0xUYXJnZXQqPihkYXRhKTsKKyAgICAgICAgICAgIHN1cmZhY2UubV9jbGllbnQu
ZnJhbWVDb21wbGV0ZSgpOworICAgICAgICB9LAorICAgIH07CisgICAgd3BlX3JlbmRlcmVyX2Jh
Y2tlbmRfZWdsX3RhcmdldF9zZXRfY2xpZW50KG1fYmFja2VuZCwgJnNfY2xpZW50LCB0aGlzKTsK
K30KKworUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6On5FR0xUYXJnZXQoKQoreworICAg
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZGVzdHJveShtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0Ojppbml0aWFsaXplKGNvbnN0IElu
dFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9pbml0
aWFsaXplKG1fYmFja2VuZCwgbV9kaXNwbGF5Lm1fYmFja2VuZCwKKyAgICAgICAgc3RkOjptYXgo
MCwgc2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCitFR0xO
YXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpuYXRpdmVXaW5k
b3coKSBjb25zdAoreworICAgIHJldHVybiB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0
X2dldF9uYXRpdmVfd2luZG93KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgUGxhdGZvcm1EaXNwbGF5
V1BFOjpFR0xUYXJnZXQ6OnJlc2l6ZShjb25zdCBJbnRTaXplJiBzaXplKQoreworICAgIHdwZV9y
ZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfcmVzaXplKG1fYmFja2VuZCwgc3RkOjptYXgoMCwg
c2l6ZS53aWR0aCgpKSwgc3RkOjptYXgoMCwgc2l6ZS5oZWlnaHQoKSkpOworfQorCit2b2lkIFBs
YXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVdpbGxSZW5kZXIoKQoreworICAgIHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZnJhbWVfd2lsbF9yZW5kZXIobV9iYWNrZW5k
KTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6ZnJhbWVSZW5kZXJl
ZCgpCit7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV9yZW5kZXJl
ZChtX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTE9mZnNjcmVlblRhcmdl
dDo6RUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYgZGlzcGxheSkK
K3sKKyAgICBtX3RhcmdldCA9IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2NyZWF0ZSgpOworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0X2luaXRpYWxpemUobV90YXJnZXQsIGRpc3BsYXkubV9iYWNrZW5kKTsKK30KKworUGxhdGZv
cm1EaXNwbGF5V1BFOjpFR0xPZmZzY3JlZW5UYXJnZXQ6On5FR0xPZmZzY3JlZW5UYXJnZXQoKQor
eworICAgIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2Rlc3Ryb3ko
bV90YXJnZXQpOworfQorCitFR0xOYXRpdmVXaW5kb3dUeXBlIFBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMT2Zmc2NyZWVuVGFyZ2V0OjpuYXRpdmVXaW5kb3coKSBjb25zdAoreworICAgIHJldHVybiB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldF9nZXRfbmF0aXZlX3dpbmRv
dyhtX3RhcmdldCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFBM
QVRGT1JNKFdQRSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uM2Y4Y2ZkOTk4ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmgKQEAgLTAsMCArMSwx
MDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFBsYXRmb3JtRGlzcGxheVdQRV9oCisjZGVmaW5lIFBsYXRmb3JtRGlzcGxheVdQRV9oCisK
KyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKworI2Rl
ZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0IHdw
ZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xf
dGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0
OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIEludFNp
emU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9ybURp
c3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1YWwg
flBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisKKyAg
ICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50IHsK
KyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxldGUo
KSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlz
cGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAgICAg
ICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVXaW5k
b3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNvbnN0
IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAgICB2
b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBsYXRm
b3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50OworICAg
ICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5kOwor
ICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoKKyAg
ICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOworICAg
ICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93VHlw
ZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVjdCB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7CisgICAg
fTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChFR0xU
YXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVlblRh
cmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlwZSB0
eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXUEU7
IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19QTEFU
Rk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCisjZW5kaWYgLy8gUGxhdGZvcm1EaXNwbGF5V1BFX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9DdXJzb3JXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLmQ0ZGM5NTVmOTMwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL0N1cnNvcldQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ3Vyc29yLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBDdXJz
b3I6OmVuc3VyZVBsYXRmb3JtQ3Vyc29yKCkgY29uc3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXpl
ZFN0cmluZ3NXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0
cmluZ3NXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44NzVk
N2ZjNTJiOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9M
b2NhbGl6ZWRTdHJpbmdzV1BFLmNwcApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dV
bmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnU2VhcmNoV2ViKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgiX1NlYXJj
aCB0aGUgV2ViIik7Cit9CisKK1N0cmluZyB1bmFjY2VwdGFibGVUTFNDZXJ0aWZpY2F0ZSgpCit7
CisgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoIlVuYWNjZXB0YWJsZSBUTFMgY2VydGlmaWNh
dGUiKTsKK30KKworU3RyaW5nIGxvY2FsaXplZFN0cmluZyhjb25zdCBjaGFyKiBrZXkpCit7Cisg
ICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgoa2V5LCBzdHJsZW4oa2V5KSk7Cit9CisKKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bhc3RlYm9hcmRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yYzc4MDA4M2ZkMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcApAQCAt
MCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgi
CisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmRTdHJh
dGVneS5oIgorI2luY2x1ZGUgIlBsYXRmb3JtU3RyYXRlZ2llcy5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVhdGVG
b3JDb3B5QW5kUGFzdGUoKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFBhc3RlYm9h
cmQ+KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxQYXN0ZWJvYXJkPiBQYXN0ZWJvYXJkOjpjcmVh
dGVQcml2YXRlKCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQYXN0ZWJvYXJkPigp
OworfQorCitQYXN0ZWJvYXJkOjpQYXN0ZWJvYXJkKCkKK3sKK30KKworYm9vbCBQYXN0ZWJvYXJk
OjpoYXNEYXRhKCkKK3sKKyAgICAvLyBGSVhNRTogR2V0dGluZyB0aGUgbGlzdCBvZiB0eXBlcyBm
b3IgdGhpcyBpcyB3YXN0ZWZ1bC4gRG8gdGhpcyBpbiB0aGUgVUkgcHJvY2Vzcy4KKyAgICBWZWN0
b3I8U3RyaW5nPiB0eXBlczsKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCktPmdldFR5cGVzKHR5cGVzKTsKKyAgICByZXR1cm4gIXR5cGVzLmlzRW1wdHkoKTsK
K30KKworVmVjdG9yPFN0cmluZz4gUGFzdGVib2FyZDo6dHlwZXMoKQoreworICAgIFZlY3RvcjxT
dHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+Z2V0VHlwZXModHlwZXMpOworICAgIHJldHVybiB0eXBlczsKK30KKworU3RyaW5nIFBh
c3RlYm9hcmQ6OnJlYWRTdHJpbmcoY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiBw
bGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9t
UGFzdGVib2FyZCgwLCB0eXBlKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVN0cmluZyhj
b25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBwbGF0Zm9ybVN0
cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKHR5cGUs
IHRleHQpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKCkKK3sKK30KKwordm9pZCBQYXN0
ZWJvYXJkOjpjbGVhcihjb25zdCBTdHJpbmcmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZFBsYWluVGV4dCYgdGV4dCkKK3sKKyAgICB0ZXh0LnRleHQgPSBwbGF0Zm9y
bVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPnJlYWRTdHJpbmdGcm9tUGFzdGVi
b2FyZCgwLCAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04Iik7Cit9CisKK3ZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkV2ViQ29udGVudFJlYWRlciYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkVVJMJiB1
cmwpCit7CisgICAgcGxhdGZvcm1TdHJhdGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT53
cml0ZVRvUGFzdGVib2FyZCgidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IiwgdXJsLnVybC5zdHJp
bmcoKSk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVUcnVzdHdvcnRoeVdlYlVSTHNQYm9h
cmRUeXBlKGNvbnN0IFBhc3RlYm9hcmRVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEltYWdlJikKK3sKK30K
Kwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29u
dGVudCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0cmF0ZWd5KCkt
PndyaXRlVG9QYXN0ZWJvYXJkKGNvbnRlbnQpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJv
YXJkOjpyZWFkRmlsZW5hbWVzKCkKK3sKKyAgICByZXR1cm4gVmVjdG9yPFN0cmluZz4oKTsKK30K
KworYm9vbCBQYXN0ZWJvYXJkOjpjYW5TbWFydFJlcGxhY2UoKQoreworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZU1hcmt1cChjb25zdCBTdHJpbmcmKQorewor
fQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlUGxhaW5UZXh0KGNvbnN0IFN0cmluZyYgdGV4dCwg
U21hcnRSZXBsYWNlT3B0aW9uKQoreworICAgIHdyaXRlU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJz
ZXQ9dXRmLTgiLCB0ZXh0KTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZVBhc3RlYm9hcmQo
Y29uc3QgUGFzdGVib2FyZCYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRX
UEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZhNGYzOGUx
MWYwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1l
bnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgUGxhdGZvcm1LZXlib2FyZEV2
ZW50OjpkaXNhbWJpZ3VhdGVLZXlEb3duRXZlbnQoVHlwZSB0eXBlLCBib29sIGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCit7CisgICAgQVNTRVJUKG1fdHlwZSA9PSBLZXlEb3duKTsKKyAgICBtX3R5
cGUgPSB0eXBlOworICAgIGlmIChiYWNrd2FyZHNDb21wYXRpYmlsaXR5KQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHlwZSA9PSBQbGF0Zm9ybUV2ZW50OjpSYXdLZXlEb3duKSB7CisgICAg
ICAgIG1fdGV4dCA9IFN0cmluZygpOworICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gU3RyaW5n
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgbV9rZXlJZGVudGlmaWVyID0gU3RyaW5nKCk7Cisg
ICAgICAgIG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID0gMDsKKyAgICB9Cit9CisKK2Jvb2wgUGxh
dGZvcm1LZXlib2FyZEV2ZW50OjpjdXJyZW50Q2Fwc0xvY2tTdGF0ZSgpCit7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCit2b2lkIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6Z2V0Q3VycmVudE1vZGlm
aWVyU3RhdGUoYm9vbCYsIGJvb2wmLCBib29sJiwgYm9vbCYpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0
Zm9ybVBhc3RlYm9hcmRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRm
b3JtUGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjlmNDM0NmEwMjBiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKQEAgLTAsMCArMSwxMTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiUGFzdGVib2FyZC5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUGFz
dGVib2FyZC5oIgorI2luY2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKworI2luY2x1ZGUg
PG1hcD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQbGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRm
b3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0
ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30K
KworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBhc3RlYm9hcmQoKQorICAgIDogbV9wYXN0
ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBBU1NFUlQobV9w
YXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OmdldFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3Zl
Y3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIsIDAgfTsKKyAgICB3cGVfcGFzdGVib2Fy
ZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVib2FyZFR5cGVzKTsKKworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlwZXMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRUeXBlcy5zdHJpbmdzW2ldOworICAgICAg
ICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcuZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgp
KTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3Rl
Ym9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmco
aW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0
cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRfZ2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQs
IHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisKKyAgICBTdHJpbmcgcmV0dXJuVmFsdWUo
c3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVyblZhbHVlOworfQorCit2b2lkIFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQp
Cit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5UZXh0W10gPSAidGV4dC9wbGFpbjtjaGFy
c2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciBodG1sVGV4dFtdID0gInRleHQvaHRt
bDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcgdGV4dFN0cmluZyA9IGNvbnRlbnQudGV4
dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJpbmcgPSBjb250ZW50Lm1hcmt1cC51dGY4
KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsK
KyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICAgICAgeyB7
IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJv
YXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCBwbGFpblRleHQsIHN0cmxlbihw
bGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNb
MF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4dFN0cmluZy5sZW5ndGgoKSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUoJnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0
LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6
ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcuZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVu
Z3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFp
cnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dyaXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7
CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0udHlwZSk7CisgICAg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzBdLnN0cmluZyk7CisgICAgd3BlX3Bh
c3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5cGUpOworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVi
b2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIHN0cmluZykKK3sK
KyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAg
ICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwKKyAgICB9OworICAgIHdwZV9w
YXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50eXBlLCB0eXBlLnV0ZjgoKS5k
YXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
aW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJpbmcudXRmOCgpLmRhdGEoKSwgc3RyaW5n
LnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAg
bWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bhc3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJv
YXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1swXS50
eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsK
K30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNwcApAQCAtMCwwICsxLDc0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNjcmVlbi5oIgorCisjaW5jbHVkZSAiRmxv
YXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVlbkRlcHRoUGVyQ29tcG9uZW50KFdpZGdl
dCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gODsKK30KKworYm9vbCBz
Y3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5IYXNJbnZlcnRlZENvbG9ycygpCit7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qgc2NyZWVuUmVjdChXaWRnZXQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2
NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxhYmxlUmVjdChXaWRnZXQqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDAp
OworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5kZWRDb2xvcihXaWRnZXQqKQoreworICAg
IHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE5MDc1NzM0ZTg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5kZXJUaGVtZVdQRS5oIgorCisjaW5jbHVk
ZSAiVXNlckFnZW50U2NyaXB0cy5oIgorI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgi
CisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdC
dWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworUmVmPFJlbmRlclRoZW1lPiBSZW5k
ZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQoreworICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYg
dGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCkubGVha1JlZigpOworICAgIHJldHVybiB0
aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERl
c2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFE
ZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCisjaWYgRU5B
QkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BFOjptZWRpYUNvbnRyb2xzU3R5bGVTaGVl
dCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbChtZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2Vu
dFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVyVGhlbWVXUEU6Om1lZGlhQ29udHJvbHNT
Y3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2NyaXB0QnVpbGRlcjsKKyAgICBzY3JpcHRC
dWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQsIHNp
emVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5nc0phdmFTY3JpcHQpKTsKKyAgICBzY3Jp
cHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQsIHNpemVvZihtZWRp
YUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICByZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0
cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVyVGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4xMjJhMDg5NzgwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBS
ZW5kZXJUaGVtZVdQRV9oCisjZGVmaW5lIFJlbmRlclRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBSZW5kZXJUaGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBSZW5kZXJUaGVt
ZSB7CitwdWJsaWM6CisgICAgc3RhdGljIFJlZjxSZW5kZXJUaGVtZT4gY3JlYXRlKCkKKyAgICB7
CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFJlbmRlclRoZW1lV1BFKTsKKyAgICB9CisK
KyAgICB2aXJ0dWFsIFN0cmluZyBleHRyYURlZmF1bHRTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7Cisj
aWYgRU5BQkxFKFZJREVPKQorICAgIHZpcnR1YWwgU3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNo
ZWV0KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBTdHJpbmcgbWVkaWFDb250cm9sc1NjcmlwdCgp
IG92ZXJyaWRlOworI2VuZGlmCisKK3ByaXZhdGU6CisgICAgUmVuZGVyVGhlbWVXUEUoKSA9IGRl
ZmF1bHQ7CisgICAgdmlydHVhbCB+UmVuZGVyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2
aXJ0dWFsIHZvaWQgdXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQs
IEZvbnRDYXNjYWRlRGVzY3JpcHRpb24mKSBjb25zdCBvdmVycmlkZTsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFJlbmRlclRoZW1lV1BFX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZjlmZTVkNGQ4NAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKQEAg
LTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVXUEUu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzQnV0dG9ucyhTY3JvbGxiYXImKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgU2Nyb2xsYmFy
VGhlbWVXUEU6Omhhc1RodW1iKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6YmFja0J1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OmZvcndhcmRCdXR0b25SZWN0KFNjcm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJv
b2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gSW50UmVjdCgpOworfQor
CitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjp0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK1Nj
cm9sbGJhclRoZW1lJiBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKQoreworICAgIHN0YXRp
YyBTY3JvbGxiYXJUaGVtZVdQRSB0aGVtZTsKKyAgICByZXR1cm4gdGhlbWU7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dw
ZS9TY3JvbGxiYXJUaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9s
bGJhclRoZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRk
OGIwMzE2ODYxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3Bl
L1Njcm9sbGJhclRoZW1lV1BFLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFNjcm9sbGJhclRoZW1lV1BF
X2gKKyNkZWZpbmUgU2Nyb2xsYmFyVGhlbWVXUEVfaAorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhl
bWVDb21wb3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJU
aGVtZVdQRSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6
CisgICAgU2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xs
YmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICB2aXJ0dWFsIGJvb2wgaGFzQnV0dG9ucyhT
Y3JvbGxiYXImKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJvb2wgaGFzVGh1bWIoU2Nyb2xsYmFy
Jikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIEludFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xs
YmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFy
UGFydCwgYm9vbCBwYWludGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIEludFJl
Y3QgdHJhY2tSZWN0KFNjcm9sbGJhciYsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBTY3JvbGxiYXJUaGVt
ZVdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1NvdW5kV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTkxNDc3YTQ1OTgKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCkBAIC0wLDAgKzEs
MzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNvdW5kLmgiCisKKyNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgc3lzdGVtQmVlcCgp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ1YWQ5NzczZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcApAQCAtMCwwICsxLDE0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGhlbWVXUEUuaCIKKworI2luY2x1ZGUgIkNvbG9yLmgi
CisjaW5jbHVkZSAiRmxvYXRSb3VuZGVkUmVjdC5oIgorI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1RoZW1lKiBwbGF0Zm9ybVRoZW1lKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8VGhlbWVXUEU+IHRoZW1lOworICAgIHJldHVybiAmdGhlbWUuZ2V0KCk7Cit9CisKK0xlbmd0
aFNpemUgVGhlbWVXUEU6OmNvbnRyb2xTaXplKENvbnRyb2xQYXJ0IHBhcnQsIGNvbnN0IEZvbnRD
YXNjYWRlJiBmb250Q2FzY2FkZSwgY29uc3QgTGVuZ3RoU2l6ZSYgem9vbWVkU2l6ZSwgZmxvYXQg
em9vbUZhY3RvcikgY29uc3QKK3sKKyAgICBpZiAoIXpvb21lZFNpemUud2lkdGguaXNJbnRyaW5z
aWNPckF1dG8oKSAmJiAhem9vbWVkU2l6ZS5oZWlnaHQuaXNJbnRyaW5zaWNPckF1dG8oKSkKKyAg
ICAgICAgcmV0dXJuIFRoZW1lOjpjb250cm9sU2l6ZShwYXJ0LCBmb250Q2FzY2FkZSwgem9vbWVk
U2l6ZSwgem9vbUZhY3Rvcik7CisKKyAgICBzd2l0Y2ggKHBhcnQpIHsKKyAgICBjYXNlIENoZWNr
Ym94UGFydDoKKyAgICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcmV0dXJuIExlbmd0aFNpemUg
eyBMZW5ndGgoMTIsIEZpeGVkKSwgTGVuZ3RoKDEyLCBGaXhlZCkgfTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4gVGhlbWU6OmNvbnRyb2xTaXplKHBh
cnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKK30KKwordm9pZCBUaGVt
ZVdQRTo6cGFpbnQoQ29udHJvbFBhcnQgcGFydCwgQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQg
em9vbUZhY3RvciwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkKK3sKKyAgICBzd2l0Y2ggKHBh
cnQpIHsKKyAgICBjYXNlIENoZWNrYm94UGFydDoKKyAgICAgICAgcGFpbnRDaGVja2JveChzdGF0
ZXMsIGNvbnRleHQsIHpvb21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFJhZGlvUGFydDoKKyAgICAgICAgcGFpbnRSYWRpbyhzdGF0ZXMsIGNvbnRleHQsIHpv
b21lZFJlY3QsIHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFB1c2hCdXR0
b25QYXJ0OgorICAgICAgICBwYWludEJ1dHRvbihzdGF0ZXMsIGNvbnRleHQsIHpvb21lZFJlY3Qs
IHpvb21GYWN0b3IpOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVh
azsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50Q2hlY2tib3goQ29udHJvbFN0YXRl
cyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9v
bWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNh
dmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXplIGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJv
dW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJlY3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIs
IGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAgIHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRl
ZFJlY3QpOworCisgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQigyMjQsIDIyNCwgMjI0
KSk7CisgICAgY29udGV4dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tl
VGhpY2tuZXNzKDEpOworICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQs
IDk0KSk7CisgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOworCisgICAgaWYgKHN0YXRlcy5z
dGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6OkNoZWNrZWRTdGF0ZSkgeworICAgICAgICBhdXRvJiBy
ZWN0ID0gcm91bmRlZFJlY3QucmVjdCgpOworCisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7Cisg
ICAgICAgIGNoZWNrZXJQYXRoLm1vdmVUbyhGbG9hdFBvaW50KHJlY3QueCgpICsgMywgcmVjdC5t
YXhZKCkgLSAzKSk7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZExpbmVUbyhGbG9hdFBvaW50KHJl
Y3QubWF4WCgpIC0gMywgcmVjdC55KCkgKyAzKSk7CisKKyAgICAgICAgY29udGV4dC5zZXRTdHJv
a2VUaGlja25lc3MoMik7CisgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig4
NCwgODQsIDg0KSk7CisgICAgICAgIGNvbnRleHQuc3Ryb2tlUGF0aChjaGVja2VyUGF0aCk7Cisg
ICAgfQorfQorCit2b2lkIFRoZW1lV1BFOjpwYWludFJhZGlvKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZEVsbGlwc2Uoem9vbWVkUmVjdCk7
CisKKyAgICBjb250ZXh0LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAg
ICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25l
c3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsK
KyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygp
ICYgQ29udHJvbFN0YXRlczo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIEZsb2F0UmVjdCBjaGVj
a2VyUmVjdCA9IHpvb21lZFJlY3Q7CisgICAgICAgIGNoZWNrZXJSZWN0LmluZmxhdGUoLTMpOwor
CisgICAgICAgIFBhdGggY2hlY2tlclBhdGg7CisgICAgICAgIGNoZWNrZXJQYXRoLmFkZEVsbGlw
c2UoY2hlY2tlclJlY3QpOworCisgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKG1ha2VSR0Io
ODQsIDg0LCA4NCkpOworICAgICAgICBjb250ZXh0LmZpbGxQYXRoKGNoZWNrZXJQYXRoKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGhlbWVXUEU6OnBhaW50QnV0dG9uKENvbnRyb2xTdGF0ZXMmIHN0YXRl
cywgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIHpvb21lZFJlY3Qs
IGZsb2F0KQoreworICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKKworICAgIEZsb2F0U2l6ZSBjb3JuZXIoMiwgMik7CisgICAgRmxvYXRSb3VuZGVkUmVj
dCByb3VuZGVkUmVjdCh6b29tZWRSZWN0LCBjb3JuZXIsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIp
OworICAgIFBhdGggcGF0aDsKKyAgICBwYXRoLmFkZFJvdW5kZWRSZWN0KHJvdW5kZWRSZWN0KTsK
KworICAgIENvbG9yIGZpbGxDb2xvciA9IHN0YXRlcy5zdGF0ZXMoKSAmIENvbnRyb2xTdGF0ZXM6
OlByZXNzZWRTdGF0ZSA/IG1ha2VSR0IoMjQ0LCAyNDQsIDI0NCkgOiBtYWtlUkdCKDIyNCwgMjI0
LCAyMjQpOworICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGZpbGxDb2xvcik7CisgICAgY29udGV4
dC5maWxsUGF0aChwYXRoKTsKKworICAgIGNvbnRleHQuc2V0U3Ryb2tlVGhpY2tuZXNzKDEpOwor
ICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3IobWFrZVJHQig5NCwgOTQsIDk0KSk7CisgICAgY29u
dGV4dC5zdHJva2VQYXRoKHBhdGgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kZjA4MWIzYTdhZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oCkBAIC0wLDAgKzEsNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBUaGVtZVdQRV9o
CisjZGVmaW5lIFRoZW1lV1BFX2gKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVibGljOgorICAg
IFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKworICAgIHZpcnR1
YWwgTGVuZ3RoU2l6ZSBjb250cm9sU2l6ZShDb250cm9sUGFydCwgY29uc3QgRm9udENhc2NhZGUm
LCBjb25zdCBMZW5ndGhTaXplJiwgZmxvYXQpIGNvbnN0IG92ZXJyaWRlOworCisgICAgdmlydHVh
bCB2b2lkIHBhaW50KENvbnRyb2xQYXJ0LCBDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0
JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQsIFNjcm9sbFZpZXcqLCBmbG9hdCwgZmxvYXQpIG92
ZXJyaWRlOworCitwcml2YXRlOgorICAgIHZvaWQgcGFpbnRDaGVja2JveChDb250cm9sU3RhdGVz
JiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworICAgIHZvaWQg
cGFpbnRSYWRpbyhDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiwgZmxvYXQpOworICAgIHZvaWQgcGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYsIEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGZsb2F0KTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFRoZW1lV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3dwZS9XaWRnZXRXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjYyZGYwY2M2YjM2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vd3BlL1dpZGdldFdQRS5jcHAKQEAgLTAsMCArMSw4NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2lkZ2V0LmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK1dpZGdldDo6V2lkZ2V0KFBsYXRmb3JtV2lkZ2V0IHdpZGdldCkKK3sK
KyAgICBpbml0KHdpZGdldCk7Cit9CisKK1dpZGdldDo6fldpZGdldCgpCit7CisgICAgQVNTRVJU
KCFwYXJlbnQoKSk7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNl
dEZyYW1lUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIG1fZnJhbWUgPSByZWN0Owor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK0ludFJlY3QgV2lkZ2V0OjpmcmFtZVJlY3QoKSBj
b25zdAoreworICAgIHJldHVybiBtX2ZyYW1lOworfQorCit2b2lkIFdpZGdldDo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgSW50UmVjdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXaWRnZXQ6OnNldEZvY3VzKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKK30KKwordm9pZCBXaWRnZXQ6OnNldEN1cnNvcihjb25zdCBDdXJzb3ImKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0OjpzaG93KCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6aGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBXaWRnZXQ6OnNldElzU2VsZWN0ZWQoYm9vbCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXgg
ZmJlNGFhY2U5OGQuLjhkNDI4YTA2ZDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTAwIEBACisy
MDE3LTA0LTIxICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4KKworICAgICAg
ICBVcHN0cmVhbSB0aGUgV1BFIHBvcnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE3MTExMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIHdlYmtpdC1kZXYgdGhyZWFkOgorICAgICAgICBodHRwczovL2xpc3Rz
LndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxNy1BcHJpbC8wMjg5MjMuaHRtbAor
CisgICAgICAgIEV4aXN0aW5nIGZpbGVzIGNoYW5nZWQgdG8gcHJvcGVybHkgdXNlIFBMQVRGT1JN
KFdQRSkgYnVpbGQgZ3VhcmRzIG9yIG90aGVyCisgICAgICAgIFdQRS1zcGVjaWZpYyBhZGRpdGlv
bnMgKGUuZy4gcGFzdGVib2FyZCBzdXBwb3J0KS4KKyAgICAgICAgSW4tZmlsZSBjaGFuZ2VzIHJl
bW92ZWQgZnJvbSB0aGlzIENoYW5nZUxvZyBlbnRyeSBmb3IgYnJldml0eS4KKworICAgICAgICAq
IFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcDoKKyAgICAgICAgKiBQbGF0Zm9y
bVdQRS5jbWFrZTogQWRkZWQuCisgICAgICAgICogU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJkaW5n
LWhlYWRlcnMucGw6CisgICAgICAgICogU2hhcmVkL0FQSS9jL1dLQmFzZS5oOgorICAgICAgICAq
IFNoYXJlZC9BUEkvYy93cGUvV1BFV2ViS2l0Lmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9B
UEkvYy93cGUvV0tCYXNlV1BFLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcDoKKyAgICAgICAgKiBTaGFy
ZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5M
b29wLmg6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHA6CisgICAgICAgICogU2hhcmVkL0Nvb3JkaW5h
dGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5oOgorICAg
ICAgICAqIFNoYXJlZC9EcmF3aW5nQXJlYUluZm8uaDoKKyAgICAgICAgKiBTaGFyZWQvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50
Lmg6CisgICAgICAgICogU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaDoKKyAgICAgICAgKiBT
aGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuY3BwOgorICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oOgorICAgICAg
ICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHA6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBTaGFy
ZWQvd3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogU2hhcmVkL3dwZS9OYXRp
dmVXZWJUb3VjaEV2ZW50V1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFNoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxF
dmVudFdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJl
YUluZm8uaC4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcDogQWRk
ZWQuCisgICAgICAgICogU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaDogQ29waWVkIGZyb20g
U291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS0FQSUNhc3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mvd3BlL1dL
QVBJQ2FzdFdQRS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0Fy
ZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3BwOiBDb3Bp
ZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvQ29t
cG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmg6IENvcGllZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9D
b21wb3NpdGluZ1J1bkxvb3AuaC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xp
ZW50SW1wbC5jcHA6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGll
bnRJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9sbEdlc3R1
cmVDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvU2Ny
b2xsR2VzdHVyZUNvbnRyb2xsZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVk
L0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcu
Y3BwOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Lmg6IEFkZGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwOiBDb3BpZWQg
ZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL0FQSS93
cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWw6IEFkZGVkLgorICAgICAgICAq
IFVJUHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0lu
c3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
SW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9h
cmRQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcDogQWRkZWQu
CisgICAgICAgICogVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQ
cm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogVUlQcm9jZXNzL3dw
ZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxv
b3AuaC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29sV1BFLmNwcDogQWRk
ZWQuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYktpdDJQcmVmaXguaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcDog
Q29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5j
cHA6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBv
cHVwTWVudVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5n
QXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHA6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5j
cHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oOiBD
b3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHA6IEFkZGVkLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaDogQWRkZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYlBhZ2VXUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmguCisgICAgICAgICogV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c01haW5XUEUuY3BwOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4Lmgu
CisgICAgICAgICogY29uZmlnLmg6CisgICAgICAgICogd3BlL3dwZS13ZWJraXQucGMuaW46IEFk
ZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURFUlNfRElSIGluIFdl
YktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
UGxhdGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvUGxh
dGZvcm0vSVBDL2dsaWIvR1NvY2tldE1vbml0b3IuY3BwCmluZGV4IDE0MzI5YjkzODkxLi44ZDEw
MWNmNGYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vSVBDL2dsaWIvR1Nv
Y2tldE1vbml0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dT
b2NrZXRNb25pdG9yLmNwcApAQCAtNTEsNiArNTEsOSBAQCB2b2lkIEdTb2NrZXRNb25pdG9yOjpz
dGFydChHU29ja2V0KiBzb2NrZXQsIEdJT0NvbmRpdGlvbiBjb25kaXRpb24sIFJ1bkxvb3AmIHJ1
bgogICAgIGdfc291cmNlX3NldF9uYW1lKG1fc291cmNlLmdldCgpLCAiW1dlYktpdF0gU29ja2V0
IG1vbml0b3IiKTsKICAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayk7CiAgICAgZ19z
b3VyY2Vfc2V0X2NhbGxiYWNrKG1fc291cmNlLmdldCgpLCByZWludGVycHJldF9jYXN0PEdTb3Vy
Y2VGdW5jPihzb2NrZXRTb3VyY2VDYWxsYmFjayksIHRoaXMsIG51bGxwdHIpOworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICBnX3NvdXJjZV9zZXRfcHJpb3JpdHkobV9zb3VyY2UuZ2V0KCksIEdfUFJJ
T1JJVFlfSElHSCArIDMwKTsKKyNlbmRpZgogICAgIGdfc291cmNlX2F0dGFjaChtX3NvdXJjZS5n
ZXQoKSwgcnVuTG9vcC5tYWluQ29udGV4dCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvUGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFr
ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uODg0ZjBlNGVlODUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCww
ICsxLDQ3MCBAQAorZmlsZShNQUtFX0RJUkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJLSVQy
X0RJUn0pCisKK2NvbmZpZ3VyZV9maWxlKHdwZS93cGUtd2Via2l0LnBjLmluICR7Q01BS0VfQklO
QVJZX0RJUn0vd3BlLXdlYmtpdC5wYyBAT05MWSkKKworYWRkX2RlZmluaXRpb25zKC1EV0VCS0lU
Ml9DT01QSUxBVElPTikKKworYWRkX2RlZmluaXRpb25zKC1ETElCRVhFQ0RJUj0iJHtMSUJFWEVD
X0lOU1RBTExfRElSfSIpCisKK3NldChXZWJLaXQyX1VTRV9QUkVGSVhfSEVBREVSIE9OKQorCith
ZGRfY3VzdG9tX3RhcmdldCh3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUMl9ESVJ9IC0tb3V0cHV0
ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3Vw
CispCisKK3NldChXRUJLSVQyX0VYVFJBX0RFUEVOREVOQ0lFUworICAgIHdlYmtpdDJ3cGUtZm9y
d2FyZGluZy1oZWFkZXJzCispCisKK2xpc3QoQVBQRU5EIFdlYlByb2Nlc3NfU09VUkNFUworICAg
IFdlYlByb2Nlc3MvRW50cnlQb2ludC91bml4L1dlYlByb2Nlc3NNYWluLmNwcAorKQorCitsaXN0
KEFQUEVORCBOZXR3b3JrUHJvY2Vzc19TT1VSQ0VTCisgICAgTmV0d29ya1Byb2Nlc3MvRW50cnlQ
b2ludC91bml4L05ldHdvcmtQcm9jZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgRGF0YWJh
c2VQcm9jZXNzX1NPVVJDRVMKKyAgICBEYXRhYmFzZVByb2Nlc3MvRW50cnlQb2ludC91bml4L0Rh
dGFiYXNlUHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwor
ICAgIE5ldHdvcmtQcm9jZXNzL0N1c3RvbVByb3RvY29scy9zb3VwL0xlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlclNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2Fj
aGVDb2RlcnNTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZURh
dGFTb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNzL2NhY2hlL05ldHdvcmtDYWNoZUlPQ2hhbm5l
bFNvdXAuY3BwCisKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwCisgICAgTmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrUHJvY2Vzc01haW5Tb3VwLmNwcAor
ICAgIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NTb3VwLmNwcAorICAgIE5ldHdv
cmtQcm9jZXNzL3NvdXAvTmV0d29ya1Nlc3Npb25Tb3VwLmNwcAorICAgIE5ldHdvcmtQcm9jZXNz
L3NvdXAvUmVtb3RlTmV0d29ya2luZ0NvbnRleHRTb3VwLmNwcAorCisgICAgUGxhdGZvcm0vY2xh
c3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzQ2xhc3NpZmllci5jcHAKKworICAgIFBsYXRm
b3JtL2dsaWIvTW9kdWxlR2xpYi5jcHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRN
b25pdG9yLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisg
ICAgUGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS91
bml4L0xvZ2dpbmdVbml4LmNwcAorICAgIFBsYXRmb3JtL3VuaXgvU2hhcmVkTWVtb3J5VW5peC5j
cHAKKworICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Db250cm9sbGVyUHJveHlVbml4LmNw
cAorICAgIFBsdWdpblByb2Nlc3MvdW5peC9QbHVnaW5Qcm9jZXNzTWFpblVuaXguY3BwCisgICAg
UGx1Z2luUHJvY2Vzcy91bml4L1BsdWdpblByb2Nlc3NVbml4LmNwcAorCisgICAgU2hhcmVkL0FQ
SS9jL2NhaXJvL1dLSW1hZ2VDYWlyby5jcHAKKworICAgIFNoYXJlZC9BdXRoZW50aWNhdGlvbi9z
b3VwL0F1dGhlbnRpY2F0aW9uTWFuYWdlclNvdXAuY3BwCisKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy9Db29yZGluYXRlZEJhY2tpbmdTdG9yZS5jcHAKKyAgICBTaGFyZWQvQ29vcmRp
bmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzU2NlbmUuY3BwCisgICAgU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvU2ltcGxlVmlld3BvcnRDb250cm9sbGVyLmNwcAorCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0
b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZERpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHAKKyAg
ICBTaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkU2Fm
ZUNvb3JkaW5hdGVkU3VyZmFjZS5jcHAKKworICAgIFNoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gx
MS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHAKKworICAgIFNoYXJlZC9jYWlyby9TaGFyZWFi
bGVCaXRtYXBDYWlyby5jcHAKKworICAgIFNoYXJlZC9nbGliL1dlYkVycm9yc0dsaWIuY3BwCisK
KyAgICBTaGFyZWQvbGludXgvV2ViTWVtb3J5U2FtcGxlckxpbnV4LmNwcAorCisgICAgU2hhcmVk
L3NvdXAvV2ViQ29yZUFyZ3VtZW50Q29kZXJzU291cC5jcHAKKyAgICBTaGFyZWQvc291cC9XZWJF
cnJvcnNTb3VwLmNwcAorCisgICAgU2hhcmVkL3VuaXgvQ2hpbGRQcm9jZXNzTWFpbi5jcHAKKwor
ICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKKyAgICBTaGFyZWQv
d3BlL05hdGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJU
b3VjaEV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViV2hlZWxFdmVudFdQRS5j
cHAKKyAgICBTaGFyZWQvd3BlL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFdQRS5jcHAKKyAgICBTaGFy
ZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9XS1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NNYW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL2NhaXJv
L1dLSWNvbkRhdGFiYXNlQ2Fpcm8uY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nv
b2tpZU1hbmFnZXJTb3VwLmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuY3Bw
CisKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5jcHAKKyAg
ICBVSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcAorICAgIFVJUHJvY2Vz
cy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1Njcm9s
bEdlc3R1cmVDb250cm9sbGVyLmNwcAorICAgIFVJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3Bw
CisgICAgVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5jcHAKKworICAgIFVJUHJvY2Vz
cy9CYWNraW5nU3RvcmUuY3BwCisgICAgVUlQcm9jZXNzL0RlZmF1bHRVbmRvQ29udHJvbGxlci5j
cHAKKyAgICBVSVByb2Nlc3MvTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nTm9uZS5jcHAKKyAgICBV
SVByb2Nlc3MvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc01hbmFnZXIuY3BwCisgICAgVUlQcm9j
ZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKworICAgIFVJUHJvY2Vzcy9J
bnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJv
Y2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvc291cC9XZWJTb2NrZXRTZXJ2ZXJTb3VwLmNwcAorCisgICAg
VUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCisKKyAgICBVSVBy
b2Nlc3MvUGx1Z2lucy91bml4L1BsdWdpbkluZm9TdG9yZVVuaXguY3BwCisgICAgVUlQcm9jZXNz
L1BsdWdpbnMvdW5peC9QbHVnaW5Qcm9jZXNzUHJveHlVbml4LmNwcAorCisgICAgVUlQcm9jZXNz
L1N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvV2Vic2l0ZURhdGEv
dW5peC9XZWJzaXRlRGF0YVN0b3JlVW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9jYWlyby9CYWNr
aW5nU3RvcmVDYWlyby5jcHAKKworICAgIFVJUHJvY2Vzcy9nc3RyZWFtZXIvSW5zdGFsbE1pc3Np
bmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdC5jcHAKKyAgICBVSVByb2Nlc3MvZ3N0cmVh
bWVyL1dlYlBhZ2VQcm94eUdTdHJlYW1lci5jcHAKKworICAgIFVJUHJvY2Vzcy9saW51eC9NZW1v
cnlQcmVzc3VyZU1vbml0b3IuY3BwCisKKyAgICBVSVByb2Nlc3Mvc291cC9XZWJDb29raWVNYW5h
Z2VyUHJveHlTb3VwLmNwcAorICAgIFVJUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NQb29sU291cC5j
cHAKKworICAgIFVJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCisgICAgVUlQcm9jZXNz
L3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQ
cm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAK
KyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2VzV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93
cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwCisKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9X
ZWJDb29raWVNYW5hZ2VyU291cC5jcHAKKyAgICBXZWJQcm9jZXNzL0Nvb2tpZXMvc291cC9XZWJL
aXRTb3VwQ29va2llSmFyU3FsaXRlLmNwcAorCisgICAgV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRs
ZS9nbGliL0luamVjdGVkQnVuZGxlR2xpYi5jcHAKKworICAgIFdlYlByb2Nlc3MvTWVkaWFDYWNo
ZS9XZWJNZWRpYUtleVN0b3JhZ2VNYW5hZ2VyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9zb3VwL1dlYkZyYW1lTmV0d29ya2luZ0NvbnRleHQuY3BwCisKKyAgICBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJDb250ZXh0TWVudUNsaWVudFdQRS5jcHAKKyAgICBX
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCisgICAg
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcAorCisgICAg
V2ViUHJvY2Vzcy9XZWJQYWdlL0FjY2VsZXJhdGVkU3VyZmFjZS5jcHAKKworICAgIFdlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0FyZWFBbGxvY2F0b3IuY3BwCisgICAgV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29tcG9zaXRpbmdDb29yZGluYXRv
ci5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvVGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCisgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvVXBkYXRlQXRsYXMuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2UvZ3N0cmVhbWVyL1dlYlBhZ2VHU3RyZWFtZXIuY3BwCisKKyAgICBX
ZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKKyAgICBXZWJQcm9j
ZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJQYWdlV1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0SW5w
dXRTdHJlYW0uY3BwCisgICAgV2ViUHJvY2Vzcy9zb3VwL1dlYlByb2Nlc3NTb3VwLmNwcAorCisg
ICAgV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCisKKyAgICAjIEZJWE1FLUdX
U0hBUkU6CisgICAgRGF0YWJhc2VQcm9jZXNzL2d0ay9EYXRhYmFzZVByb2Nlc3NNYWluR3RrLmNw
cAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX01FU1NBR0VTX0lOX0ZJTEVTCisgICAgVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKykKKworbGlz
dChBUFBFTkQgV2ViS2l0Ml9ERVJJVkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19X
RUJLSVQyX0RJUn0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS5jCispCisKK3NldChX
ZWJLaXQyUmVzb3VyY2VzCispCisKK2lmIChFTkFCTEVfV0VCX0FVRElPKQorICAgIGxpc3QoQVBQ
RU5EIFdlYktpdDJSZXNvdXJjZXMKKyAgICAgICAgIiAgICAgICAgPGZpbGUgYWxpYXM9XCJhdWRp
by9Db21wb3NpdGVcIj5Db21wb3NpdGUud2F2PC9maWxlPlxuIgorICAgICkKK2VuZGlmICgpCisK
K2ZpbGUoV1JJVEUgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgIjw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVU
Ri04Pz5cbiIKKyAgICAiPGdyZXNvdXJjZXM+XG4iCisgICAgIiAgICA8Z3Jlc291cmNlIHByZWZp
eD1cIi9vcmcvd2Via2l0d3BlL3Jlc291cmNlc1wiPlxuIgorICAgICR7V2ViS2l0MlJlc291cmNl
c30KKyAgICAiICAgIDwvZ3Jlc291cmNlPlxuIgorICAgICI8L2dyZXNvdXJjZXM+XG4iCispCisK
K2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lU
Ml9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtE
RVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5k
bGUueG1sCisgICAgQ09NTUFORCBnbGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1z
b3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9SZXNvdXJjZXMgLS1z
b3VyY2VkaXI9JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9yZXNvdXJjZXMgLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktp
dDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJ
Un0vV2ViS2l0MlJlc291cmNlc0dSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQor
CitsaXN0KEFQUEVORCBXZWJLaXQyX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtGT1JXQVJE
SU5HX0hFQURFUlNfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfRElSfSIKKyAgICAiJHtX
RUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8iCisgICAgIiR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS9ncmFwaGljcy9vcGVudHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhp
Y3MvdGV4bWFwL2Nvb3JkaW5hdGVkIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9uZXR3
b3JrL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L0RhdGFiYXNlUHJvY2Vzcy91bml4IgorICAg
ICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy9DdXN0b21Qcm90b2NvbHMvc291cCIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL3NvdXAiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L05ldHdvcmtQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L05l
dHdvcmtQcm9jZXNzL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL0lQQy9nbGli
IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9JUEMvdW5peCIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vUGxhdGZvcm0vY2xhc3NpZmllciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQ
SS9jL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3Mi
CisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvciIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3NvdXAiCisgICAgIiR7V0VC
S0lUMl9ESVJ9L1NoYXJlZC91bml4IgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQvd3BlIgor
ICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvY2Fpcm8iCisgICAgIiR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0Mvd3BlIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZSIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL05ldHdvcmsvQ3VzdG9tUHJvdG9jb2xzL3NvdXAi
CisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9saW51eCIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3Mvc291cCIK
KyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy91bml4IgorICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlIgorICAgICIke1dURl9ESVJ9L3d0Zi9ndGsvIgorICAg
ICIke1dURl9ESVJ9L3d0Zi9nb2JqZWN0IgorICAgICIke1dURl9ESVJ9IgorICAgICR7Q0FJUk9f
SU5DTFVERV9ESVJTfQorICAgICR7RUdMX0lOQ0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9J
TkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0dTVFJFQU1FUl9J
TkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJTT1VQ
X0lOQ0xVREVfRElSU30KKyAgICAke1dQRV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5E
IFdlYktpdDJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQ
RTJfTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgJHtHU1RSRUFNRVJfTElC
UkFSSUVTfQorICAgICR7SEFSRkJVWlpfTElCUkFSSUVTfQorICAgICR7TElCU09VUF9MSUJSQVJJ
RVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQorCitzZXQoSW5zcGVjdG9yRmlsZXMKKyAgICAk
e0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Mb2NhbGl6YXRpb25zL2Vu
Lmxwcm9qL2xvY2FsaXplZFN0cmluZ3MuanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlLyouaHRtbAorICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQmFzZS8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9D
b250cm9sbGVycy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5qcworICAgICR7Q01BS0VfU09VUkNF
X0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvRGVidWcvKi5jc3MKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0RlYnVnLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0NvZGVNaXJyb3IvKi5jc3MKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0Nv
ZGVNaXJyb3IvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvRXh0ZXJuYWwvRVNMaW50LyouanMKKyAgICAke0NNQUtFX1NPVVJD
RV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0V4dGVybmFsL0VzcHJp
bWEvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnBuZworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvSW1hZ2VzL2d0ay8qLnN2ZworICAgICR7
Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTW9k
ZWxzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1Byb3RvY29sLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Byb3hpZXMvKi5qcworICAgICR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGVzdC8qLmpz
CisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9WaWV3cy8qLmNzcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJUn0v
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvV29ya2Vycy9Gb3JtYXR0ZXIvKi5q
cworICAgICR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvV29ya2Vycy9IZWFwU25hcHNob3QvKi5qcworKQorCitmaWxlKEdMT0IgSW5zcGVjdG9y
RmlsZXNEZXBlbmRlbmNpZXMKKyAgICAke0luc3BlY3RvckZpbGVzfQorKQorCisjIERlcml2ZWRT
b3VyY2VzL0phdmFTY3JpcHRDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMu
anMgaXMKKyMgZXhwZWN0ZWQgaW4gRGVyaXZlZFNvdXJjZXMvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Qcm90b2NvbC8uCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9J
bnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VT
X0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3RvckJhY2tlbmRDb21tYW5kcy5q
cworICAgIENPTU1BTkQgY3AgJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9p
bnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzICR7REVSSVZFRF9TT1VSQ0VTX1dF
QklOU1BFQ1RPUlVJX0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5k
Q29tbWFuZHMuanMKKykKKworYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54
bWwKKyAgICBERVBFTkRTICR7SW5zcGVjdG9yRmlsZXNEZXBlbmRlbmNpZXN9CisgICAgICAgICAg
ICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJv
dG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCisgICAgICAgICAgICAke1RPT0xTX0RJ
Un0vd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkKKyAgICBDT01N
QU5EICR7VE9PTFNfRElSfS93cGUvZ2VuZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVz
dC5weSAtLW91dHB1dD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L0luc3Bl
Y3RvckdSZXNvdXJjZUJ1bmRsZS54bWwgJHtJbnNwZWN0b3JGaWxlc30gJHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcworICAgIFZFUkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgK
KyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0
b3JHUmVzb3VyY2VCdW5kbGUuYworICAgIERFUEVORFMgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgQ09NTUFORCBn
bGliLWNvbXBpbGUtcmVzb3VyY2VzIC0tZ2VuZXJhdGUgLS1zb3VyY2VkaXI9JHtDTUFLRV9TT1VS
Q0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkgLS1zb3VyY2VkaXI9JHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfSAtLXRhcmdldD0ke0RFUklWRURfU09VUkNFU19XRUJJTlNQ
RUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7REVSSVZFRF9TT1VSQ0VT
X1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIFZF
UkJBVElNCispCisKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NP
VVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxl
LmMKKyAgICBERVBFTkRTICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgICAgICAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZC9pbnNwZWN0b3JQYWdlSW5kZXguaHRt
bAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNl
ZGlyPSR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvZnJvbnQtZW5kIC0t
dGFyZ2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vV2ViS2l0Mkluc3Bl
Y3RvckdSZXNvdXJjZUJ1bmRsZS5jICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvd3BlL1dl
YktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlz
dChBUFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0RFUklWRURfU09VUkNFUworICAgICR7
REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVu
ZGxlLmMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJ
bnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUuYworKQorCitsaXN0KEFQUEVORCBXUEVXZWJJbnNwZWN0
b3JSZXNvdXJjZXNfTElCUkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CispCisKK2xp
c3QoQVBQRU5EIFdQRVdlYkluc3BlY3RvclJlc291cmNlc19JTkNMVURFX0RJUkVDVE9SSUVTCisg
ICAgJHtHTElCX0lOQ0xVREVfRElSU30KKykKKworYWRkX2xpYnJhcnkoV1BFV2ViSW5zcGVjdG9y
UmVzb3VyY2VzIFNIQVJFRCAke1dQRVdlYkluc3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJD
RVN9KQorYWRkX2RlcGVuZGVuY2llcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgV2ViS2l0MikK
K3RhcmdldF9saW5rX2xpYnJhcmllcyhXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXMgJHtXUEVXZWJJ
bnNwZWN0b3JSZXNvdXJjZXNfTElCUkFSSUVTfSkKK3RhcmdldF9pbmNsdWRlX2RpcmVjdG9yaWVz
KFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBQVUJMSUMgJHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJj
ZXNfSU5DTFVERV9ESVJFQ1RPUklFU30pCitpbnN0YWxsKFRBUkdFVFMgV1BFV2ViSW5zcGVjdG9y
UmVzb3VyY2VzIERFU1RJTkFUSU9OICIke0xJQl9JTlNUQUxMX0RJUn0iKQorCitzZXQoV1BFX0lO
U1RBTExFRF9XRUJLSVRfSEVBREVSUworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9X
S0FycmF5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKKyAgICAk
e1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tEYXRhLmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tEZWNsYXJhdGlvblNwZWNpZmllcnMuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1NoYXJlZC9BUEkvYy9XS0RpYWdub3N0aWNMb2dnaW5nUmVzdWx0VHlwZS5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGljdGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLRXJyb3JSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkv
Yy9XS0V2ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tGaW5kT3B0aW9u
cy5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLR2VvbWV0cnkuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0ltYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9T
aGFyZWQvQVBJL2MvV0tNdXRhYmxlQXJyYXkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS011dGFibGVEaWN0aW9uYXJ5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJ
L2MvV0tOdW1iZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VMb2Fk
VHlwZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1BhZ2VWaXNpYmlsaXR5
VHlwZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1NlY3VyaXR5T3JpZ2lu
UmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1N0cmluZy5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVHlwZS5oCisgICAgJHtXRUJLSVQyX0RJUn0v
U2hhcmVkL0FQSS9jL1dLVVJMLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tV
UkxSZXF1ZXN0LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVUkxSZXNwb25z
ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcy5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlckNvbnRlbnRV
UkxQYXR0ZXJuLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tVc2VyU2NyaXB0
SW5qZWN0aW9uVGltZS5oCisKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dL
QmFzZVdQRS5oCisKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxl
L0FQSS9jL1dLQnVuZGxlLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0LmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0
SXRlbS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkv
Yy9XS0J1bmRsZURPTVdpbmRvd0V4dGVuc2lvbi5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUZpbGVIYW5kbGVSZWYuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVGcmFt
ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZUhpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVJbml0aWFsaXplLmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlSW5zcGVjdG9yLmgKKyAg
ICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxl
TmF2aWdhdGlvbkFjdGlvbi5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3Rl
ZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5vZGVIYW5kbGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dl
YlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlLmgKKyAgICAke1dFQktJ
VDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUJhbm5l
ci5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQ
YWdlRm9ybUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUdyb3VwLmgK
KyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVu
ZGxlUGFnZUxvYWRlckNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VPdmVybGF5LmgKKyAgICAke1dFQktJVDJfRElS
fS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9X
S0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlBy
b2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlVUlDbGllbnQuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVSYW5n
ZUhhbmRsZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9B
UEkvYy9XS0J1bmRsZVNjcmlwdFdvcmxkLmgKKworICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdEl0ZW1SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dENvbmZpZ3VyYXRpb25SZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LmgKKyAgICAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0RG93bmxvYWRDbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRleHRIaXN0b3J5Q2xpZW50
LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NvbnRl
eHQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0Nvb2tpZU1hbmFnZXIu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWwuaAorICAg
ICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0NyZWRlbnRpYWxUeXBlcy5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLRnJhbWUuaAorICAgICR7V0VCS0lUMl9E
SVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS0ZyYW1lSW5mb1JlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLSGl0VGVzdFJlc3VsdC5oCisgICAgJHtXRUJLSVQyX0RJUn0v
VUlQcm9jZXNzL0FQSS9DL1dLTmF0aXZlRXZlbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS05hdmlnYXRpb25BY3Rpb25SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS05hdmlnYXRpb25EYXRhUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVBy
b2Nlc3MvQVBJL0MvV0tOYXZpZ2F0aW9uUmVzcG9uc2VSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2VDb25maWd1cmF0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlQ29udGV4dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZpbmRDbGllbnQuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oCisgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUZvcm1DbGllbnQuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTG9hZGVyQ2xpZW50LmgKKyAgICAke1dF
QktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlTmF2aWdhdGlvbkNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVBvbGljeUNsaWVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVJlbmRlcmluZ1Byb2dyZXNzRXZl
bnRzLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlVUlDbGllbnQu
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1BsdWdpbkxvYWRQb2xpY3ku
aAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUmVmLmgK
KyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tTZXNzaW9uU3RhdGVSZWYuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJDb250ZW50Q29udHJvbGxl
clJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVXNlclNjcmlwdFJl
Zi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLVmlld3BvcnRBdHRyaWJ1
dGVzLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tXaW5kb3dGZWF0dXJl
c1JlZi5oCisKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5o
CisKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mvc291cC9XS0Nvb2tpZU1hbmFn
ZXJTb3VwLmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURfV0VCS0lUX0hFQURF
UlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtX
UEVfQVBJX1ZFUlNJT059L1dQRS9XZWJLaXQiCisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVudCIK
KykKKworc2V0KFdQRV9JTlNUQUxMRURfSEVBREVSUworICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJl
ZC9BUEkvYy93cGUvV2ViS2l0LmgKKykKKworaW5zdGFsbChGSUxFUyAke1dQRV9JTlNUQUxMRURf
SEVBREVSU30KKyAgICBERVNUSU5BVElPTiAiJHtDTUFLRV9JTlNUQUxMX0lOQ0xVREVESVJ9L3dw
ZS0ke1dQRV9BUElfVkVSU0lPTn0vV1BFIgorICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCisp
CisKK2luc3RhbGwoRklMRVMgJHtDTUFLRV9CSU5BUllfRElSfS93cGUtd2Via2l0LnBjCisgICAg
REVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9MSUJESVJ9L3BrZ2NvbmZpZyIKKyAgICBDT01Q
T05FTlQgIkRldmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2NyaXB0
cy9nZW5lcmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRz
L2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAppbmRleCBiNjFkYjc4Nzc0YS4uYTdkM2Ew
YjZiOTIgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsCkBAIC0zNSw3ICszNSw3IEBAIHVzZSBGaWxlOjpTcGVjOjpGdW5j
dGlvbnM7CiB1c2UgR2V0b3B0OjpMb25nOwogCiBteSAkc3JjUm9vdCA9IHJlYWxwYXRoKEZpbGU6
OlNwZWMtPmNhdGZpbGUoZGlybmFtZShhYnNfcGF0aCgkMCkpLCAiLi4vLi4iKSk7Ci1teSBAcGxh
dGZvcm1QcmVmaXhlcyA9ICgiY2EiLCAiY2YiLCAiY29jb2EiLCAiQ29jb2EiLCAiQ29vcmRpbmF0
ZWRHcmFwaGljcyIsICJjdXJsIiwgImVmbCIsICJndGsiLCAiaW9zIiwgIm1hYyIsICJzb3VwIiwg
IndpbiIpOworbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAoImNhIiwgImNmIiwgImNvY29hIiwgIkNv
Y29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3VybCIsICJlZmwiLCAiZ3RrIiwgImlvcyIs
ICJtYWMiLCAic291cCIsICJ3aW4iLCAid3BlIik7CiBteSBAZnJhbWV3b3JrcyA9ICgiSmF2YVNj
cmlwdENvcmUiLCAiV2ViQ29yZSIsICJXZWJLaXQiKTsKIG15IEBza2lwcGVkUHJlZml4ZXM7CiBt
eSBAZnJhbWV3b3JrSGVhZGVyczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9B
UEkvYy9XS0Jhc2UuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9XS0Jhc2UuaAppbmRl
eCAyZThmYmZiYmU1Yy4uMzNhMDY5ODhlNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy9XS0Jhc2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tC
YXNlLmgKQEAgLTM4LDYgKzM4LDEwIEBACiAjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZU1hYy5oPgog
I2VuZGlmCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2VXUEUuaD4KKyNlbmRpZgorCiAvKiBXZWJLaXQyIHNoYXJlZCB0eXBlcyAqLwogCiB0eXBl
ZGVmIHVpbnQzMl90IFdLVHlwZUlEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0FQSS9jL3dwZS9XS0Jhc2VXUEUuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUv
V0tCYXNlV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1ZWYw
NjIyMDJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dw
ZS9XS0Jhc2VXUEUuaApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV0tCYXNlV1BFX2gKKyNkZWZpbmUgV0tC
YXNlV1BFX2gKKworI2lmbmRlZiBXS0Jhc2VfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJX
S0Jhc2UuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCit0eXBl
ZGVmIGNvbnN0IHN0cnVjdCBPcGFxdWVXS1ZpZXcqIFdLVmlld1JlZjsKKworI2VuZGlmIC8qIFdL
QmFzZVdQRV9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3Bl
L1dQRVdlYktpdC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XUEVXZWJLaXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOWE4NDExN2Y0NWMKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dQRVdlYktp
dC5oCkBAIC0wLDAgKzEsMTA2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpZm5kZWYgV1BFX1dlYktpdF9oCisjZGVmaW5lIFdQRV9XZWJLaXRf
aAorCisjZGVmaW5lIEJVSUxESU5HX1dQRV9fCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1No
YXJlZC9BUEkvYy8KKyNpbmNsdWRlIDxXZWJLaXQvV0tBcnJheS5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlvbmFy
eS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
R2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051bWJl
ci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVHlwZS5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS1VSTC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlcXVlc3QuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tVUkxSZXNwb25zZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VzZXJDb250
ZW50SW5qZWN0ZWRGcmFtZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0SW5qZWN0
aW9uVGltZS5oPgorCisvLyBGcm9tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRC
dW5kbGUvQVBJL2MvCisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlQmFja0ZvcndhcmRMaXN0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxl
QmFja0ZvcndhcmRMaXN0SXRlbS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUZpbGVIYW5k
bGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVGcmFtZS5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS0J1bmRsZUhpdFRlc3RSZXN1bHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVJ
bml0aWFsaXplLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSW5zcGVjdG9yLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZU5vZGVIYW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUJhbm5lci5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZVBhZ2VDb250ZXh0TWVudUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlRm9y
bUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VGdWxsU2NyZWVuQ2xpZW50
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUdyb3VwLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZUxvYWRlckNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VPdmVybGF5Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZVBvbGljeUNsaWVu
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VSZXNvdXJjZUxvYWRDbGllbnQuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlVUlDbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tCdW5kbGVSYW5nZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVNjcmlw
dFdvcmxkLmg+CisKKy8vIEZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DCisjaW5j
bHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0SXRlbVJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0JhY2tGb3J3YXJkTGlzdFJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRleHRDb25m
aWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUg
PFdlYktpdC9XS0NyZWRlbnRpYWwuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tDcmVkZW50aWFsVHlw
ZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tGcmFtZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Zy
YW1lSW5mb1JlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0ZyYW1lUG9saWN5TGlzdGVuZXIuaD4K
KyNpbmNsdWRlIDxXZWJLaXQvV0tIaXRUZXN0UmVzdWx0Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
TmF2aWdhdGlvbkFjdGlvblJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS05hdmlnYXRpb25EYXRh
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlZi5oPgorI2luY2x1ZGUgPFdl
YktpdC9XS05hdmlnYXRpb25SZXNwb25zZVJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1BhZ2VD
b25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+CisjaW5j
bHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ByZWZlcmVuY2VzUmVm
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLU2Vzc2lvblN0YXRlUmVmLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLVXNlckNvbnRlbnRDb250cm9sbGVyUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNl
clNjcmlwdFJlZi5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXcuaD4KKyNpbmNsdWRlIDxXZWJL
aXQvV0tWaWV3cG9ydEF0dHJpYnV0ZXMuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tXaW5kb3dGZWF0
dXJlc1JlZi5oPgorCisjZW5kaWYgLy8gV1BFX1dlYktpdF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29t
cG9zaXRpbmdSdW5Mb29wLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCmluZGV4IDhh
Y2Y1MDY5MjEwLi4yMjQzODhlZWM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9v
cC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhy
ZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKQEAgLTc1LDcgKzc1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICBXb3JrUXVldWVQb29sKCkKICAgICB7Ci0jaWYgUExBVEZP
Uk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICBtX3Ro
cmVhZENvdW50TGltaXQgPSAxOwogI2Vsc2UKICAgICAgICAgbV90aHJlYWRDb3VudExpbWl0ID0g
c3RkOjpudW1lcmljX2xpbWl0czx1bnNpZ25lZD46Om1heCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0Nv
bXBvc2l0aW5nUnVuTG9vcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5oCmluZGV4IDgxNmQ0
NjdiNTEwLi42NDVkN2I5MGQxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVuTG9vcC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVk
Y29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYg
VVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQogCisjaW5jbHVkZSA8ZnVuY3Rpb25h
bD4KICNpbmNsdWRlIDx3dGYvQXRvbWljcy5oPgogI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
ICNpbmNsdWRlIDx3dGYvRmFzdE1hbGxvYy5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29t
cG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90
aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcAppbmRleCA1NGQ5NjBiM2Qw
ZS4uOTZkMjk2NmJkZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGlu
YXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29t
cG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuY3BwCkBAIC00MywxMiArNDMsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8VGhyZWFkZWRD
b21wb3NpdG9yPiBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShDbGllbnQmIGNsaWVudCwgY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVN
YXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1JlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRo
cmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdl
LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRf
dCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4
dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZsYWdzKQogewotICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFRocmVhZGVkQ29tcG9zaXRvcihjbGllbnQsIHZpZXdwb3J0U2l6ZSwgc2NhbGVGYWN0
b3IsIG5hdGl2ZVN1cmZhY2VIYW5kbGUsIGRvRnJhbWVTeW5jLCBwYWludEZsYWdzKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9yKGNsaWVudCwgd2ViUGFnZSwg
dmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwgZG9GcmFtZVN5
bmMsIHBhaW50RmxhZ3MpKTsKIH0KIAotVGhyZWFkZWRDb21wb3NpdG9yOjpUaHJlYWRlZENvbXBv
c2l0b3IoQ2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVT
eW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBhaW50RmxhZ3MpCitU
aHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgV2Vi
UGFnZSYgd2ViUGFnZSwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZh
Y3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9G
cmFtZVN5bmMsIFRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKICAgICA6IG1f
Y2xpZW50KGNsaWVudCkKICAgICAsIG1fdmlld3BvcnRTaXplKHZpZXdwb3J0U2l6ZSkKICAgICAs
IG1fc2NhbGVGYWN0b3Ioc2NhbGVGYWN0b3IpCkBAIC02NCwxMyArNjQsMjEgQEAgVGhyZWFkZWRD
b21wb3NpdG9yOjpUaHJlYWRlZENvbXBvc2l0b3IoQ2xpZW50JiBjbGllbnQsIGNvbnN0IEludFNp
emUmIHZpZXdwb3J0U2kKICAgICBtX2NsaWVudFJlbmRlcnNOZXh0RnJhbWUuc3RvcmUoZmFsc2Up
OwogICAgIG1fY29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRpb25XaXRoQ2xpZW50LnN0b3JlKGZhbHNl
KTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBtX2NvbXBvc2l0aW5nTWFuYWdlci5lc3RhYmxp
c2hDb25uZWN0aW9uKHdlYlBhZ2UpOworI2VuZGlmCisKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9v
cC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyld
IHsKICAgICAgICAgbV9zY2VuZSA9IGFkb3B0UmVmKG5ldyBDb29yZGluYXRlZEdyYXBoaWNzU2Nl
bmUodGhpcykpOworI2lmIFBMQVRGT1JNKEdUSykKICAgICAgICAgaWYgKG1fbmF0aXZlU3VyZmFj
ZUhhbmRsZSkgewogICAgICAgICAgICAgY3JlYXRlR0xDb250ZXh0KCk7CiAgICAgICAgICAgICBt
X3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgbV9z
Y2VuZS0+c2V0QWN0aXZlKGZhbHNlKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgbV9z
Y2VuZS0+c2V0QWN0aXZlKHRydWUpOworI2VuZGlmCiAgICAgfSk7CiB9CiAKQEAgLTgxLDYgKzg5
LDggQEAgVGhyZWFkZWRDb21wb3NpdG9yOjp+VGhyZWFkZWRDb21wb3NpdG9yKCkKIHZvaWQgVGhy
ZWFkZWRDb21wb3NpdG9yOjpjcmVhdGVHTENvbnRleHQoKQogewogICAgIEFTU0VSVCghaXNNYWlu
VGhyZWFkKCkpOworCisjaWYgUExBVEZPUk0oR1RLKQogICAgIEFTU0VSVChtX25hdGl2ZVN1cmZh
Y2VIYW5kbGUpOwogCiAgICAgbV9jb250ZXh0ID0gR0xDb250ZXh0OjpjcmVhdGVDb250ZXh0Rm9y
V2luZG93KHJlaW50ZXJwcmV0X2Nhc3Q8R0xOYXRpdmVXaW5kb3dUeXBlPihtX25hdGl2ZVN1cmZh
Y2VIYW5kbGUpLCAmUGxhdGZvcm1EaXNwbGF5OjpzaGFyZWREaXNwbGF5Rm9yQ29tcG9zaXRpbmco
KSk7CkBAIC05MSw2ICsxMDEsMjIgQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdM
Q29udGV4dCgpCiAgICAgICAgIGlmIChtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3VycmVudCgpKQog
ICAgICAgICAgICAgbV9jb250ZXh0LT5zd2FwSW50ZXJ2YWwoMCk7CiAgICAgfQorI2VuZGlmCisK
KyNpZiBQTEFURk9STShXUEUpCisgICAgYXV0byYgcGxhdGZvcm1EaXNwbGF5ID0gUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCk7CisgICAgUkVMRUFTRV9BU1NFUlQoaXM8UGxhdGZvcm1E
aXNwbGF5V1BFPihwbGF0Zm9ybURpc3BsYXkpKTsKKyAgICBtX3RhcmdldCA9IGRvd25jYXN0PFBs
YXRmb3JtRGlzcGxheVdQRT4ocGxhdGZvcm1EaXNwbGF5KS5jcmVhdGVFR0xUYXJnZXQoKnRoaXMs
IG1fY29tcG9zaXRpbmdNYW5hZ2VyLnJlbGVhc2VDb25uZWN0aW9uRmQoKSk7CisgICAgQVNTRVJU
KG1fdGFyZ2V0KTsKKyAgICBtX3RhcmdldC0+aW5pdGlhbGl6ZShtX3ZpZXdwb3J0U2l6ZSk7CisK
KyAgICBtX2NvbnRleHQgPSBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cobV90YXJn
ZXQtPm5hdGl2ZVdpbmRvdygpLCAmcGxhdGZvcm1EaXNwbGF5KTsKKyAgICBpZiAoIW1fY29udGV4
dCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFtX2NvbnRleHQtPm1ha2VDb250ZXh0Q3Vy
cmVudCgpKQorICAgICAgICByZXR1cm47CisjZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBv
c2l0b3I6OmludmFsaWRhdGUoKQpAQCAtMTAwLDE2ICsxMjYsMjMgQEAgdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OmludmFsaWRhdGUoKQogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3Jt
VGFza1N5bmMoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAg
ICBtX3NjZW5lLT5wdXJnZUdMUmVzb3VyY2VzKCk7CiAgICAgICAgIG1fY29udGV4dCA9IG51bGxw
dHI7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBtX3RhcmdldCA9IG51bGxwdHI7CisjZW5k
aWYKICAgICAgICAgbV9zY2VuZSA9IG51bGxwdHI7CiAgICAgfSk7CiAjaWYgVVNFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKICAgICBtX2Rpc3BsYXlSZWZyZXNoTW9u
aXRvci0+aW52YWxpZGF0ZSgpOwogI2VuZGlmCiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3AgPSBu
dWxscHRyOworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1Ip
CisgICAgbV9kaXNwbGF5UmVmcmVzaE1vbml0b3ItPmludmFsaWRhdGUoKTsKKyNlbmRpZgogfQog
CiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2V0TmF0aXZlU3VyZmFjZUhhbmRsZUZvckNvbXBv
c2l0aW5nKHVpbnQ2NF90IGhhbmRsZSkKIHsKKyNpZiBQTEFURk9STShHVEspCiAgICAgbV9jb21w
b3NpdGluZ1J1bkxvb3AtPnN0b3BVcGRhdGVzKCk7CiAgICAgbV9jb21wb3NpdGluZ1J1bkxvb3At
PnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBo
YW5kbGVdIHsKICAgICAgICAgLy8gQSBuZXcgbmF0aXZlIGhhbmRsZSBjYW4ndCBiZSBzZXQgd2l0
aG91dCBkZXN0cm95aW5nIHRoZSBwcmV2aW91cyBvbmUgZmlyc3QgaWYgYW55LgpAQCAtMTIzLDYg
KzE1Niw3IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpzZXROYXRpdmVTdXJmYWNlSGFuZGxl
Rm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQogICAgICAgICAgICAgbV9jb250ZXh0ID0g
bnVsbHB0cjsKICAgICAgICAgfQogICAgIH0pOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRD
b21wb3NpdG9yOjpzZXRTY2FsZUZhY3RvcihmbG9hdCBzY2FsZSkKQEAgLTE0Niw2ICsxODAsMTAg
QEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFZpZXdwb3J0U2l6ZShjb25zdCBJbnRTaXpl
JiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWwKIHsKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+
cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIHZp
ZXdwb3J0U2l6ZSwgc2NhbGVdIHsKICAgICAgICAgbV92aWV3cG9ydFNpemUgPSB2aWV3cG9ydFNp
emU7CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBpZiAobV90YXJnZXQpCisgICAgICAgICAg
ICBtX3RhcmdldC0+cmVzaXplKHZpZXdwb3J0U2l6ZSk7CisjZW5kaWYKICAgICAgICAgbV9zY2Fs
ZUZhY3RvciA9IHNjYWxlOwogICAgICAgICBtX25lZWRzUmVzaXplID0gdHJ1ZTsKICAgICAgICAg
bV9jb21wb3NpdGluZ1J1bkxvb3AtPnNjaGVkdWxlVXBkYXRlKCk7CkBAIC0xODksOSArMjI3LDE4
IEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJMYXllclRyZWUoKQogICAgIGlmICgh
bV9zY2VuZSB8fCAhbV9zY2VuZS0+aXNBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwogCisjaWYg
UExBVEZPUk0oV1BFKQorICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICBjcmVhdGVHTENvbnRl
eHQoKTsKKyNlbmRpZgorCiAgICAgaWYgKCFtX2NvbnRleHQgfHwgIW1fY29udGV4dC0+bWFrZUNv
bnRleHRDdXJyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAg
ICBtX3RhcmdldC0+ZnJhbWVXaWxsUmVuZGVyKCk7CisjZW5kaWYKKwogICAgIGlmIChtX25lZWRz
UmVzaXplKSB7CiAgICAgICAgIGdsVmlld3BvcnQoMCwgMCwgbV92aWV3cG9ydFNpemUud2lkdGgo
KSwgbV92aWV3cG9ydFNpemUuaGVpZ2h0KCkpOwogICAgICAgICBtX25lZWRzUmVzaXplID0gZmFs
c2U7CkBAIC0yMTEsNyArMjU4LDEzIEBAIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpyZW5kZXJM
YXllclRyZWUoKQogCiAgICAgbV9jb250ZXh0LT5zd2FwQnVmZmVycygpOwogCisjaWYgUExBVEZP
Uk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVJlbmRlcmVkKCk7CisjZW5kaWYKKworI2lmIFBM
QVRGT1JNKEdUSykKICAgICBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7CisjZW5kaWYKIH0KIAogdm9p
ZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNjZW5lVXBkYXRlRmluaXNoZWQoKQpAQCAtMjcwLDUgKzMy
MywzMiBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y29vcmRpbmF0ZVVwZGF0ZUNvbXBsZXRp
b25XaXRoQ2xpZW50KCkKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RhdGljIHZv
aWQgZGVidWdUaHJlYWRlZENvbXBvc2l0b3JGUFMoKQoreworICAgIHN0YXRpYyBkb3VibGUgbGFz
dFRpbWUgPSBjdXJyZW50VGltZSgpOworICAgIHN0YXRpYyB1bnNpZ25lZCBmcmFtZUNvdW50ID0g
MDsKKworICAgIGRvdWJsZSBjdCA9IGN1cnJlbnRUaW1lKCk7CisgICAgZnJhbWVDb3VudCsrOwor
CisgICAgaWYgKGN0IC0gbGFzdFRpbWUgPj0gNS4wKSB7CisgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiVGhyZWFkZWRDb21wb3NpdG9yOiBmcmFtZSBjYWxsYmFja3MgJS4yZiBGUFNcbiIsIGZyYW1l
Q291bnQgLyAoY3QgLSBsYXN0VGltZSkpOworICAgICAgICBsYXN0VGltZSA9IGN0OworICAgICAg
ICBmcmFtZUNvdW50ID0gMDsKKyAgICB9Cit9CisKK3ZvaWQgVGhyZWFkZWRDb21wb3NpdG9yOjpm
cmFtZUNvbXBsZXRlKCkKK3sKKyAgICBBU1NFUlQobV9jb21wb3NpdGluZ1J1bkxvb3AtPmlzQ3Vy
cmVudCgpKTsKKyAgICBzdGF0aWMgYm9vbCByZXBvcnRGUFMgPSAhIXN0ZDo6Z2V0ZW52KCJXUEVf
VEhSRUFERURfQ09NUE9TSVRPUl9GUFMiKTsKKyAgICBpZiAocmVwb3J0RlBTKQorICAgICAgICBk
ZWJ1Z1RocmVhZGVkQ29tcG9zaXRvckZQUygpOworCisgICAgc2NlbmVVcGRhdGVGaW5pc2hlZCgp
OworfQorI2VuZGlmCisKIH0KICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhS
RUFERUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFw
aGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFk
ZWRDb21wb3NpdG9yLmgKaW5kZXggNjc5NTRhMDdhNDYuLmViMTI0NTk3NTZiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBv
c2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nv
b3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5o
CkBAIC00Miw2ICs0MiwxMSBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmg+CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJDb21wb3NpdGlu
Z01hbmFnZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2Vu
ZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0cnVjdCBDb29yZGluYXRlZEdyYXBoaWNzU3Rh
dGU7CiB9CkBAIC01MSw4ICs1NiwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENvb3Jk
aW5hdGVkR3JhcGhpY3NTY2VuZTsKIGNsYXNzIENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZUNsaWVu
dDsKIGNsYXNzIFRocmVhZGVkRGlzcGxheVJlZnJlc2hNb25pdG9yOworY2xhc3MgV2ViUGFnZTsK
IAotY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhpY3NT
Y2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9zaXRv
cj4geworY2xhc3MgVGhyZWFkZWRDb21wb3NpdG9yIDogcHVibGljIENvb3JkaW5hdGVkR3JhcGhp
Y3NTY2VuZUNsaWVudCwgcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGVkQ29tcG9z
aXRvcj4KKyNpZiBQTEFURk9STShXUEUpCisgICAgLCBwdWJsaWMgV2ViQ29yZTo6UGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OkNsaWVudAorI2VuZGlmCisgICAgewogICAgIFdURl9NQUtF
X05PTkNPUFlBQkxFKFRocmVhZGVkQ29tcG9zaXRvcik7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiBwdWJsaWM6CkBAIC02NCw3ICs3NCw3IEBAIHB1YmxpYzoKIAogICAgIGVudW0gY2xh
c3MgU2hvdWxkRG9GcmFtZVN5bmMgeyBObywgWWVzIH07CiAKLSAgICBzdGF0aWMgUmVmPFRocmVh
ZGVkQ29tcG9zaXRvcj4gY3JlYXRlKENsaWVudCYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBm
bG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSA9IDAsIFNob3Vs
ZERvRnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6OlllcywgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlcjo6UGFpbnRGbGFncyA9IDApOworICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9y
PiBjcmVhdGUoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9h
dCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSA9IDAsIFNob3VsZERv
RnJhbWVTeW5jID0gU2hvdWxkRG9GcmFtZVN5bmM6OlllcywgV2ViQ29yZTo6VGV4dHVyZU1hcHBl
cjo6UGFpbnRGbGFncyA9IDApOwogICAgIHZpcnR1YWwgflRocmVhZGVkQ29tcG9zaXRvcigpOwog
CiAgICAgdm9pZCBzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3Qp
OwpAQCAtODcsMTMgKzk3LDE4IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAgIFRo
cmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgZmxvYXQg
c2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNob3VsZERvRnJhbWVT
eW5jLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzKTsKKyAgICBUaHJlYWRlZENv
bXBvc2l0b3IoQ2xpZW50JiwgV2ViUGFnZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9h
dCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFt
ZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBwZXI6OlBhaW50RmxhZ3MpOwogCiAgICAgLy8gQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50CiAgICAgdm9pZCByZW5kZXJOZXh0RnJhbWUoKSBv
dmVycmlkZTsKICAgICB2b2lkIHVwZGF0ZVZpZXdwb3J0KCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBj
b21taXRTY3JvbGxPZmZzZXQodWludDMyX3QgbGF5ZXJJRCwgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgb2Zmc2V0KSBvdmVycmlkZTsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAvLyBXZWJDb3Jl
OjpQbGF0Zm9ybURpc3BsYXlXUEU6OlN1cmZhY2U6OkNsaWVudAorICAgIHZvaWQgZnJhbWVDb21w
bGV0ZSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICB2b2lkIHJlbmRlckxheWVyVHJlZSgpOwog
ICAgIHZvaWQgc2NlbmVVcGRhdGVGaW5pc2hlZCgpOwogCkBAIC0xMDEsNiArMTE2LDEyIEBAIHBy
aXZhdGU6CiAKICAgICBDbGllbnQmIG1fY2xpZW50OwogICAgIFJlZlB0cjxDb29yZGluYXRlZEdy
YXBoaWNzU2NlbmU+IG1fc2NlbmU7CisKKyNpZiBQTEFURk9STShXUEUpCisgICAgQ29tcG9zaXRp
bmdNYW5hZ2VyIG1fY29tcG9zaXRpbmdNYW5hZ2VyOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJD
b3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldD4gbV90YXJnZXQ7CisjZW5kaWYKKwog
ICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpHTENvbnRleHQ+IG1fY29udGV4dDsKIAogICAg
IFdlYkNvcmU6OkludFNpemUgbV92aWV3cG9ydFNpemU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJh
d2luZ0FyZWFJbmZvLmgKaW5kZXggN2ZjNGQ3YzRiM2YuLmE0MzVlMTliYjdmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL0RyYXdpbmdBcmVhSW5mby5oCkBAIC0zNCw2ICszNCw4IEBAIGVudW0gRHJh
d2luZ0FyZWFUeXBlIHsKICAgICBEcmF3aW5nQXJlYVR5cGVUaWxlZENvcmVBbmltYXRpb24sCiAj
ZW5kaWYKICAgICBEcmF3aW5nQXJlYVR5cGVSZW1vdGVMYXllclRyZWUsCisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgRHJhd2luZ0FyZWFUeXBlV1BFCiAjZWxzZQogICAgIERyYXdpbmdBcmVhVHlw
ZUltcGwKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdl
YktleWJvYXJkRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50LmgKaW5kZXggY2IxZjExOGM4OTIuLjE0ZmRkZTIyNGU1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgKQEAgLTUxLDYgKzUxLDEwIEBA
IHR5cGVkZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogT0JKQ19DTEFTUyBXZWJFdmVudDsK
ICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9l
dmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudCA6IHB1YmxpYyBXZWJLZXlib2FyZEV2ZW50IHsKQEAgLTYyLDYgKzY2LDggQEAg
cHVibGljOgogICAgIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoR2RrRXZlbnQqLCBjb25zdCBXZWJD
b3JlOjpDb21wb3NpdGlvblJlc3VsdHMmLCBJbnB1dE1ldGhvZEZpbHRlcjo6RXZlbnRGYWtlZEZv
ckNvbXBvc2l0aW9uLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzKTsKICNlbGlmIFBMQVRGT1JN
KElPUykKICAgICBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KDo6V2ViRXZlbnQgKik7CisjZWxpZiBQ
TEFURk9STShXUEUpCisgICAgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50Kik7CiAjZW5kaWYKIAogI2lmIFVTRShBUFBLSVQpCkBAIC03Miw2ICs3
OCw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzRmFrZUV2ZW50Rm9yQ29tcG9zaXRpb24oKSBjb25z
dCB7IHJldHVybiBtX2Zha2VFdmVudEZvckNvbXBvc2l0aW9uOyB9CiAjZWxpZiBQTEFURk9STShJ
T1MpCiAgICAgOjpXZWJFdmVudCogbmF0aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBtX25hdGl2
ZUV2ZW50LmdldCgpOyB9CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgY29uc3Qgdm9pZCogbmF0
aXZlRXZlbnQoKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogcHJpdmF0ZToK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCmluZGV4IDg4Y2Qx
NDEwOTM4Li4yODNmYzMzNDk0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05h
dGl2ZVdlYk1vdXNlRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2Vi
TW91c2VFdmVudC5oCkBAIC0zOCw2ICszOCwxMCBAQCBPQkpDX0NMQVNTIE5TVmlldzsKIHR5cGVk
ZWYgdW5pb24gX0dka0V2ZW50IEdka0V2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUp
CitzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQ7CisjZW5kaWYKKwogbmFtZXNwYWNlIFdl
YktpdCB7CiAKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQgOiBwdWJsaWMgV2ViTW91c2VFdmVu
dCB7CkBAIC00Nyw2ICs1MSw4IEBAIHB1YmxpYzoKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBO
YXRpdmVXZWJNb3VzZUV2ZW50KGNvbnN0IE5hdGl2ZVdlYk1vdXNlRXZlbnQmKTsKICAgICBOYXRp
dmVXZWJNb3VzZUV2ZW50KEdka0V2ZW50KiwgaW50KTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAg
ICBOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCosIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1
LDYgKzYxLDggQEAgcHVibGljOgogICAgIGNvbnN0IEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICNlbGlmIFBMQVRGT1JNKElPUykK
ICAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbGlm
IFBMQVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0
dXJuIG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKaW5kZXggMTE4MTI0Y2RlYmMuLjgyZjNiMjRkNDIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91Y2hFdmVudC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKQEAgLTM0LDYg
KzM0LDggQEAKIHN0cnVjdCBfVUlXZWJUb3VjaEV2ZW50OwogI2VsaWYgUExBVEZPUk0oR1RLKQog
I2luY2x1ZGUgPFdlYkNvcmUvR1VuaXF1ZVB0ckd0ay5oPgorI2VsaWYgUExBVEZPUk0oV1BFKQor
I2luY2x1ZGUgPHdwZS9pbnB1dC5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpAQCAt
NDYsNiArNDgsOSBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChHZGtFdmVudCos
IFZlY3RvcjxXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ+JiYpOwogICAgIE5hdGl2ZVdlYlRvdWNoRXZl
bnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYpOwogICAgIGNvbnN0IEdka0V2ZW50KiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyAgICBOYXRpdmVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91
Y2hfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgY29uc3Qgc3RydWN0IHdw
ZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIG5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpIGNvbnN0
IHsgcmV0dXJuICZtX2ZhbGxiYWNrVG91Y2hQb2ludDsgfQogI2VuZGlmCiAKIHByaXZhdGU6CkBA
IC01NSw2ICs2MCw4IEBAIHByaXZhdGU6CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgR1VuaXF1
ZVB0cjxHZGtFdmVudD4gbV9uYXRpdmVFdmVudDsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBz
dHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyBtX2ZhbGxiYWNrVG91Y2hQb2ludDsKICNl
bmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldo
ZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgK
aW5kZXggNWRiMGJjZThmZWIuLjE1Zjk1ODY3MTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9OYXRpdmVXZWJXaGVlbEV2ZW50LmgKQEAgLTM4LDYgKzM4LDEwIEBAIE9CSkNfQ0xBU1MgTlNW
aWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZlbnQ7CiAjZW5kaWYKIAorI2lmIFBM
QVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudDsKKyNlbmRpZgorCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2ViV2hlZWxFdmVudCA6IHB1YmxpYyBXZWJX
aGVlbEV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVibGljOgogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpOwog
ICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQoR2RrRXZlbnQqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkK
KyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCosIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yKTsKICNlbmRpZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTU1
LDYgKzYxLDggQEAgcHVibGljOgogICAgIEdka0V2ZW50KiBuYXRpdmVFdmVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBj
b25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyNlbGlmIFBMQVRG
T1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG51
bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcAppbmRleCA1OGFhZWMzMWZlMy4uOWVmY2VmMjhlZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CkBAIC04MywxMSArODMsMTQgQEAKICNpZiBQTEFURk9STShJT1MpCiAjaW5jbHVkZSA8V2ViQ29y
ZS9GbG9hdFF1YWQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0luc3BlY3Rvck92ZXJsYXkuaD4KLSNp
bmNsdWRlIDxXZWJDb3JlL1Bhc3RlYm9hcmQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlbGVjdGlv
blJlY3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlZEJ1ZmZlci5oPgogI2VuZGlmIC8vIFBM
QVRGT1JNKElPUykKIAorI2lmIFBMQVRGT1JNKElPUykgfHwgUExBVEZPUk0oV1BFKQorI2luY2x1
ZGUgPFdlYkNvcmUvUGFzdGVib2FyZC5oPgorI2VuZGlmCisKICNpZiBFTkFCTEUoV0lSRUxFU1Nf
UExBWUJBQ0tfVEFSR0VUKQogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQuaD4KICNlbmRpZgpAQCAtMTQ3NCw2ICsxNDc3LDIzIEBAIGJvb2wgQXJndW1lbnRDb2Rl
cjxQYXN0ZWJvYXJkSW1hZ2U+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlciwgUGFzdGVib2FyZElt
YWdlJiBwCiAKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordm9pZCBBcmd1bWVudENvZGVy
PFBhc3RlYm9hcmRXZWJDb250ZW50Pjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFBh
c3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIGVuY29kZXIgPDwgY29udGVudC50
ZXh0OworICAgIGVuY29kZXIgPDwgY29udGVudC5tYXJrdXA7Cit9CisKK2Jvb2wgQXJndW1lbnRD
b2RlcjxQYXN0ZWJvYXJkV2ViQ29udGVudD46OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0
ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKGNv
bnRlbnQudGV4dCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlKGNvbnRlbnQubWFya3VwKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0
cnVlOworfQorI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwogdm9pZCBBcmd1bWVudENvZGVyPERp
Y3RhdGlvbkFsdGVybmF0aXZlPjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIsIGNvbnN0IERpY3Rh
dGlvbkFsdGVybmF0aXZlJiBkaWN0YXRpb25BbHRlcm5hdGl2ZSkKIHsKICAgICBlbmNvZGVyIDw8
IGRpY3RhdGlvbkFsdGVybmF0aXZlLnJhbmdlU3RhcnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNGE2MzY5YmEyOWYuLjQ5OTdhNjRhZGQ0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBA
IC0xMzEsNiArMTMxLDEyIEBAIHN0cnVjdCBTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M7CiB9CiAj
ZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBQ
YXN0ZWJvYXJkV2ViQ29udGVudHM7Cit9CisjZW5kaWYKKwogI2lmIEVOQUJMRShDT05URU5UX0ZJ
TFRFUklORykKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbnRlbnRGaWx0ZXJVbmJsb2Nr
SGFuZGxlcjsKQEAgLTQwOCw2ICs0MTQsMTMgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRD
b2RlcjxXZWJDb3JlOjpTb3VwTmV0d29ya1Byb3h5U2V0dGluZ3M+IHsKIH07CiAjZW5kaWYKIAor
I2lmIFBMQVRGT1JNKFdQRSkKK3RlbXBsYXRlPD4gc3RydWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29y
ZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQ+IHsKKyAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CisgICAgc3RhdGljIGJv
b2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYpOworfTsK
KyNlbmRpZgorCiB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OkNvbXBv
c2l0aW9uVW5kZXJsaW5lPiB7CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25z
dCBXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZSYpOwogICAgIHN0YXRpYyBib29sIGRlY29k
ZShEZWNvZGVyJiwgV2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmUmKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCmluZGV4IDc1MDZm
YWQ5ZDNhLi4wYjI4YzE1N2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0zNzYsNyArMzc2LDcgQEAKICAgICBtYWNybyhQ
aWN0b2dyYXBoRm9udEZhbWlseSwgcGljdG9ncmFwaEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5n
LCAiQXBwbGUgQ29sb3IgRW1vamkiLCAiIiwgIiIpIFwKICAgICBcCiAKLSNlbGlmIFBMQVRGT1JN
KEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogCiAjZGVmaW5lIEZP
Ul9FQUNIX1dFQktJVF9GT05UX0ZBTUlMWV9QUkVGRVJFTkNFKG1hY3JvKSBcCiAgICAgbWFjcm8o
U3RhbmRhcmRGb250RmFtaWx5LCBzdGFuZGFyZEZvbnRGYW1pbHksIFN0cmluZywgU3RyaW5nLCAi
VGltZXMiLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3Bl
L05hdGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi44NjgzYjgxMmYzYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTAsMCArMSwz
OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgor
CisjaW5jbHVkZSAiV2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitO
YXRpdmVXZWJLZXlib2FyZEV2ZW50OjpOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVf
aW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQorICAgIDogV2ViS2V5Ym9hcmRFdmVudChXZWJF
dmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQpKQoreworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUv
TmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYk1vdXNlRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5iNGQ5ZDQzZGU1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorCisjaW5jbHVkZSAi
V2ViRXZlbnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJNb3Vz
ZUV2ZW50OjpOYXRpdmVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQorICAgIDogV2ViTW91c2VFdmVudChX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIGRldmljZVNjYWxlRmFj
dG9yKSkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJUb3VjaEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzE0MTUxNTVjZGYKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYlRvdWNoRXZlbnRXUEUuY3BwCkBA
IC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNoRXZl
bnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworTmF0aXZlV2ViVG91Y2hFdmVudDo6TmF0aXZlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCisgICAg
OiBXZWJUb3VjaEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChldmVu
dCwgZGV2aWNlU2NhbGVGYWN0b3IpKQorICAgICwgbV9mYWxsYmFja1RvdWNoUG9pbnR7IHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX251bGwsIDAsIDAsIDAsIDAgfQoreworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBldmVudC0+dG91Y2hwb2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgYXV0byYgcG9pbnQgPSBldmVudC0+dG91Y2hwb2ludHNbaV07CisgICAgICAgIGlmIChwb2lu
dC50eXBlICE9IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpIHsKKyAgICAgICAgICAg
IG1fZmFsbGJhY2tUb3VjaFBvaW50ID0gcG9pbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJXaGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3Bw
CkBAIC0wLDAgKzEsNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVs
RXZlbnQuaCIKKworI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0
ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZl
V2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBk
ZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYldoZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8
V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9n
bGliL0dMaWJVdGlsaXRpZXMuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdGF0aWMgU3RyaW5nIGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAg
ICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7Cisg
ICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9y
eU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5k
YXRhKCkpKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdl
YktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vzc05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX0VYRUNfUEFUSCIpOworICAg
IGlmIChleGVjRGlyZWN0b3J5KSB7CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4
ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFtZSk7CisgICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nl
c3NQYXRoKSkKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBz
dGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoID0gZ2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBp
ZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0
aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChleGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUp
OworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1
cm4gcHJvY2Vzc1BhdGg7CisgICAgfQorCisgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9j
ZXNzTmFtZSk7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpCit7Cisg
ICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmlu
ZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJL
aXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0
aE9mTmV0d29ya1Byb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BF
TmV0d29ya1Byb2Nlc3MiKTsKK30KKworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3Ry
aW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5k
V2ViS2l0UHJvY2VzcygiV1BFRGF0YWJhc2VQcm9jZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dl
YkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFj
dG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc4ODdhOWY4
YWNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVu
dEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEsMjE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJFdmVudEZhY3RvcnkuaCIKKworI2luY2x1ZGUgPHdwZS9pbnB1dC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRlIDx3dGYvZ2xp
Yi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6
Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2
ZW50KiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVk
IGV2ZW50TW9kaWZpZXJzID0gZXZlbnQtPm1vZGlmaWVyczsKKworICAgIGlmIChldmVudE1vZGlm
aWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9jb250cm9sKQorICAgICAgICBtb2Rp
ZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRyb2xLZXk7CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYg
d3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3NoaWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0g
V2ViRXZlbnQ6OlNoaWZ0S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9r
ZXlib2FyZF9tb2RpZmllcl9hbHQpCisgICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0
S2V5OworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmll
cl9tZXRhKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKwor
c3RhdGljIFN0cmluZyBzaW5nbGVDaGFyYWN0ZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVD
aGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2luZ2xlX2NoYXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9p
bnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVD
aGFyYWN0ZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAg
IGdsb25nIGxlbmd0aDsKKyAgICBHVW5pcXVlUHRyPGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRf
dG9fdXRmMTYoJmV2ZW50LT51bmljb2RlLCAxLCAwLCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAg
aWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBTdHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAg
cmV0dXJuIFN0cmluZygpOworfQorCitzdGF0aWMgU3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JL
ZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBj
b25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lucHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVu
dCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAo
aWRlbnRpZmllcikKKyAgICAgICAgcmV0dXJuIFN0cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJl
dHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwgZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJL
ZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1
Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xl
Q2hhcmFjdGVyU3RyaW5nID0gc2luZ2xlQ2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQp
OworICAgIFN0cmluZyBpZGVudGlmaWVyU3RyaW5nID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2
ZW50KGV2ZW50KTsKKworICAgIHJldHVybiBXZWJLZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2Vk
ID8gV2ViRXZlbnQ6OktleURvd24gOiBXZWJFdmVudDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNo
YXJhY3RlclN0cmluZywgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAor
ICAgICAgICB3cGVfaW5wdXRfd2luZG93c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1
dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0b24oKSwgZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5
Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBmYWxzZSwKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQo
ZXZlbnQpLCBldmVudC0+dGltZSk7Cit9CisKK1dlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZl
bnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUg
PSBXZWJFdmVudDo6Tm9UeXBlOworICAgIHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNl
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOgorICAgICAgICB0eXBlID0gV2Vi
RXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9p
bnRlcl9ldmVudF90eXBlX2J1dHRvbjoKKyAgICAgICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdl
YkV2ZW50OjpNb3VzZURvd24gOiBXZWJFdmVudDo6TW91c2VVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0
b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1dHRvbjsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7
CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNl
IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfYnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQt
PmJ1dHRvbiA9PSAxKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1
dHRvbjsKKyAgICAgICAgZWxzZSBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAg
YnV0dG9uID0gV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2
ZW50LT5idXR0b24gPT0gMykKKyAgICAgICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1p
ZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9l
dmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKwor
ICAgIHVuc2lnbmVkIGNsaWNrQ291bnQgPSAodHlwZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/
IDEgOiAwOworCisgICAgLy8gRklYTUU6IFByb3BlciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJz
LiBkZWx0YVgvWS9aLiBDbGljayBjb3VudC4KKyAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlv
bihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2Fs
ZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlv
biwgcG9zaXRpb24sCisgICAgICAgIDAsIDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdl
YkV2ZW50OjpNb2RpZmllcnM+KDApLCBldmVudC0+dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhp
c19ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGRuJ3QgaGFyZC1jb2RlIHRoaXMuCisgICAgZW51bSBBeGlzIHsKKyAgICAgICAg
VmVydGljYWwsCisgICAgICAgIEhvcml6b250YWwsCisgICAgICAgIFNtb290aAorICAgIH07CisK
KyAgICBXZWJDb3JlOjpGbG9hdFNpemUgd2hlZWxUaWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNp
emUgZGVsdGE7CisgICAgc3dpdGNoIChldmVudC0+YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6
CisgICAgICAgIHdoZWVsVGlja3MgPSBXZWJDb3JlOjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVl
IC8gc3RkOjphYnMoZXZlbnQtPnZhbHVlKSk7CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsK
KyAgICAgICAgZGVsdGEuc2NhbGUoV2ViQ29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3Rl
cCgpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVl
bFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKGV2ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50
LT52YWx1ZSksIDApOworICAgICAgICBkZWx0YSA9IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRh
LnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgU21vb3RoOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6
RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1ZSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAg
ZGVsdGEgPSB3aGVlbFRpY2tzOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIH07CisKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+
eCwgZXZlbnQtPnkpOworICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7
CisgICAgcmV0dXJuIFdlYldoZWVsRXZlbnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9z
aXRpb24sCisgICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxC
eVBpeGVsV2hlZWxFdmVudCwgc3RhdGljX2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2
ZW50LT50aW1lKTsKK30KKworc3RhdGljIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpU
b3VjaFBvaW50U3RhdGUgc3RhdGVGb3JUb3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qg
c3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHBvaW50KQoreworICAgIGlmIChwb2lu
dC0+aWQgIT0gbWFpbkV2ZW50SWQpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3Jt
VG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworCisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkg
eworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0
dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2Fz
ZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHJldHVybiBXZWJL
aXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1
dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9y
bVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfdHlwZV9udWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJl
YWs7CisgICAgfTsKKworICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6
VG91Y2hTdGF0aW9uYXJ5OworfQorCitXZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3Jl
YXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxv
YXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2
ZW50OjpOb1R5cGU7CisgICAgc3dpdGNoIChldmVudC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3Vj
aFN0YXJ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX21vdGlvbjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAg
IHR5cGUgPSBXZWJFdmVudDo6VG91Y2hFbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3Bl
X2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgfQorCisgICAgVmVjdG9yPFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0
b3VjaFBvaW50czsKKyAgICB0b3VjaFBvaW50cy5yZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNo
cG9pbnRzX2xlbmd0aCk7CisKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRv
dWNocG9pbnRzX2xlbmd0aDsgKytpKSB7CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRv
dWNocG9pbnRzW2ldOworICAgICAgICBpZiAocG9pbnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgV2ViQ29y
ZTo6SW50UG9pbnQgcG9pbnRDb29yZGluYXRlczsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5z
Y2FsZSgxIC8gZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNr
ZWRBcHBlbmQoCisgICAgICAgICAgICBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2lu
dC5pZCwgc3RhdGVGb3JUb3VjaFBvaW50KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAg
ICAgICBwb2ludENvb3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAg
cmV0dXJuIFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50
OjpNb2RpZmllcnMoMCksIGV2ZW50LT50aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmM2ZGM4NDlhMDIKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAg
KzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2lmbmRlZiBXZWJFdmVudEZhY3RvcnlfaAorI2RlZmluZSBXZWJFdmVudEZhY3RvcnlfaAor
CisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKworc3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50Owor
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudDsKK3N0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQ7CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJFdmVudEZhY3RvcnkgeworcHVibGljOgorICAgIHN0YXRpYyBXZWJL
ZXlib2FyZEV2ZW50IGNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXli
b2FyZF9ldmVudCopOworICAgIHN0YXRpYyBXZWJNb3VzZUV2ZW50IGNyZWF0ZVdlYk1vdXNlRXZl
bnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgIHN0YXRpYyBXZWJXaGVlbEV2ZW50IGNyZWF0ZVdlYldoZWVsRXZlbnQoc3RydWN0
IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIHN0
YXRpYyBXZWJUb3VjaEV2ZW50IGNyZWF0ZVdlYlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90
b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViRXZlbnRGYWN0b3J5X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaAppbmRleCA3OGEzODA0MTU5ZS4uN2JmYTAzN2Rh
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3Qu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKQEAgLTU1
Nyw0ICs1NTcsOCBAQCBpbmxpbmUgUHJveHlpbmdSZWZQdHI8V2ViR3JhbW1hckRldGFpbD4gdG9B
UEkoY29uc3QgV2ViQ29yZTo6R3JhbW1hckRldGFpbCYgZ3JhbQogI2luY2x1ZGUgIldLQVBJQ2Fz
dEd0ay5oIgogI2VuZGlmCiAKKyNpZiBkZWZpbmVkKEJVSUxESU5HX1dQRV9fKQorI2luY2x1ZGUg
IldLQVBJQ2FzdFdQRS5oIgorI2VuZGlmCisKICNlbmRpZiAvLyBXS0FQSUNhc3RfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjBmOGExZTcxNzAwCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS0FQSUNhc3RXUEUu
aApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpZm5kZWYgV0tBUElDYXN0V1BFX2gKKyNkZWZpbmUgV0tBUElDYXN0V1BF
X2gKKworI2lmbmRlZiBXS0FQSUNhc3RfaAorI2Vycm9yICJQbGVhc2UgI2luY2x1ZGUgXCJXS0FQ
SUNhc3QuaFwiIGluc3RlYWQgb2YgdGhpcyBmaWxlIGRpcmVjdGx5LiIKKyNlbmRpZgorCisjaW5j
bHVkZSAiV0tWaWV3LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25h
bWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
V0tfQUREX0FQSV9NQVBQSU5HKFdLVmlld1JlZiwgV0tXUEU6OlZpZXcpCisKK2lubGluZSBXZWJD
b3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyB0b1ZpZXdTdGF0ZUZsYWdzKFdLVmlld1N0YXRlIHdr
Vmlld1N0YXRlKQoreworICAgIHVuc2lnbmVkIHZpZXdTdGF0ZUZsYWdzID0gMDsKKworICAgIGlm
ICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdTdGF0ZUlzSW5XaW5kb3cpCisgICAgICAgIHZpZXdTdGF0
ZUZsYWdzIHw9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzSW5XaW5kb3c7CisgICAgaWYgKHdr
Vmlld1N0YXRlICYga1dLVmlld1N0YXRlSXNWaXNpYmxlKQorICAgICAgICB2aWV3U3RhdGVGbGFn
cyB8PSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGU7CisKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3M+KHZpZXdTdGF0ZUZsYWdzKTsK
K30KKworfQorCisjZW5kaWYgLy8gV0tBUElDYXN0V1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uY2NiYjIzNzE1ZWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5jcHAKQEAgLTAsMCArMSw1OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV0tWaWV3LmgiCisKKyNpbmNsdWRlICJBUElQYWdlQ29uZmlndXJh
dGlvbi5oIgorI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0
LmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitX
S1ZpZXdSZWYgV0tWaWV3Q3JlYXRlKFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlv
bikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6OmNyZWF0ZShudWxscHRyLCAqdG9J
bXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dLVmlld1JlZiBXS1ZpZXdDcmVhdGVXaXRoVmll
d0JhY2tlbmQoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYgY29uZmlndXJhdGlvbikKK3sKKyAgICByZXR1cm4gdG9BUEkoV0tXUEU6OlZpZXc6
OmNyZWF0ZShiYWNrZW5kLCAqdG9JbXBsKGNvbmZpZ3VyYXRpb24pKSk7Cit9CisKK1dLUGFnZVJl
ZiBXS1ZpZXdHZXRQYWdlKFdLVmlld1JlZiB2aWV3KQoreworICAgIHJldHVybiB0b0FQSSgmdG9J
bXBsKHZpZXcpLT5wYWdlKCkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdTdGF0ZShXS1ZpZXdS
ZWYgdmlldywgV0tWaWV3U3RhdGUgdmlld1N0YXRlKQoreworICAgIHRvSW1wbCh2aWV3KS0+c2V0
Vmlld1N0YXRlKHRvVmlld1N0YXRlRmxhZ3Modmlld1N0YXRlKSk7Cit9CisKK3ZvaWQgV0tWaWV3
U2V0Vmlld0NsaWVudChXS1ZpZXdSZWYgdmlldywgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSogY2xp
ZW50KQoreworICAgIHRvSW1wbCh2aWV3KS0+aW5pdGlhbGl6ZUNsaWVudChjbGllbnQpOworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1OWVjMmI0NWI1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaApAQCAtMCwwICsx
LDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpZm5kZWYgV0tWaWV3X2gKKyNkZWZpbmUgV0tWaWV3X2gKKworI2luY2x1ZGUgPFdlYktpdC9X
S0Jhc2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tHZW9tZXRyeS5oPgorCisjaWZkZWYgX19jcGx1
c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK3N0cnVjdCB3cGVfdmlld19iYWNrZW5kOwor
CitXS19FWFBPUlQgV0tWaWV3UmVmIFdLVmlld0NyZWF0ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVm
KTsKK1dLX0VYUE9SVCBXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiwgV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CisKK1dLX0VYUE9S
VCBXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1ZpZXdSZWYpOworCitlbnVtIHsKKyAgICBrV0tW
aWV3U3RhdGVJc0luV2luZG93ID0gMSA8PCAwLAorICAgIGtXS1ZpZXdTdGF0ZUlzVmlzaWJsZSA9
IDEgPDwgMSwKK307Cit0eXBlZGVmIHVpbnQzMl90IFdLVmlld1N0YXRlOworCitXS19FWFBPUlQg
dm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmLCBXS1ZpZXdTdGF0ZSk7CisKK3R5cGVk
ZWYgdm9pZCAoKldLVmlld0ZyYW1lRGlzcGxheWVkKShXS1ZpZXdSZWYgdmlldywgY29uc3Qgdm9p
ZCogY2xpZW50SW5mbyk7CisKK3R5cGVkZWYgc3RydWN0IFdLVmlld0NsaWVudEJhc2UgeworICAg
IGludCB2ZXJzaW9uOworICAgIGNvbnN0IHZvaWQqIGNsaWVudEluZm87Cit9IFdLVmlld0NsaWVu
dEJhc2U7CisKK3R5cGVkZWYgc3RydWN0IFdLVmlld0NsaWVudFYwIHsKKyAgICBXS1ZpZXdDbGll
bnRCYXNlIGJhc2U7CisKKyAgICAvLyB2ZXJzaW9uIDAKKyAgICBXS1ZpZXdGcmFtZURpc3BsYXll
ZCBmcmFtZURpc3BsYXllZDsKK30gV0tWaWV3Q2xpZW50VjA7CisKK1dLX0VYUE9SVCB2b2lkIFdL
Vmlld1NldFZpZXdDbGllbnQoV0tWaWV3UmVmLCBjb25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisK
KyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisKKyNlbmRpZiAvLyBXS1ZpZXdfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5hNDA0ZWM1ZDliNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApAQCAtMCwwICsxLDU1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorCisjaW5j
bHVkZSAiQXR0YWNobWVudC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5TWVz
c2FnZXMuaCIKKyNpbmNsdWRlICJXUEVWaWV3LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wu
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDx3cGUvdmlldy1iYWNr
ZW5kLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXco
dmlldykKK3sKK30KKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6On5Db21wb3NpdGluZ01hbmFn
ZXJQcm94eSgpID0gZGVmYXVsdDsKKwordm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6aW5p
dGlhbGl6ZSgpCit7CisgICAgbV92aWV3LnBhZ2UoKS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIG1fdmlldy5wYWdlKCkucGFnZUlEKCksICp0aGlzKTsKK30KKwor
dm9pZCBDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6ZXN0YWJsaXNoQ29ubmVjdGlvbihJUEM6OkF0
dGFjaG1lbnQmIGNvbm5lY3Rpb25IYW5kbGUpCit7CisgICAgY29ubmVjdGlvbkhhbmRsZSA9IElQ
Qzo6QXR0YWNobWVudCh3cGVfdmlld19iYWNrZW5kX2dldF9yZW5kZXJlcl9ob3N0X2ZkKG1fdmll
dy5iYWNrZW5kKCkpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYjg5NjA5ZDNmYTUK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDb21wb3NpdGluZ01hbmFn
ZXJQcm94eV9oCisjZGVmaW5lIENvbXBvc2l0aW5nTWFuYWdlclByb3h5X2gKKworI2luY2x1ZGUg
Ik1lc3NhZ2VSZWNlaXZlci5oIgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1l
c3BhY2UgSVBDIHsKK2NsYXNzIEF0dGFjaG1lbnQ7Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7Citj
bGFzcyBWaWV3OworfQorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgQ29tcG9zaXRpbmdN
YW5hZ2VyUHJveHkgZmluYWwgOiBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgeworICAgIFdU
Rl9NQUtFX05PTkNPUFlBQkxFKENvbXBvc2l0aW5nTWFuYWdlclByb3h5KTsKK3B1YmxpYzoKKyAg
ICBDb21wb3NpdGluZ01hbmFnZXJQcm94eShXS1dQRTo6VmlldyYpOworICAgIHZpcnR1YWwgfkNv
bXBvc2l0aW5nTWFuYWdlclByb3h5KCk7CisKKyAgICB2b2lkIGluaXRpYWxpemUoKTsKKworcHJp
dmF0ZToKKyAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgorICAgIHZpcnR1YWwgdm9pZCBkaWRS
ZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZSB7
IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JiByZXBseUVu
Y29kZXIpIG92ZXJyaWRlOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKElQQzo6QXR0
YWNobWVudCYpOworCisgICAgV0tXUEU6OlZpZXcmIG1fdmlldzsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHlfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21w
b3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMTlhMDA1NTc3NzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGluZ01hbmFnZXJQcm94eS5tZXNzYWdlcy5p
bgpAQCAtMCwwICsxLDI1IEBACisjIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIwor
IyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAor
IyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCittZXNzYWdlcyAtPiBDb21w
b3NpdGluZ01hbmFnZXJQcm94eSB7CisgICAgRXN0YWJsaXNoQ29ubmVjdGlvbigpIC0+IChJUEM6
OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZSkKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVjNjBjNDZjNzkzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQ
RS5jcHAKQEAgLTAsMCArMSw5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRHJhd2luZ0Fy
ZWFQcm94eVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFNZXNzYWdlcy5oIgorI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK0Ry
YXdpbmdBcmVhUHJveHlXUEU6OkRyYXdpbmdBcmVhUHJveHlXUEUoV2ViUGFnZVByb3h5JiBwYWdl
KQorICAgIDogRHJhd2luZ0FyZWFQcm94eShEcmF3aW5nQXJlYVR5cGVXUEUsIHBhZ2UpCit7Cit9
CisKK0RyYXdpbmdBcmVhUHJveHlXUEU6On5EcmF3aW5nQXJlYVByb3h5V1BFKCkKK3sKK30KKwor
dm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpz
aXplRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAobV93ZWJQYWdlUHJveHkuaXNWYWxpZCgpKQorICAg
ICAgICBtX3dlYlBhZ2VQcm94eS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6
OlVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKDAsIGZhbHNlLCBtX3dlYlBhZ2VQcm94eS5kZXZpY2VT
Y2FsZUZhY3RvcigpLCBtX3NpemUsIG1fc2Nyb2xsT2Zmc2V0KSwgbV93ZWJQYWdlUHJveHkucGFn
ZUlEKCkpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRpc3BhdGNoQWZ0ZXJFbnN1
cmluZ0RyYXdpbmcoc3RkOjpmdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2Fs
bGJhY2tGdW5jdGlvbikKK3sKKyAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgewor
ICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52
YWxpZGF0ZWQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigp
LmRpc3BhdGNoKFtjYWxsYmFja0Z1bmN0aW9uXSB7IGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tC
YXNlOjpFcnJvcjo6Tm9uZSk7IH0pOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OnVw
ZGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmRp
ZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNv
bnN0IFVwZGF0ZUluZm8mLCBjb25zdCBMYXllclRyZWVDb250ZXh0JikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKK3sKKyAgICBBU1NFUlQoIWJhY2tpbmdT
dG9yZVN0YXRlSUQpOworCisgICAgbV9sYXllclRyZWVDb250ZXh0ID0gbGF5ZXJUcmVlQ29udGV4
dDsKKyAgICBtX3dlYlBhZ2VQcm94eS5lbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGxh
eWVyVHJlZUNvbnRleHQpOworfQorCit2b2lkIERyYXdpbmdBcmVhUHJveHlXUEU6OmV4aXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25z
dCBVcGRhdGVJbmZvJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIERyYXdp
bmdBcmVhUHJveHlXUEU6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90
IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iMDMwMjA4NTgzYgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVh
UHJveHlXUEUuaApAQCAtMCwwICsxLDYwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRHJhd2luZ0FyZWFQcm94eVdQRV9oCisjZGVm
aW5lIERyYXdpbmdBcmVhUHJveHlXUEVfaAorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5o
IgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgRHJhd2luZ0FyZWFQcm94eVdQRSBmaW5hbCA6IHB1YmxpYyBEcmF3aW5nQXJlYVBy
b3h5IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQ
cm94eSYpOworICAgIHZpcnR1YWwgfkRyYXdpbmdBcmVhUHJveHlXUEUoKTsKKworcHJpdmF0ZToK
KyAgICAvLyBEcmF3aW5nQXJlYVByb3h5CisgICAgdm9pZCBkZXZpY2VTY2FsZUZhY3RvckRpZENo
YW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgc2l6ZURpZENoYW5nZSgpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhzdGQ6OmZ1bmN0aW9uPHZvaWQgKENh
bGxiYWNrQmFzZTo6RXJyb3IpPikgb3ZlcnJpZGU7CisKKyAgICAvLyBJUEMgbWVzc2FnZSBoYW5k
bGVycworICAgIHZvaWQgdXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0
IFVwZGF0ZUluZm8mKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0
YXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mLCBjb25z
dCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBlbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IExheWVy
VHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKyAgICB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0
aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikg
b3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50
NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CisKKyAgICAvLyBUaGUgY3VycmVudCBsYXllciB0cmVlIGNvbnRleHQuCisgICAgTGF5ZXJU
cmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7Cit9OworCit9CisKKworI2VuZGlmIC8vIERy
YXdpbmdBcmVhUHJveHlXUEVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvUGFnZUNsaWVudEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi44NGUxMDJlY2YxYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdp
bmdBcmVhUHJveHlXUEUuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5j
bHVkZSAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250
cm9sbGVyLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51
UHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xp
ZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXco
dmlldykKKyAgICAsIG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxT
Y3JvbGxHZXN0dXJlQ29udHJvbGxlcj4oKSkKK3sKK30KKworUGFnZUNsaWVudEltcGw6On5QYWdl
Q2xpZW50SW1wbCgpID0gZGVmYXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJv
eHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJD
b3JlOjpSZWdpb24mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xs
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJv
b2wpCit7Cit9CisKK1dlYkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3Jv
bGxQb3NpdGlvbigpCit7CisgICAgcmV0dXJuIHsgfTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQ
YWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQoreworICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOwor
fQorCitib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJl
dHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJ
c0FjdGl2ZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7Cisg
ICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oklz
Rm9jdXNlZDsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7Cisg
ICAgcmV0dXJuIG1fdmlldy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6Oklz
VmlzaWJsZTsKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQorewor
ICAgIHJldHVybiBtX3ZpZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJ
c0luV2luZG93OworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudElt
cGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3Ry
aW5nJiwgYm9vbCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRS
ZXF1ZXN0KERvd25sb2FkUHJveHkqKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRD
aGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29s
KQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRp
ZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5k
UHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKK3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1w
bDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworICAgIHJldHVybiBm
YWxzZTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQ
cm94eTo6VW5kb09yUmVkbykKK3sKK30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJ
bXBsOjpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3Qp
Cit7CisgICAgcmV0dXJuIHJlY3Q7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50
SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkK
K3sKKyAgICByZXR1cm4gcmVjdDsKK30KKworV2ViQ29yZTo6SW50UG9pbnQgUGFnZUNsaWVudElt
cGw6OnNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQorewor
ICAgIHJldHVybiBwb2ludDsKK30KKworV2ViQ29yZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6
cm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIHJl
dHVybiByZWN0OworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNv
bnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkb25lV2l0aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91
Y2hFdmVudCwgYm9vbCB3YXNFdmVudEhhbmRsZWQpCit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxl
ZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqIHRvdWNoUG9pbnQgPSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2lu
dCgpOworICAgIGlmICh0b3VjaFBvaW50LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90
eXBlX251bGwpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFn
ZSgpOworCisgICAgaWYgKG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRv
dWNoUG9pbnQpKSB7CisgICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2
ZW50ID0gbV9zY3JvbGxHZXN0dXJlQ29udHJvbGxlci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlm
IChheGlzRXZlbnQtPnR5cGUgIT0gd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAg
ICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVu
dChheGlzRXZlbnQsIG1fdmlldy5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBv
aW50ZXJFdmVudHsKKyAgICAgICAgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9udWxsLCB0
b3VjaFBvaW50LT50aW1lLAorICAgICAgICB0b3VjaFBvaW50LT54LCB0b3VjaFBvaW50LT55LAor
ICAgICAgICAxLCAwCisgICAgfTsKKworICAgIHN3aXRjaCAodG91Y2hQb2ludC0+dHlwZSkgewor
ICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcG9pbnRl
ckV2ZW50LnR5cGUgPSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjsKKyAgICAg
ICAgcG9pbnRlckV2ZW50LnN0YXRlID0gMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVf
aW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9tb3Rpb246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBl
ID0gd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9tb3Rpb247CisgICAgICAgIHBvaW50ZXJF
dmVudC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNo
X2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0gd3BlX2lucHV0X3Bv
aW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVudC5zdGF0ZSA9IDA7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9u
dWxsOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIHBhZ2UuaGFuZGxlTW91c2VFdmVudChOYXRpdmVXZWJNb3VzZUV2ZW50KCZwb2lu
dGVyRXZlbnQsIHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJX
aGVlbEV2ZW50JikKK3sKK30KKworUmVmUHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkoV2ViUGFnZVByb3h5JikKK3sKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorc3RkOjp1bmlxdWVfcHRy
PFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb250ZXh0TWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBV
c2VyRGF0YSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRy
ZWVDb250ZXh0JikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7Cit9CisK
K3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVu
dFByb3ZpZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwg
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6Om5h
dmlnYXRpb25HZXN0dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKQorewor
fQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEVuZCgpCit7Cit9
CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJl
bW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30K
Kwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUoKQoreworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZy
YW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZWZWaWV3KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGVyZWZWaWV3KCkK
K3sKK30KKworI2lmIEVOQUJMRShWSURFTykKK2Jvb2wgUGFnZUNsaWVudEltcGw6OmRlY2lkZVBv
bGljeUZvckluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QoSW5zdGFs
bE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCYpCit7CisgICAgcmV0dXJuIGZh
bHNlOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlc3RvcmVTY3JvbGxQ
b3NpdGlvbigpCit7Cit9CisKK1dlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24g
UGFnZUNsaWVudEltcGw6OnVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKQoreworICAgIHJl
dHVybiBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uOjpMVFI7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1BhZ2VDbGllbnRJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjI4ZWQ4MzNkMmViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvUGFnZUNsaWVudEltcGwuaApAQCAtMCwwICsxLDEzMCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VDbGll
bnRJbXBsX2gKKyNkZWZpbmUgUGFnZUNsaWVudEltcGxfaAorCisjaW5jbHVkZSAiUGFnZUNsaWVu
dC5oIgorCituYW1lc3BhY2UgV0tXUEUgeworY2xhc3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2NsYXNzIFNjcm9sbEdlc3R1cmVDb250cm9sbGVyOworCitjbGFzcyBQYWdlQ2xp
ZW50SW1wbCBmaW5hbCA6IHB1YmxpYyBQYWdlQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBQYWdlQ2xp
ZW50SW1wbChXS1dQRTo6VmlldyYpOworICAgIHZpcnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CisK
K3ByaXZhdGU6CisgICAgLy8gUGFnZUNsaWVudAorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRy
PERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24m
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdFNjcm9sbChjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sKSBvdmVycmlkZTsK
KyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZpZXdTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgYm9vbCBpc1ZpZXdXaW5kb3dBY3RpdmUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIGJv
b2wgaXNWaWV3Rm9jdXNlZCgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNp
YmxlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGlzVmlld0luV2luZG93KCkgb3ZlcnJp
ZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZEV4aXQoKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIHBhZ2VDbG9zZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgcHJlZmVyZW5jZXNE
aWRDaGFuZ2UoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgdG9vbFRpcENoYW5nZWQoY29u
c3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQg
ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBTdHJpbmcmLCBib29sKSBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqKSBv
dmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBX
ZWJDb3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29y
KGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRD
dXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2
b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0
dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlckVkaXRDb21t
YW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09y
UmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGNsZWFyQWxsRWRpdENvbW1hbmRzKCkg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5k
b09yUmVkbykgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGV4ZWN1dGVVbmRvUmVkbyhXZWJQ
YWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpG
bG9hdFJlY3QgY29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0Jikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCBXZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNw
YWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2Vi
Q29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCByb290Vmlld1RvU2NyZWVu
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBk
b25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBib29sKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZG9uZVdpdGhUb3VjaEV2ZW50KGNvbnN0IE5hdGl2ZVdl
YlRvdWNoRXZlbnQmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpIG92ZXJy
aWRlOworCisgICAgdmlydHVhbCBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVw
TWVudVByb3h5KFdlYlBhZ2VQcm94eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQorICAgIHZpcnR1YWwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IGNy
ZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUGFnZVByb3h5JiwgY29uc3QgQ29udGV4dE1lbnVDb250
ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZpcnR1
YWwgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNv
bnRleHQmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZXhpdEFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKSBvdmVycmlkZTsKKworICAg
IHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRl
cihjb25zdCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKSBvdmVycmlkZTsKKwor
ICAgIHZpcnR1YWwgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7Cisg
ICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0dXJlV2lsbEVuZChib29sLCBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIG5hdmlnYXRpb25HZXN0
dXJlRGlkRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgd2lsbFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtJikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFJlbW92ZU5hdmlnYXRpb25HZXN0
dXJlU25hcHNob3QoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaXJzdFZpc3Vh
bGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZv
aWQgZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBk
aWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRp
b25UeXBlKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5k
Q29sb3IoKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCByZWZWaWV3KCkgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisjaWYgRU5BQkxFKFZJ
REVPKQorICAgIHZpcnR1YWwgYm9vbCBkZWNpZGVQb2xpY3lGb3JJbnN0YWxsTWlzc2luZ01lZGlh
UGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVybWlz
c2lvblJlcXVlc3QmKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgdmlydHVhbCB2b2lkIGRpZFJl
c3RvcmVTY3JvbGxQb3NpdGlvbigpIG92ZXJyaWRlOworCisgICAgdmlydHVhbCBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24o
KSBvdmVycmlkZTsKKworICAgIHZvaWQgZGlkQ2hhbmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3Zl
cnJpZGUgeyB9CisKKyAgICBXS1dQRTo6VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVf
cHRyPFNjcm9sbEdlc3R1cmVDb250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOwor
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQYWdlQ2xpZW50SW1wbF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0
dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3Jv
bGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsODAg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisK
KyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Ym9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQoY29uc3Qgc3RydWN0IHdw
ZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7CisgICAgc3dpdGNoICh0b3Vj
aFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9kb3du
OgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1lOworICAgICAgICBtX3N0
YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0LnkgPSB0b3VjaFBvaW50LT55
OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAgICAgICAgbV9vZmZzZXQu
eSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYgKCFtX2hhbmRsaW5nKSB7
CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQtPnggLSBtX3N0YXJ0Lng7
CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQtPnkgLSBtX3N0YXJ0Lnk7
CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBvaW50LT50aW1lIC0gbV9z
dGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGluZVN0ZXAgPSBXZWJDb3Jl
OjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgICAgICBtX2hhbmRsaW5n
ID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAorICAgICAgICAgICAgICAg
IHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAKKyAgICAgICAgICAgICAg
ICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAgIGlmIChtX2hhbmRsaW5n
KSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAgICAgICAgICB3cGVfaW5w
dXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAgICB0b3VjaFBvaW50LT50
aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAgICAyLCAodG91Y2hQb2lu
dC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAgICAgICAgbV9vZmZzZXQu
eCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55ID0gdG91Y2hQb2ludC0+
eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgorICAgICAgICBp
ZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9IGZhbHNlOworICAgICAg
ICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3BlX2lucHV0X2F4aXNfZXZl
bnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAsIDAKKyAgICAgICAgICAg
IH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5o
CkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUvaW5wdXQuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlciB7CitwdWJs
aWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1bHQ7CisKKyAgICBzdHJ1
Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0dXJuICZtX2F4aXNFdmVu
dDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNo
X2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7CisgICAgICAgIHVpbnQzMl90
IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5
IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGludDMyX3Qg
eCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9vZmZzZXQ7CisKKyAg
ICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19l
dmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uN2Y5ZjEyY2QyZDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMCwwICsxLDE1MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisj
aW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYlRvdWNo
RXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCisjaW5jbHVkZSAiV2Vi
UGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKKyNpbmNsdWRlIDx3cGUv
dmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBX
S1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQsIGNv
bnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0aW9uKQorICAgIDogbV9w
YWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KCp0aGlzKSkKKyAgICAs
IG1fc2l6ZXsgODAwLCA2MDAgfQorICAgICwgbV92aWV3U3RhdGVGbGFncyhXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9j
dXNlZCB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZSB8IFdlYkNvcmU6OkFjdGl2
aXR5U3RhdGU6OklzSW5XaW5kb3cpCisgICAgLCBtX2NvbXBvc2l0aW5nTWFuYWdlclByb3h5KCp0
aGlzKQoreworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGJhc2VDb25maWd1cmF0aW9uLmNvcHko
KTsKKyAgICBhdXRvKiBwcmVmZXJlbmNlcyA9IGNvbmZpZ3VyYXRpb24tPnByZWZlcmVuY2VzKCk7
CisgICAgaWYgKCFwcmVmZXJlbmNlcyAmJiBjb25maWd1cmF0aW9uLT5wYWdlR3JvdXAoKSkgewor
ICAgICAgICBwcmVmZXJlbmNlcyA9ICZjb25maWd1cmF0aW9uLT5wYWdlR3JvdXAoKS0+cHJlZmVy
ZW5jZXMoKTsKKyAgICAgICAgY29uZmlndXJhdGlvbi0+c2V0UHJlZmVyZW5jZXMocHJlZmVyZW5j
ZXMpOworICAgIH0KKyAgICBpZiAocHJlZmVyZW5jZXMpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMt
PnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKHRydWUpOworICAgICAgICBwcmVmZXJl
bmNlcy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7CisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5j
ZXMtPnNldFdlYkdMRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldFdlYlNl
Y3VyaXR5RW5hYmxlZChmYWxzZSk7CisgICAgICAgIHByZWZlcmVuY2VzLT5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKHRydWUpOworICAgIH0KKworICAgIGF1dG8qIHBvb2wgPSBjb25maWd1cmF0
aW9uLT5wcm9jZXNzUG9vbCgpOworICAgIG1fcGFnZVByb3h5ID0gcG9vbC0+Y3JlYXRlV2ViUGFn
ZSgqbV9wYWdlQ2xpZW50LCBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKKworICAgIG1fYmFja2Vu
ZCA9IGJhY2tlbmQ7CisgICAgaWYgKCFtX2JhY2tlbmQpCisgICAgICAgIG1fYmFja2VuZCA9IHdw
ZV92aWV3X2JhY2tlbmRfY3JlYXRlKCk7CisgICAgbV9jb21wb3NpdGluZ01hbmFnZXJQcm94eS5p
bml0aWFsaXplKCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV92aWV3X2JhY2tlbmRfY2xpZW50
IHNfYmFja2VuZENsaWVudCA9IHsKKyAgICAgICAgLy8gc2V0X3NpemUKKyAgICAgICAgW10odm9p
ZCogZGF0YSwgdWludDMyX3Qgd2lkdGgsIHVpbnQzMl90IGhlaWdodCkKKyAgICAgICAgeworICAg
ICAgICAgICAgYXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAg
ICAgICAgICAgIHZpZXcuc2V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKHdpZHRoLCBoZWlnaHQpKTsK
KyAgICAgICAgfSwKKyAgICAgICAgLy8gZnJhbWVfZGlzcGxheWVkCisgICAgICAgIFtdKHZvaWQq
IGRhdGEpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRf
Y2FzdDxWaWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2aWV3LmZyYW1lRGlzcGxheWVkKCk7Cisg
ICAgICAgIH0KKyAgICB9OworICAgIHdwZV92aWV3X2JhY2tlbmRfc2V0X2JhY2tlbmRfY2xpZW50
KG1fYmFja2VuZCwgJnNfYmFja2VuZENsaWVudCwgdGhpcyk7CisKKyAgICBzdGF0aWMgc3RydWN0
IHdwZV92aWV3X2JhY2tlbmRfaW5wdXRfY2xpZW50IHNfaW5wdXRDbGllbnQgPSB7CisgICAgICAg
IC8vIGhhbmRsZV9rZXlib2FyZF9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qg
d3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKKyAgICAgICAgeworICAgICAgICAgICAg
YXV0byYgdmlldyA9ICpyZWludGVycHJldF9jYXN0PFZpZXcqPihkYXRhKTsKKyAgICAgICAgICAg
IHZpZXcucGFnZSgpLmhhbmRsZUtleWJvYXJkRXZlbnQoV2ViS2l0OjpOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhhbmRsZV9wb2ludGVyX2V2
ZW50CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVu
dCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJl
dF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVNb3Vz
ZUV2ZW50KFdlYktpdDo6TmF0aXZlV2ViTW91c2VFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhhbmRsZV9heGlzX2V2ZW50Cisg
ICAgICAgIFtdKHZvaWQqIGRhdGEsIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJldF9jYXN0PFZp
ZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVXaGVlbEV2ZW50KFdl
YktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2FsZUZhY3Rvcigp
KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGhhbmRsZV90b3VjaF9ldmVudAorICAgICAgICBb
XSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCkKKyAgICAg
ICAgeworICAgICAgICAgICAgYXV0byYgcGFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRh
dGEpLT5wYWdlKCk7CisgICAgICAgICAgICBwYWdlLmhhbmRsZVRvdWNoRXZlbnQoV2ViS2l0OjpO
YXRpdmVXZWJUb3VjaEV2ZW50KGV2ZW50LCBwYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpKTsKKyAg
ICAgICAgfSwKKyAgICB9OworICAgIHdwZV92aWV3X2JhY2tlbmRfc2V0X2lucHV0X2NsaWVudCht
X2JhY2tlbmQsICZzX2lucHV0Q2xpZW50LCB0aGlzKTsKKworICAgIHdwZV92aWV3X2JhY2tlbmRf
aW5pdGlhbGl6ZShtX2JhY2tlbmQpOworCisgICAgbV9wYWdlUHJveHktPmluaXRpYWxpemVXZWJQ
YWdlKCk7Cit9CisKK1ZpZXc6On5WaWV3KCkKK3sKKyAgICB3cGVfdmlld19iYWNrZW5kX2Rlc3Ry
b3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBWaWV3Ojppbml0aWFsaXplQ2xpZW50KGNvbnN0IFdL
Vmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICBtX2NsaWVudC5pbml0aWFsaXplKGNsaWVu
dCk7Cit9CisKK3ZvaWQgVmlldzo6ZnJhbWVEaXNwbGF5ZWQoKQoreworICAgIG1fY2xpZW50LmZy
YW1lRGlzcGxheWVkKCp0aGlzKTsKK30KKwordm9pZCBWaWV3OjpzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpCit7CisgICAgbV9zaXplID0gc2l6ZTsKKyAgICBpZiAobV9wYWdl
UHJveHktPmRyYXdpbmdBcmVhKCkpCisgICAgICAgIG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgp
LT5zZXRTaXplKHNpemUsIFdlYkNvcmU6OkludFNpemUoKSwgV2ViQ29yZTo6SW50U2l6ZSgpKTsK
K30KKwordm9pZCBWaWV3OjpzZXRWaWV3U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6Rmxh
Z3MgZmxhZ3MpCit7CisgICAgc3RhdGljIGNvbnN0IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZs
YWdzIGRlZmF1bHRGbGFncyA9IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OldpbmRvd0lzQWN0aXZl
IHwgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6SXNGb2N1c2VkOworCisgICAgV2ViQ29yZTo6QWN0
aXZpdHlTdGF0ZTo6RmxhZ3MgY2hhbmdlZEZsYWdzID0gbV92aWV3U3RhdGVGbGFncyBeIChkZWZh
dWx0RmxhZ3MgfCBmbGFncyk7CisgICAgbV92aWV3U3RhdGVGbGFncyA9IGRlZmF1bHRGbGFncyB8
IGZsYWdzOworCisgICAgaWYgKGNoYW5nZWRGbGFncykKKyAgICAgICAgbV9wYWdlUHJveHktPmFj
dGl2aXR5U3RhdGVEaWRDaGFuZ2UoY2hhbmdlZEZsYWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V0tXUEUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZp
ZXcuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMzczNmU5M2NjNTAKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmgKQEAgLTAs
MCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIFdQRVZpZXdfaAorI2RlZmluZSBXUEVWaWV3X2gKKworI2luY2x1ZGUgIkFQ
SU9iamVjdC5oIgorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgiCisjaW5jbHVk
ZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRl
ICJXUEVWaWV3Q2xpZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9BY3Rpdml0eVN0YXRlLmg+Cisj
aW5jbHVkZSA8bWVtb3J5PgorI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKworc3RydWN0IHdwZV92
aWV3X2JhY2tlbmQ7CisKK25hbWVzcGFjZSBXZWJLaXQgeworY2xhc3MgV2ViUGFnZUdyb3VwOwor
Y2xhc3MgV2ViUHJvY2Vzc1Bvb2w7Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK2NsYXNzIFZp
ZXcgOiBwdWJsaWMgQVBJOjpPYmplY3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpWaWV3PiB7Citw
dWJsaWM6CisgICAgc3RhdGljIFZpZXcqIGNyZWF0ZShzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCog
YmFja2VuZCwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiBuZXcgVmlldyhiYWNrZW5kLCBjb25maWd1cmF0aW9uKTsKKyAg
ICB9CisKKyAgICAvLyBDbGllbnQgbWV0aG9kcworICAgIHZvaWQgaW5pdGlhbGl6ZUNsaWVudChj
b25zdCBXS1ZpZXdDbGllbnRCYXNlKik7CisgICAgdm9pZCBmcmFtZURpc3BsYXllZCgpOworCisg
ICAgV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UoKSB7IHJldHVybiAqbV9wYWdlUHJveHk7IH0K
KworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kKCkgeyByZXR1cm4gbV9iYWNr
ZW5kOyB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKCkgY29uc3QgeyByZXR1
cm4gbV9zaXplOyB9CisKKyAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyB2aWV3U3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdTdGF0ZUZsYWdzOyB9CisgICAgdm9pZCBzZXRWaWV3
U3RhdGUoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3MpOworCitwcml2YXRlOgorICAgIFZp
ZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9u
Jik7CisgICAgdmlydHVhbCB+VmlldygpOworCisgICAgdm9pZCBzZXRTaXplKGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHNpemUpOworCisgICAgVmlld0NsaWVudCBtX2NsaWVudDsKKworICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsPiBtX3BhZ2VDbGllbnQ7CisgICAg
UmVmUHRyPFdlYktpdDo6V2ViUGFnZVByb3h5PiBtX3BhZ2VQcm94eTsKKyAgICBXZWJDb3JlOjpJ
bnRTaXplIG1fc2l6ZTsKKyAgICBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFncyBtX3ZpZXdT
dGF0ZUZsYWdzOworCisgICAgV2ViS2l0OjpDb21wb3NpdGluZ01hbmFnZXJQcm94eSBtX2NvbXBv
c2l0aW5nTWFuYWdlclByb3h5OworICAgIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kKiBtX2JhY2tl
bmQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXS1dQRQorCisjZW5kaWYgLy8gV1BFVmlld19oCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3Q2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45ZjFmMzdkOWU3YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdD
bGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldQRVZp
ZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldQRVZpZXcuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKKyNpbmNsdWRlICJXS0Jhc2UuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworbmFt
ZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50OjpmcmFtZURpc3BsYXllZChWaWV3JiB2
aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3BsYXllZCkKKyAgICAgICAgbV9jbGll
bnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2NsaWVudC5iYXNlLmNsaWVudEluZm8p
OworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi44NGRmZDViMTU1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApAQCAtMCwwICsxLDUwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV1BF
Vmlld0NsaWVudF9oCisjZGVmaW5lIFdQRVZpZXdDbGllbnRfaAorCisjaW5jbHVkZSAiQVBJQ2xp
ZW50LmgiCisjaW5jbHVkZSA8V2ViS2l0L1dLVmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3Rl
bXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlw
ZWRlZiBzdGQ6OnR1cGxlPFdLVmlld0NsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVz
cGFjZSBXS1dQRSB7CisKK2NsYXNzIFZpZXc7CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMg
QVBJOjpDbGllbnQ8V0tWaWV3Q2xpZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVE
aXNwbGF5ZWQoVmlldyYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKworI2VuZGlm
IC8vIFdQRVZpZXdDbGllbnRfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnht
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTgyMDkyYmJmZWEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQy
SW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbApAQCAtMCwwICsxLDYgQEAKKzw/eG1sIHZlcnNp
b249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+Cis8Z3Jlc291cmNlcz4KKyAgPGdyZXNvdXJjZSBw
cmVmaXg9Ii9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlIj4KKyAgICA8ZmlsZT5pbnNw
ZWN0b3JQYWdlSW5kZXguaHRtbDwvZmlsZT4KKyAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCAyN2JlYzM2MjMxNS4uZmQ4NDhjY2VkMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9DaGlsZFByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTUsNyArNTUsNyBAQCB2b2lkIENoaWxkUHJv
Y2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9u
cyYgbGF1bmNoTwogICAgIGlmIChtX2Fsd2F5c1J1bnNBdEJhY2tncm91bmRQcmlvcml0eSkKICAg
ICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoQVNDSUlMaXRl
cmFsKCJhbHdheXMtcnVucy1hdC1iYWNrZ3JvdW5kLXByaW9yaXR5IiksICJ0cnVlIik7CiAKLSNp
ZiBFTkFCTEUoREVWRUxPUEVSX01PREUpICYmIFBMQVRGT1JNKEdUSykKKyNpZiBFTkFCTEUoREVW
RUxPUEVSX01PREUpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkpCiAgICAgY29u
c3QgY2hhciogdmFybmFtZTsKICAgICBzd2l0Y2ggKGxhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUp
IHsKICAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYjoKQEAgLTc5LDcg
Kzc5LDcgQEAgdm9pZCBDaGlsZFByb2Nlc3NQcm94eTo6Z2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNz
TGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGxhdW5jaE8KICAgICBjb25zdCBjaGFyKiBwcm9jZXNz
Q21kUHJlZml4ID0gZ2V0ZW52KHZhcm5hbWUpOwogICAgIGlmIChwcm9jZXNzQ21kUHJlZml4ICYm
ICpwcm9jZXNzQ21kUHJlZml4KQogICAgICAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVm
aXggPSBTdHJpbmc6OmZyb21VVEY4KHByb2Nlc3NDbWRQcmVmaXgpOwotI2VuZGlmIC8vIEVOQUJM
RShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2VuZGlmIC8vIEVOQUJMRShERVZF
TE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKIH0KIAogdm9p
ZCBDaGlsZFByb2Nlc3NQcm94eTo6Y29ubmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL1dlYkluc3BlY3RvclNlcnZlci5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIuaApp
bmRleCA5MzlhN2UyMWI3OC4uMDc0ODdiYTNlMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvV2ViSW5zcGVjdG9yU2VydmVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZlci9XZWJJbnNwZWN0b3JTZXJ2ZXIu
aApAQCAtNjAsNyArNjAsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ2xvc2VXZWJTb2NrZXRD
b25uZWN0aW9uKFdlYlNvY2tldFNlcnZlckNvbm5lY3Rpb24qKSBmaW5hbDsKIAogICAgIGJvb2wg
cGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0b3I8Y2hhcj4m
IGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpOwotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFU
Rk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAgICB2b2lkIGJ1aWxkUGFnZUxpc3QoVmVjdG9y
PGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKTsKICNlbmRpZgogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0
b3JTZXJ2ZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0luc3BlY3RvclNlcnZl
ci93cGUvV2ViSW5zcGVjdG9yU2VydmVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjY4M2UzZDcxNjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dwZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUu
Y3BwCkBAIC0wLDAgKzEsMTQyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcg
RWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQKKyAqIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9X
TkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SCisgKiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yU2VydmVyLmgiCisKKyNp
ZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKKworI2luY2x1ZGUgIldlYkluc3BlY3RvclByb3h5
LmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSA8Y3N0ZGlvPgorI2luY2x1
ZGUgPGdtb2R1bGUuaD4KKyNpbmNsdWRlIDxtdXRleD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL3Rl
eHQvU3RyaW5nQnVpbGRlci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworYm9vbCBXZWJJbnNw
ZWN0b3JTZXJ2ZXI6OnBsYXRmb3JtUmVzb3VyY2VGb3JQYXRoKGNvbnN0IFN0cmluZyYgcGF0aCwg
VmVjdG9yPGNoYXI+JiBkYXRhLCBTdHJpbmcmIGNvbnRlbnRUeXBlKQoreworICAgIC8vIFRoZSBw
YWdlIGxpc3QgY29udGFpbnMgYW4gdW5mb3JtYXRlZCBsaXN0IG9mIHBhZ2VzIHRoYXQgY2FuIGJl
IGluc3BlY3RlZCB3aXRoIGEgbGluayB0byBvcGVuIGEgc2Vzc2lvbi4KKyAgICBpZiAocGF0aCA9
PSAiL3BhZ2VsaXN0Lmpzb24iKSB7CisgICAgICAgIGJ1aWxkUGFnZUxpc3QoZGF0YSwgY29udGVu
dFR5cGUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgZmxhZzsKKyAgICBzdGQ6OmNhbGxfb25jZShmbGFnLCBbXSB7CisgICAgICAgIEdN
b2R1bGUqIHJlc291cmNlc01vZHVsZSA9IGdfbW9kdWxlX29wZW4oImxpYldQRVdlYkluc3BlY3Rv
clJlc291cmNlcy5zbyIsIEdfTU9EVUxFX0JJTkRfTEFaWSk7CisgICAgICAgIGlmICghcmVzb3Vy
Y2VzTW9kdWxlKSB7CisgICAgICAgICAgICBXVEZMb2dBbHdheXMoIkVycm9yIGxvYWRpbmcgbGli
V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzLnNvOiAlcyIsIGdfbW9kdWxlX2Vycm9yKCkpOworICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgZ19tb2R1bGVfbWFrZV9yZXNp
ZGVudChyZXNvdXJjZXNNb2R1bGUpOworICAgIH0pOworCisgICAgLy8gUG9pbnQgdGhlIGRlZmF1
bHQgcGF0aCB0byBhIGZvcm1hdHRlZCBwYWdlIHRoYXQgcXVlcmllcyB0aGUgcGFnZSBsaXN0IGFu
ZCBkaXNwbGF5IHRoZW0uCisgICAgQ1N0cmluZyByZXNvdXJjZVBhdGggPSBtYWtlU3RyaW5nKCIv
b3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZSIsIChwYXRoID09ICIvIiA/ICIvaW5zcGVj
dG9yUGFnZUluZGV4Lmh0bWwiIDogcGF0aCkpLnV0ZjgoKTsKKyAgICBpZiAocmVzb3VyY2VQYXRo
LmlzTnVsbCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBHVW5pcXVlT3V0UHRyPEdF
cnJvcj4gZXJyb3I7CisgICAgR1JlZlB0cjxHQnl0ZXM+IHJlc291cmNlQnl0ZXMgPSBhZG9wdEdS
ZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocmVzb3VyY2VQYXRoLmRhdGEoKSwgR19SRVNPVVJD
RV9MT09LVVBfRkxBR1NfTk9ORSwgJmVycm9yLm91dFB0cigpKSk7CisgICAgaWYgKCFyZXNvdXJj
ZUJ5dGVzKSB7CisgICAgICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKKyAgICAgICAgYnVpbGRl
ci5hcHBlbmRMaXRlcmFsKCI8IURPQ1RZUEUgaHRtbD48aHRtbD48aGVhZD48L2hlYWQ+PGJvZHk+
RXJyb3I6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihlcnJvci0+Y29kZSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmQoZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiBvY2N1
cnJlZCBkdXJpbmcgZmV0Y2hpbmcgaW5zcGVjdG9yIHJlc291cmNlIGZpbGVzLjwvYm9keT48L2h0
bWw+Iik7CisKKyAgICAgICAgQ1N0cmluZyBlcnJvckhUTUwgPSBidWlsZGVyLnRvU3RyaW5nKCku
dXRmOCgpOworICAgICAgICBkYXRhLmFwcGVuZChlcnJvckhUTUwuZGF0YSgpLCBlcnJvckhUTUwu
bGVuZ3RoKCkpOworICAgICAgICBjb250ZW50VHlwZSA9ICJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRm
LTgiOworCisgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgZmV0Y2hpbmcgd2ViaW5zcGVjdG9y
IHJlc291cmNlIGZpbGVzOiAlZCwgJXMiLCBlcnJvci0+Y29kZSwgZXJyb3ItPm1lc3NhZ2UpOwor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZ3NpemUgcmVzb3VyY2VEYXRhU2l6
ZTsKKyAgICBnY29uc3Rwb2ludGVyIHJlc291cmNlRGF0YSA9IGdfYnl0ZXNfZ2V0X2RhdGEocmVz
b3VyY2VCeXRlcy5nZXQoKSwgJnJlc291cmNlRGF0YVNpemUpOworICAgIGRhdGEuYXBwZW5kKHN0
YXRpY19jYXN0PGNvbnN0IGNoYXIqPihyZXNvdXJjZURhdGEpLCByZXNvdXJjZURhdGFTaXplKTsK
KworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IG1pbWVUeXBlKGdfY29udGVudF90eXBlX2d1ZXNzKHJl
c291cmNlUGF0aC5kYXRhKCksIHN0YXRpY19jYXN0PGNvbnN0IGd1Y2hhcio+KHJlc291cmNlRGF0
YSksIHJlc291cmNlRGF0YVNpemUsIG51bGxwdHIpKTsKKyAgICBjb250ZW50VHlwZSA9IG1pbWVU
eXBlLmdldCgpOworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYkluc3BlY3RvclNlcnZl
cjo6YnVpbGRQYWdlTGlzdChWZWN0b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUp
Cit7CisgICAgLy8gY2hyb21lZGV2dG9vbHMgKGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9jaHJv
bWVkZXZ0b29scykgMC4zLjggZXhwZWN0ZWQgSlNPTiBmb3JtYXQ6CisgICAgLy8geworICAgIC8v
ICAidGl0bGUiOiAiRm9vIiwKKyAgICAvLyAgInVybCI6ICJodHRwOi8vZm9vIiwKKyAgICAvLyAg
ImRldnRvb2xzRnJvbnRlbmRVcmwiOiAiL01haW4uaHRtbD93cz1sb2NhbGhvc3Q6OTIyMi9kZXZ0
b29scy9wYWdlLzEiLAorICAgIC8vICAid2ViU29ja2V0RGVidWdnZXJVcmwiOiAid3M6Ly9sb2Nh
bGhvc3Q6OTIyMi9kZXZ0b29scy9wYWdlLzEiCisgICAgLy8gfSwKKworICAgIFN0cmluZ0J1aWxk
ZXIgYnVpbGRlcjsKKyAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlsgIik7CisgICAgQ2xpZW50
TWFwOjppdGVyYXRvciBlbmQgPSBtX2NsaWVudE1hcC5lbmQoKTsKKyAgICBmb3IgKENsaWVudE1h
cDo6aXRlcmF0b3IgaXQgPSBtX2NsaWVudE1hcC5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
KyAgICAgICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdlID0gaXQtPnZhbHVlLT5pbnNwZWN0ZWRQYWdl
KCk7CisgICAgICAgIGlmIChpdCAhPSBtX2NsaWVudE1hcC5iZWdpbigpKQorICAgICAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVy
YWwoInsgXCJpZFwiOiAiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiLCBcInRpdGxlXCI6IFwiIik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kKHdlYlBhZ2UtPnBhZ2VMb2FkU3RhdGUoKS50aXRsZSgpKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJ1cmxcIjogXCIiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLmFjdGl2ZVVSTCgpKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiwgXCJpbnNwZWN0b3JVcmxcIjogXCIiKTsK
KyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1sP3BhZ2U9Iik7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVu
ZExpdGVyYWwoIlwiLCBcImRldnRvb2xzRnJvbnRlbmRVcmxcIjogXCIiKTsKKyAgICAgICAgYnVp
bGRlci5hcHBlbmRMaXRlcmFsKCIvTWFpbi5odG1sP3dzPSIpOworICAgICAgICBidWlsZGVyLmFw
cGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7
CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKHBvcnQoKSk7CisgICAgICAgIGJ1aWxkZXIu
YXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2UvIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
TnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcIndl
YlNvY2tldERlYnVnZ2VyVXJsXCI6IFwiIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJh
bCgid3M6Ly8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmQoYmluZEFkZHJlc3MoKSk7CisgICAg
ICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiOiIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51
bWJlcihwb3J0KCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9kZXZ0b29scy9w
YWdlLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCJcIiB9Iik7CisgICAgfQorICAgIGJ1aWxkZXIuYXBwZW5k
TGl0ZXJhbCgiIF0iKTsKKyAgICBDU3RyaW5nIGNzdHIgPSBidWlsZGVyLnRvU3RyaW5nKCkudXRm
OCgpOworICAgIGRhdGEuYXBwZW5kKGNzdHIuZGF0YSgpLCBjc3RyLmxlbmd0aCgpKTsKKyAgICBj
b250ZW50VHlwZSA9ICJhcHBsaWNhdGlvbi9qc29uOyBjaGFyc2V0PXV0Zi04IjsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmluZGV4IDM5OTUwNjk0OGVmLi5iYTc3
YzJhYzcyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1By
b2Nlc3NMYXVuY2hlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuaApAQCAtNjAsNyArNjAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFByb2Nl
c3NUeXBlIHByb2Nlc3NUeXBlOwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRy
YUluaXRpYWxpemF0aW9uRGF0YTsKIAotI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExB
VEZPUk0oR1RLKQorI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oV1BFKSkKICAgICAgICAgU3RyaW5nIHByb2Nlc3NDbWRQcmVmaXg7CiAjZW5k
aWYKICAgICB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVy
L3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xh
dW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi43MDIzYzU0MjIxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcApAQCAt
MCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDIwMTAgTW90b3JvbGEg
TW9iaWxpdHksIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBNT1RPUk9MQSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBNT1RPUk9MQSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKKworI2luY2x1
ZGUgIkNvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNsdWRlIDxlcnJuby5oPgorI2luY2x1
ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHdwZS9yZW5kZXJlci1o
b3N0Lmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3Ry
aW5nLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisjaW5jbHVkZSA8d3RmL2ds
aWIvR0xpYlV0aWxpdGllcy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKwor
Ly8gRklYTUU6IE1lcmdlIHdpdGggUHJvY2Vzc0xhdW5jaGVyR3RrPworCit1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0YXRpYyB2b2lkIGNoaWxkU2V0
dXBGdW5jdGlvbihncG9pbnRlciB1c2VyRGF0YSkKK3sKKyAgICBpbnQgc29ja2V0ID0gR1BPSU5U
RVJfVE9fSU5UKHVzZXJEYXRhKTsKKyAgICBjbG9zZShzb2NrZXQpOworfQorCit2b2lkIFByb2Nl
c3NMYXVuY2hlcjo6bGF1bmNoUHJvY2VzcygpCit7CisgICAgR1BpZCBwaWQgPSAwOworCisgICAg
SVBDOjpDb25uZWN0aW9uOjpTb2NrZXRQYWlyIHNvY2tldFBhaXIgPSBJUEM6OkNvbm5lY3Rpb246
OmNyZWF0ZVBsYXRmb3JtQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb246OkNvbm5lY3Rpb25PcHRp
b25zOjpTZXRDbG9leGVjT25TZXJ2ZXIpOworCisgICAgU3RyaW5nIGV4ZWN1dGFibGVQYXRoOwor
ICAgIENTdHJpbmcgcmVhbEV4ZWN1dGFibGVQYXRoOworICAgIHN3aXRjaCAobV9sYXVuY2hPcHRp
b25zLnByb2Nlc3NUeXBlKSB7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBl
OjpXZWI6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nl
c3MoKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQcm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NU
eXBlOjpOZXR3b3JrOgorICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZO
ZXR3b3JrUHJvY2VzcygpOworICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoREFUQUJBU0VfUFJP
Q0VTUykKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OkRhdGFiYXNlOgor
ICAgICAgICBleGVjdXRhYmxlUGF0aCA9IGV4ZWN1dGFibGVQYXRoT2ZEYXRhYmFzZVByb2Nlc3Mo
KTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIHJlYWxFeGVjdXRh
YmxlUGF0aCA9IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aCk7CisgICAg
R1VuaXF1ZVB0cjxnY2hhcj4gd2tTb2NrZXQoZ19zdHJkdXBfcHJpbnRmKCIlZCIsIHNvY2tldFBh
aXIuY2xpZW50KSk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gd3BlU29ja2V0OworCisgICAgdW5z
aWduZWQgbmFyZ3MgPSA0OyAvLyBzaXplIG9mIHRoZSBhcmd2IGFycmF5IGZvciBnX3NwYXduX2Fz
eW5jKCkKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nlc3NMYXVu
Y2hlcjo6UHJvY2Vzc1R5cGU6OldlYikgeworICAgICAgICB3cGVTb2NrZXQgPSBHVW5pcXVlUHRy
PGdjaGFyPihnX3N0cmR1cF9wcmludGYoIiVkIiwgd3BlX3JlbmRlcmVyX2hvc3RfY3JlYXRlX2Ns
aWVudCgpKSk7CisgICAgICAgIG5hcmdzID0gNTsKKyAgICB9CisKKyNpZiBFTkFCTEUoREVWRUxP
UEVSX01PREUpCisgICAgVmVjdG9yPENTdHJpbmc+IHByZWZpeEFyZ3M7CisgICAgaWYgKCFtX2xh
dW5jaE9wdGlvbnMucHJvY2Vzc0NtZFByZWZpeC5pc051bGwoKSkgeworICAgICAgICBWZWN0b3I8
U3RyaW5nPiBzcGxpdEFyZ3M7CisgICAgICAgIG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzQ21kUHJl
Zml4LnNwbGl0KCcgJywgc3BsaXRBcmdzKTsKKyAgICAgICAgZm9yIChhdXRvIGl0ID0gc3BsaXRB
cmdzLmJlZ2luKCk7IGl0ICE9IHNwbGl0QXJncy5lbmQoKTsgaXQrKykKKyAgICAgICAgICAgIHBy
ZWZpeEFyZ3MuYXBwZW5kKGl0LT51dGY4KCkpOworICAgICAgICBuYXJncyArPSBwcmVmaXhBcmdz
LnNpemUoKTsKKyAgICB9CisjZW5kaWYKKworICAgIGNoYXIqKiBhcmd2ID0gZ19uZXdhKGNoYXIq
LCBuYXJncyk7CisgICAgdW5zaWduZWQgaSA9IDA7CisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RF
KQorICAgIC8vIElmIHRoZXJlJ3MgYSBwcmVmaXggY29tbWFuZCwgcHV0IGl0IGJlZm9yZSB0aGUg
cmVzdCBvZiB0aGUgYXJncy4KKyAgICBmb3IgKGF1dG8gaXQgPSBwcmVmaXhBcmdzLmJlZ2luKCk7
IGl0ICE9IHByZWZpeEFyZ3MuZW5kKCk7IGl0KyspCisgICAgICAgIGFyZ3ZbaSsrXSA9IGNvbnN0
X2Nhc3Q8Y2hhcio+KGl0LT5kYXRhKCkpOworI2VuZGlmCisgICAgYXJndltpKytdID0gY29uc3Rf
Y2FzdDxjaGFyKj4ocmVhbEV4ZWN1dGFibGVQYXRoLmRhdGEoKSk7CisgICAgYXJndltpKytdID0g
d2tTb2NrZXQuZ2V0KCk7CisgICAgaWYgKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBQ
cm9jZXNzTGF1bmNoZXI6OlByb2Nlc3NUeXBlOjpXZWIpCisgICAgICAgIGFyZ3ZbaSsrXSA9IHdw
ZVNvY2tldC5nZXQoKTsKKyAgICBhcmd2W2krK10gPSBudWxscHRyOworCisgICAgR1VuaXF1ZU91
dFB0cjxHRXJyb3I+IGVycm9yOworICAgIGlmICghZ19zcGF3bl9hc3luYygwLCBhcmd2LCAwLCBH
X1NQQVdOX0xFQVZFX0RFU0NSSVBUT1JTX09QRU4sIGNoaWxkU2V0dXBGdW5jdGlvbiwgR0lOVF9U
T19QT0lOVEVSKHNvY2tldFBhaXIuc2VydmVyKSwgJnBpZCwgJmVycm9yLm91dFB0cigpKSkgewor
ICAgICAgICBnX3ByaW50ZXJyKCJVbmFibGUgdG8gZm9yayBhIG5ldyBXZWJQcm9jZXNzOiAlcy5c
biIsIGVycm9yLT5tZXNzYWdlKTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
fQorCisgICAgLy8gRG9uJ3QgZXhwb3NlIHRoZSBwYXJlbnQgc29ja2V0IHRvIHBvdGVudGlhbCBm
dXR1cmUgY2hpbGRyZW4uCisgICAgd2hpbGUgKGZjbnRsKHNvY2tldFBhaXIuY2xpZW50LCBGX1NF
VEZELCBGRF9DTE9FWEVDKSA9PSAtMSkKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoZXJybm8gIT0g
RUlOVFIpOworCisgICAgY2xvc2Uoc29ja2V0UGFpci5jbGllbnQpOworICAgIG1fcHJvY2Vzc0lk
ZW50aWZpZXIgPSBwaWQ7CisKKyAgICAvLyBXZSd2ZSBmaW5pc2hlZCBsYXVuY2hpbmcgdGhlIHBy
b2Nlc3MsIG1lc3NhZ2UgYmFjayB0byB0aGUgbWFpbiBydW4gbG9vcC4KKyAgICBSZWZQdHI8UHJv
Y2Vzc0xhdW5jaGVyPiBwcm90ZWN0b3IodGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIHNlcnZlclNvY2tldCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbcHJvdGVjdG9yLCBwaWQsIHNlcnZlclNvY2tldF0geworICAgICAgICBw
cm90ZWN0b3ItPmRpZEZpbmlzaExhdW5jaGluZ1Byb2Nlc3MocGlkLCBzZXJ2ZXJTb2NrZXQpOwor
ICAgIH0pOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6dGVybWluYXRlUHJvY2VzcygpCit7
CisgICAgaWYgKG1faXNMYXVuY2hpbmcpIHsKKyAgICAgICAgaW52YWxpZGF0ZSgpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKCFtX3Byb2Nlc3NJZGVudGlmaWVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBraWxsKG1fcHJvY2Vzc0lkZW50aWZpZXIsIFNJR0tJTEwpOworICAg
IG1fcHJvY2Vzc0lkZW50aWZpZXIgPSAwOworfQorCit2b2lkIFByb2Nlc3NMYXVuY2hlcjo6cGxh
dGZvcm1JbnZhbGlkYXRlKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCmluZGV4IDFjOGVmNDYzY2My
Li44NDdmYjVjMzIyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmgKQEAgLTIyNCw3ICsyMjQsNyBAQCBwcml2YXRlOgogCiAgICAgV2ViUHJlZmVyZW5j
ZXMmIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpIGNvbnN0OwogCi0jaWYgUExBVEZPUk0oR1RL
KQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHZvaWQgY3JlYXRlSW5z
cGVjdG9yV2luZG93KCk7CiAgICAgdm9pZCB1cGRhdGVJbnNwZWN0b3JXaW5kb3dUaXRsZSgpIGNv
bnN0OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFz
dGVib2FyZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5LmgKaW5kZXggMjY1NTczNjFmNTUuLjc3MmUxMDkxNWYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCkBAIC05NCw2ICs5NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBzZXRQYXN0ZWJvYXJkU3RyaW5nRm9yVHlwZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcm
LCB1aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogICAgIHZvaWQgc2V0UGFzdGVib2FyZEJ1ZmZl
ckZvclR5cGUoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgY29uc3QgU3RyaW5nJiBwYXN0
ZWJvYXJkVHlwZSwgY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmLCB1aW50NjRfdCBzaXplLCB1
aW50NjRfdCYgbmV3Q2hhbmdlQ291bnQpOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAg
ICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNv
bnN0IFdlYlNlbGVjdGlvbkRhdGEmKTsKICAgICB2b2lkIHJlYWRGcm9tQ2xpcGJvYXJkKGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIFdlYlNlbGVjdGlvbkRhdGEmKTsKQEAgLTEwMSw3ICsx
MDIsMTQgQEAgcHJpdmF0ZToKICAgICBXZWJGcmFtZVByb3h5KiBtX3ByaW1hcnlTZWxlY3Rpb25P
d25lciB7IG51bGxwdHIgfTsKICAgICBXZWJGcmFtZVByb3h5KiBtX2ZyYW1lV3JpdGluZ1RvQ2xp
cGJvYXJkIHsgbnVsbHB0ciB9OwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKLSAgICAKKworI2lm
IFBMQVRGT1JNKFdQRSkKKyAgICB2b2lkIGdldFBhc3RlYm9hcmRUeXBlcyhWZWN0b3I8U3RyaW5n
PiYgcGFzdGVib2FyZFR5cGVzKTsKKyAgICB2b2lkIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1
aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgV1RGOjpTdHJpbmcm
KTsKKyAgICB2b2lkIHdyaXRlV2ViQ29udGVudFRvUGFzdGVib2FyZChjb25zdCBXZWJDb3JlOjpQ
YXN0ZWJvYXJkV2ViQ29udGVudCYpOworICAgIHZvaWQgd3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQo
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJik7CisjZW5kaWYKKwog
ICAgIFdlYlByb2Nlc3NQcm94eUxpc3QgbV93ZWJQcm9jZXNzUHJveHlMaXN0OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggNzM2YTBhZDQ1MWMuLjcwMTU0NDNlYThmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4K
QEAgLTU1LDQgKzU1LDExIEBAIG1lc3NhZ2VzIC0+IFdlYlBhc3RlYm9hcmRQcm94eSB7CiAgICAg
V3JpdGVUb0NsaXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUsIHN0cnVjdCBXZWJLaXQ6Oldl
YlNlbGVjdGlvbkRhdGEgcGFzdGVib2FyZENvbnRlbnQpCiAgICAgUmVhZEZyb21DbGlwYm9hcmQo
U3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoc3RydWN0IFdlYktpdDo6V2ViU2VsZWN0aW9uRGF0
YSBwYXN0ZWJvYXJkQ29udGVudCkKICNlbmRpZgorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIEdl
dFBhc3RlYm9hcmRUeXBlcygpIC0+IChWZWN0b3I8U3RyaW5nPiB0eXBlcykKKyAgICBSZWFkU3Ry
aW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSkg
LT4gKFN0cmluZyBzdHJpbmcpCisgICAgV3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKHN0cnVj
dCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCBjb250ZW50KQorICAgIFdyaXRlU3RyaW5n
VG9QYXN0ZWJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHRleHQpCisjZW5kaWYK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDBk
MzAyZGRhYjEzLi40ZDMyOWI0MGYzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuY3BwCkBAIC0yODMsNyArMjgzLDcgQEAgV2ViUHJvY2Vzc1Bvb2w6OldlYlBy
b2Nlc3NQb29sKEFQSTo6UHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQog
ICAgIG5vdGlmeVRoaXNXZWJQcm9jZXNzUG9vbFdhc0NyZWF0ZWQoKTsKIH0KIAotI2lmICFQTEFU
Rk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiB2b2lk
IFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9UZXh0Q2hlY2tlcldQRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDM3MGZmMmJhMWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcApAQCAtMCwwICsx
LDE0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKKworI2luY2x1
ZGUgIlRleHRDaGVja2VyU3RhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
c3RhdGljIFRleHRDaGVja2VyU3RhdGUgdGV4dENoZWNrZXJTdGF0ZTsKKworY29uc3QgVGV4dENo
ZWNrZXJTdGF0ZSYgVGV4dENoZWNrZXI6OnN0YXRlKCkKK3sKKyAgICByZXR1cm4gdGV4dENoZWNr
ZXJTdGF0ZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0VGVzdGluZ01vZGUoYm9vbCkKK3sK
K30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNUZXN0aW5nTW9kZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6c2V0Q29udGludW91c1Nw
ZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmdyYW1tYXJDaGVja2luZ0VuYWJsZWRTdGF0ZUNo
YW5nZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitpbnQ2NF90IFRleHRD
aGVja2VyOjp1bmlxdWVTcGVsbERvY3VtZW50VGFnKFdlYlBhZ2VQcm94eSopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6
OmNsb3NlU3BlbGxEb2N1bWVudFdpdGhUYWcoaW50NjRfdCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjpjaGVja1NwZWxsaW5nT2ZTdHJpbmcoaW50NjRf
dCwgU3RyaW5nVmlldywgaW50MzJfdCYsIGludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OmNoZWNrR3JhbW1hck9mU3RyaW5nKGludDY0X3Qs
IFN0cmluZ1ZpZXcsIFZlY3RvcjxXZWJDb3JlOjpHcmFtbWFyRGV0YWlsPiYsIGludDMyX3QmLCBp
bnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFRleHRDaGVja2Vy
OjpzcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dG9nZ2xlU3BlbGxpbmdVSUlzU2hv
d2luZygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6
dXBkYXRlU3BlbGxpbmdVSVdpdGhNaXNzcGVsbGVkV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcm
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnVwZGF0
ZVNwZWxsaW5nVUlXaXRoR3JhbW1hclN0cmluZyhpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25z
dCBHcmFtbWFyRGV0YWlsJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRl
eHRDaGVja2VyOjpnZXRHdWVzc2VzRm9yV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBpbnQzMl90LCBWZWN0b3I8U3RyaW5nPiYsIGJvb2wpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6bGVhcm5Xb3JkKGludDY0X3QsIGNv
bnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hl
Y2tlcjo6aWdub3JlV29yZChpbnQ2NF90LCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6OnJlcXVlc3RDaGVja2luZ09mU3RyaW5n
KFBhc3NSZWZQdHI8VGV4dENoZWNrZXJDb21wbGV0aW9uPiwgaW50MzJfdCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9yUHJveHlXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjViYWVlZTNjMTdmCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQ
RS5jcHAKQEAgLTAsMCArMSwxNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlh
IFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3Bl
Y3RvclByb3h5LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5j
bHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJQ
YWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2Uo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3Zv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZUluc3BlY3RvcldpbmRvdygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybURpZENsb3NlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlRm9yQ3Jhc2goKQoreworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUhpZGUoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK2Jvb2wgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSXNGcm9udCgpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6
aW5zcGVjdG9yUGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygicmVzb3VyY2U6Ly8vb3Jn
L3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9NYWluLmh0bWwiKTsKK30KKworU3RyaW5nIFdl
Ykluc3BlY3RvclByb3h5OjppbnNwZWN0b3JUZXN0UGFnZVVSTCgpCit7CisgICAgcmV0dXJuIFN0
cmluZygicmVzb3VyY2U6Ly8vb3JnL3dwZS9pbnNwZWN0b3IvVXNlckludGVyZmFjZS9UZXN0Lmh0
bWwiKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JCYXNlVVJMKCkK
K3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2Vy
SW50ZXJmYWNlLyIpOworfQorCit1bnNpZ25lZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1J
bnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIDA7Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3Rl
ZFdpbmRvd1dpZHRoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOwor
fQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EZXRh
Y2goKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQodW5zaWduZWQpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRB
dHRhY2hlZFdpbmRvd1dpZHRoKHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU3RhcnRXaW5kb3dEcmFnKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybVNhdmUoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgYm9vbCwgYm9vbCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUFwcGVuZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoQXZhaWxh
YmlsaXR5Q2hhbmdlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dw
ZS9XZWJQYWdlUHJveHlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQ
YWdlUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40
YTIwMmFiZWI0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
cGUvV2ViUGFnZVByb3h5V1BFLmNwcApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKworI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmUuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCit2b2lkIFdlYlBhZ2VQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworfQorCitTdHJpbmcgV2ViUGFnZVByb3h5OjpzdGFuZGFyZFVzZXJBZ2Vu
dChjb25zdCBTdHJpbmcmKQoreworICAgIHJldHVybiAiTW96aWxsYS81LjAgKExpbnV4OyB4ODZf
NjQgR05VL0xpbnV4KSBBcHBsZVdlYktpdC82MDEuMSAoS0hUTUwsIGxpa2UgR2Vja28pIFZlcnNp
b24vOC4wIFNhZmFyaS82MDEuMSI7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzYXZlUmVjZW50
U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNlYXJj
aD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZVByb3h5Ojps
b2FkUmVjZW50U2VhcmNoZXMoY29uc3QgU3RyaW5nJiwgVmVjdG9yPFdlYkNvcmU6OlJlY2VudFNl
YXJjaD4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vic2l0ZURhdGFT
dG9yZTo6cGxhdGZvcm1SZW1vdmVSZWNlbnRTZWFyY2hlcyhzdGQ6OmNocm9ubzo6c3lzdGVtX2Ns
b2NrOjp0aW1lX3BvaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjplZGl0b3JTdGF0ZUNoYW5nZWQoY29uc3QgRWRpdG9yU3RhdGUmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZDNkMGViNDZkNAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUGFzdGVib2Fy
ZFByb3h5V1BFLmNwcApAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJQYXN0ZWJvYXJkUHJveHkuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1QYXN0ZWJv
YXJkLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5
OjpnZXRQYXN0ZWJvYXJkVHlwZXMoVmVjdG9yPFN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcykKK3sK
KyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5nZXRUeXBlcyhwYXN0ZWJvYXJkVHlwZXMpOworfQor
Cit2b2lkIFdlYlBhc3RlYm9hcmRQcm94eTo6cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKHVpbnQ2
NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6OlN0cmluZyYgdmFs
dWUpCit7CisgICAgdmFsdWUgPSBQbGF0Zm9ybVBhc3RlYm9hcmQoKS5yZWFkU3RyaW5nKGluZGV4
LCBwYXN0ZWJvYXJkVHlwZSk7Cit9CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVdl
YkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQm
IGNvbnRlbnQpCit7CisgICAgUGxhdGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUoY29udGVudCk7Cit9
CisKK3ZvaWQgV2ViUGFzdGVib2FyZFByb3h5Ojp3cml0ZVN0cmluZ1RvUGFzdGVib2FyZChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQpCit7CisgICAgUGxh
dGZvcm1QYXN0ZWJvYXJkKCkud3JpdGUocGFzdGVib2FyZFR5cGUsIHRleHQpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93
cGUvV2ViUHJlZmVyZW5jZXNXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9X
ZWJQcmVmZXJlbmNlc1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLmZmODFmY2RhMWNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3dwZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKQEAgLTAsMCArMSw4NyBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnBsYXRmb3JtSW5pdGlhbGl6ZVN0b3JlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZVN0cmluZ1ZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1VcGRhdGVCb29sVmFsdWVGb3JLZXko
Y29uc3QgU3RyaW5nJiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZVVJbnQzMlZhbHVlRm9yS2V5KGNvbnN0IFN0
cmluZyYsIHVpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlRG91YmxlVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgZG91YmxlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVy
ZW5jZXM6OnBsYXRmb3JtVXBkYXRlRmxvYXRWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBmbG9h
dCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpw
bGF0Zm9ybUdldFN0cmluZ1VzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBTdHJpbmcmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldEJvb2xVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgYm9vbCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0VUludDMyVXNlclZhbHVlRm9yS2V5
KGNvbnN0IFN0cmluZyYsIHVpbnQzMl90JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1HZXREb3Vi
bGVVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgZG91YmxlJikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUu
Y3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mZGU0ZjMxNzI0NQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c1Bvb2xXUEUuY3BwCkBAIC0wLDAgKzEsMTYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAo
YykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzIEx0ZC4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgorCisjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisj
aW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIK
KyNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0
b3JTZXJ2ZXIuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCisj
aW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lz
dGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvU2NoZW1lUmVnaXN0cnkuaD4KKyNpbmNsdWRlIDxjc3RkbGliPgorI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworLy8gRklYTUU6IE1lcmdlIHdpdGggV2ViUHJvY2Vzc1Bv
b2xHdGs/IEFic3RyYWN0IHRoZSBjb21tb24gcGFydHM/CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCitzdGF0aWMgdm9pZCBpbml0SW5zcGVjdG9y
U2VydmVyKCkKK3sKKyAgICBzdGF0aWMgYm9vbCBpbml0aWFsaXplZCA9IGZhbHNlOworICAgIGlm
IChpbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdGlhbGl6ZWQgPSB0cnVl
OworICAgIFN0cmluZyBzZXJ2ZXJBZGRyZXNzKGdfZ2V0ZW52KCJXRUJLSVRfSU5TUEVDVE9SX1NF
UlZFUiIpKTsKKworICAgIGlmICghc2VydmVyQWRkcmVzcy5pc051bGwoKSkgeworICAgICAgICBT
dHJpbmcgYmluZEFkZHJlc3MgPSAiMTI3LjAuMC4xIjsKKyAgICAgICAgdW5zaWduZWQgc2hvcnQg
cG9ydCA9IDI5OTk7CisKKyAgICAgICAgVmVjdG9yPFN0cmluZz4gcmVzdWx0OworICAgICAgICBz
ZXJ2ZXJBZGRyZXNzLnNwbGl0KCc6JywgcmVzdWx0KTsKKworICAgICAgICBpZiAocmVzdWx0LnNp
emUoKSA9PSAyKSB7CisgICAgICAgICAgICBiaW5kQWRkcmVzcyA9IHJlc3VsdFswXTsKKyAgICAg
ICAgICAgIGJvb2wgb2sgPSBmYWxzZTsKKyAgICAgICAgICAgIHBvcnQgPSByZXN1bHRbMV0udG9J
bnQoJm9rKTsKKyAgICAgICAgICAgIGlmICghb2spIHsKKyAgICAgICAgICAgICAgICBwb3J0ID0g
Mjk5OTsKKyAgICAgICAgICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IHBhcnNlIHRoZSBwb3J0
LiBVc2UgMjk5OSBpbnN0ZWFkLiIpOworICAgICAgICAgICAgfQorICAgICAgICB9IGVsc2UKKyAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgJXMsIHdyb25nIGZvcm1hdD8gVXNl
IDEyNy4wLjAuMToyOTk5IGluc3RlYWQuIiwgc2VydmVyQWRkcmVzcy51dGY4KCkuZGF0YSgpKTsK
KworICAgICAgICBpZiAoIVdlYkluc3BlY3RvclNlcnZlcjo6c2luZ2xldG9uKCkubGlzdGVuKGJp
bmRBZGRyZXNzLCBwb3J0KSkKKyAgICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3Qgc3RhcnQg
bGlzdGVuaW5nIG9uOiBJUCBhZGRyZXNzPSVzLCBwb3J0PSVkLiIsIGJpbmRBZGRyZXNzLnV0Zjgo
KS5kYXRhKCksIHBvcnQpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTE9HKEluc3Bl
Y3RvclNlcnZlciwgIlRvIHN0YXJ0IGluc3BlY3RvciBzZXJ2ZXIgc2V0IFdFQktJVF9JTlNQRUNU
T1JfU0VSVkVSIHRvIDEyNy4wLjAuMToyOTk5IGZvciBleGFtcGxlLiIpOworfQorI2VuZGlmCisK
K1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRBcHBsaWNh
dGlvbkNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVj
dG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAiYXBw
Y2FjaGUiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lz
dGVtUmVwcmVzZW50YXRpb24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitXVEY6OlN0cmlu
ZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TWVkaWFDYWNoZURpcmVjdG9y
eSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gY2FjaGVEaXJlY3RvcnkoZ19idWlsZF9maWxl
bmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgIm1lZGlhY2FjaGUiLCBudWxscHRy
KSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OnN0cmluZ0Zyb21GaWxlU3lzdGVtUmVwcmVzZW50YXRp
b24oY2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQoreworICAgIGlmIChtX3dlYnNpdGVEYXRhU3RvcmUpCisgICAgICAg
IG1fd2Vic2l0ZURhdGFTdG9yZS0+cmVnaXN0ZXJTaGFyZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigp
OworfQorCit2b2lkIFdlYlByb2Nlc3NQb29sOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNz
KFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxF
KElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5pdEluc3BlY3RvclNlcnZlcigpOworI2VuZGlmCisK
KyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hlRGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJs
ZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hlTW9kZWxEb2N1bWVudFZpZXdlcjsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1JbnZhbGlkYXRlQ29udGV4dCgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9y
bURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hh
cj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGly
KCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpz
dHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgp
KTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRl
eGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhl
ZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGly
KCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImluZGV4ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJE
YXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxh
dGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0aCgpIGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxn
Y2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hl
X2RpcigpLCAid3BlIiwgImljb25kYXRhYmFzZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2Vi
Q29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9y
eS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZh
dWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9y
YWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3Bl
IiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5n
RnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihzdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30K
KworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNT
dG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBtZWRpYUtleXNTdG9y
YWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3Bl
IiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJv
bUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgp
KTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3
b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGly
ZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJj
YWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVEaXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0
aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNv
bmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndw
ZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwgbnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3Jl
OjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmln
RGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNv
bHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9ucygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDQ4OTZjMzEzNjk4Li44YjVkZjY3MDliNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtOTU0NSw3ICs5NTQ1LDcg
QEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJ
CXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlzaGVsbFNjcmlwdCA9ICJXS0JBU0VfSD0ke1RBUkdF
VF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFERVJTX0ZPTERFUl9QQVRIfS9XS0Jhc2UuaFxuXG51
bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJTERJTkdfR1RLX18gLVVVU0VfU09VUCAtbyBcIiR7
V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClcbiAg
ICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtXS0JB
U0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAxXG5lc2FjXG4iOworCQkJ
c2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtUQVJHRVRfQlVJTERfRElSfS8ke1BSSVZBVEVfSEVB
REVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhcblxudW5pZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJV
SUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BFX18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9
XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7
V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsu
dW5pZmRlZix9XG4gICAgOztcbiopXG4gICAgZXhpdCAxXG5lc2FjXG4iOwogCQl9OwogCQkzN0U1
MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29weSBpT1MgU2FuZGJveCBQcm9maWxlcyBmb3IgTWFu
dWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXggNTc1MDliOTdhNGMuLmUyYmU4MDlkOGY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3ICs1Nyw3IEBACiAKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBF
TkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKaW5kZXggYzkxYjQ1YTljNTEuLjA4YTY4ZDA3OTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
Y3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAg
IG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRv
KHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQYWdlUHJveHk6OlJlZG8pKSwgTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvOjpSZXBseShyZXN1bHQpKTsKIH0KIAotI2lmICFQ
TEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAh
UExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXUEUpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6
aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAobV9w
YWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChldmVudCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVM
b2FkZXJDbGllbnQuY3BwCmluZGV4IDU1MzdmMTlmMDZkLi4yYWM1ZmRhNDEwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTE3OTgsNCArMTc5OCwxMyBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVu
dGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0KIAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6
c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdAoreworI2lm
IFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4gZmFsc2U7CisjZWxzZQorICAgIHJldHVybiB0cnVl
OworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRl
ckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUxLi4zZjAzZTY5MzlmNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYgKzI2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBn
ZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29uJiwgdWludDY0X3Qg
Y2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2NF90
IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIqKSBmaW5hbDsKIAorICAgIGJv
b2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdCBvdmVy
cmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2ZyYW1lOwogICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBt
X3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldzsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxh
dGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAyZWRmNGI3NmQ1NC4uYjI1NzE2
ODBkYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM2MCw0ICsz
NjAsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEZy
b21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWIKIAogI2VuZGlmIC8vIFBMQVRGT1JNKEdU
SykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8vIFBhc3RlYm9hcmRTdHJhdGVneQorCit2b2lkIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKQorewor
ICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlcygp
LCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXM6OlJlcGx5
KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJp
bmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUp
Cit7CisgICAgU3RyaW5nIHZhbHVlOworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVu
dFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJv
eHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbmRleCwgcGFzdGVib2FyZFR5cGUpLCBNZXNz
YWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpSZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5
KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZhbHVlOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNv
bnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJv
Y2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpXcml0
ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29udGVudCksIDApOworfQorCit2b2lkIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQ
cm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9hcmQocGFzdGVib2FyZFR5cGUsIHRleHQpLCAwKTsK
K30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQRSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBs
YXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAppbmRleCBlNDM4N2M5MzAyMS4uYWVjNzliY2Zj
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtODYsMTAgKzg2LDE4IEBA
IHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRobmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9uZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisKICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3
cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYkNv
cmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlkZTsKICAgICBSZWY8V2ViQ29yZTo6U2VsZWN0aW9u
RGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3Zl
cnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIFN0cmlu
ZyByZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmRUeXBlKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAgICB2aXJ0
dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwg
Y29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZDAzNGIwMjY3MwotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dl
YkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApAQCAtMCwwICsxLDU4IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KyNpbmNsdWRlICJXZWJDb250ZXh0TWVudUNsaWVudC5oIgorCisjaWYgRU5BQkxFKENPTlRFWFRf
TUVOVVMpCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpsb29rVXBJbkRpY3Rpb25h
cnkoV2ViQ29yZTo6RnJhbWUqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wg
V2ViQ29udGV4dE1lbnVDbGllbnQ6OmlzU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkNvbnRleHRNZW51Q2xpZW50Ojpz
cGVhayhjb25zdCBTdHJpbmcmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQg
V2ViQ29udGV4dE1lbnVDbGllbnQ6OnN0b3BTcGVha2luZygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoQ09O
VEVYVF9NRU5VUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYkVkaXRvckNsaWVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iZGNhMzAyNGNlZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkVk
aXRvckNsaWVudFdQRS5jcHAKQEAgLTAsMCArMSwyNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYkVkaXRvckNsaWVudC5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRWRp
dG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9FdmVudE5hbWVzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvTm9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvV2luZG93c0tleWJvYXJkQ29kZXMu
aD4KKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisvLyBUaGUgaWRlYSBmb3IgdGhlIGFycmF5
L21hcCBiZWxvdyBjb21lcyBmcm9tIEJsaW5rJ3MgRWRpdGluZ0JlaGF2aW9yLmNwcC4KKworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIEN0cmxLZXkgID0gMSA8PCAwOworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEFsdEtleSAgID0gMSA8PCAxOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIFNoaWZ0S2V5ID0g
MSA8PCAyOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIE1ldGFLZXkgID0gMSA8PCAzOworCisvLyBL
ZXlzIHdpdGggc3BlY2lhbCBtZWFuaW5nLiBUaGVzZSB3aWxsIGJlIGRlbGVnYXRlZCB0byB0aGUg
ZWRpdG9yIHVzaW5nCisvLyB0aGUgZXhlY0NvbW1hbmQoKSBtZXRob2QKK3N0cnVjdCBLZXlEb3du
RW50cnkgeworICAgIHVuc2lnbmVkIHZpcnR1YWxLZXk7CisgICAgdW5zaWduZWQgbW9kaWZpZXJz
OworICAgIGNvbnN0IGNoYXIqIG5hbWU7Cit9OworCitzdHJ1Y3QgS2V5UHJlc3NFbnRyeSB7Cisg
ICAgdW5zaWduZWQgY2hhckNvZGU7CisgICAgdW5zaWduZWQgbW9kaWZpZXJzOworICAgIGNvbnN0
IGNoYXIqIG5hbWU7Cit9OworCitzdGF0aWMgY29uc3QgS2V5RG93bkVudHJ5IGtleURvd25FbnRy
aWVzW10gPSB7CisgICAgeyBWS19MRUZULCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVMZWZ0
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0xFRlQsICAgU2hp
ZnRLZXksICAgICAgICAgICAiTW92ZUxlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5LCAgICAgICAgICAgICJNb3ZlV29yZExlZnQi
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIEN0cmxLZXkg
fCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVjdGlvbiIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUklHSFQsICAw
LCAgICAgICAgICAgICAgICAgICJNb3ZlUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIH0sCisgICAgeyBWS19SSUdIVCwgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVSaWdodEFu
ZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgQ3RybEtl
eSwgICAgICAgICAgICAiTW92ZVdvcmRSaWdodCIgICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfUklHSFQsICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlV29yZFJpZ2h0QW5k
TW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIDAsICAgICAgICAg
ICAgICAgICAgIk1vdmVVcCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX1VQLCAgICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVVwQW5kTW9kaWZ5U2VsZWN0
aW9uIiAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUFJJT1IsICBTaGlmdEtleSwgICAgICAg
ICAgICJNb3ZlUGFnZVVwQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgIH0sCisgICAgeyBW
S19ET1dOLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVEb3duIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RPV04sICAgU2hpZnRLZXksICAgICAgICAgICAi
TW92ZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVY
VCwgICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUGFnZURvd25BbmRNb2RpZnlTZWxlY3Rpb24i
ICAgICAgICAgIH0sCisgICAgeyBWS19VUCwgICAgIEN0cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQ
YXJhZ3JhcGhCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbiIgfSwKKyAgICB7IFZLX0RPV04sICAg
Q3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVBhcmFncmFwaEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rp
b24iICB9LAorICAgIHsgVktfUFJJT1IsICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlUGFnZVVw
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ORVhULCAgIDAsICAg
ICAgICAgICAgICAgICAgIk1vdmVQYWdlRG93biIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0hPTUUsICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvQmVnaW5uaW5n
T2ZMaW5lIiAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBTaGlmdEtleSwK
KyAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSE9NRSwgICBDdHJsS2V5LCAgICAg
ICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50IiAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19IT01FLCAgIEN0cmxLZXkgfCBTaGlmdEtleSwKKyAgICAgICAgIk1vdmVUb0JlZ2lubmlu
Z09mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgICAgICAgICAgICAgICB9
LAorICAgIHsgVktfRU5ELCAgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlVG9FbmRPZkxpbmUi
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19FTkQsICAgIFNoaWZ0S2V5LCAg
ICAgICAgICAgIk1vdmVUb0VuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgfSwKKyAg
ICB7IFZLX0VORCwgICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudCIg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBDdHJsS2V5IHwgU2hpZnRL
ZXksCisgICAgICAgICJNb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0JBQ0ssICAgMCwgICAgICAg
ICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICB9LAor
ICAgIHsgVktfQkFDSywgICBTaGlmdEtleSwgICAgICAgICAgICJEZWxldGVCYWNrd2FyZCIgICAg
ICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIDAsICAgICAgICAgICAg
ICAgICAgIkRlbGV0ZUZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7
IFZLX0JBQ0ssICAgQ3RybEtleSwgICAgICAgICAgICAiRGVsZXRlV29yZEJhY2t3YXJkIiAgICAg
ICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCBDdHJsS2V5LCAgICAgICAgICAg
ICJEZWxldGVXb3JkRm9yd2FyZCIgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQics
ICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2dsZUJvbGQiICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfSwKKyAgICB7ICdJJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiVG9n
Z2xlSXRhbGljIiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1UnLCAgICAg
ICAgIEN0cmxLZXksICAgICAgICAgICJUb2dnbGVVbmRlcmxpbmUiICAgICAgICAgICAgICAgICAg
ICAgICAgIH0sCisgICAgeyBWS19FU0NBUEUsIDAsICAgICAgICAgICAgICAgICAgIkNhbmNlbCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX09FTV9QRVJJT0Qs
IEN0cmxLZXksICAgICAgICAiQ2FuY2VsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfVEFCLCAgICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19UQUIsICAgIFNoaWZ0S2V5
LCAgICAgICAgICAgIkluc2VydEJhY2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JFVFVSTiwgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfUkVUVVJOLCBDdHJsS2V5LCAgICAg
ICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19SRVRVUk4sIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQWx0S2V5IHwgU2hpZnRLZXks
ICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktf
UkVUVVJOLCBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgLy8gVGhlc2UgcHJvYmFibHkgbmVlZCBoYW5kbGluZyBzb21l
d2hlcmUgZWxzZSBzbyBkbyBub3QgZXhlY3V0ZSB0aGVtLiBUaGUKKyAgICAvLyAnQ3V0JyBjb21t
YW5kIGlzIHJlbW92aW5nIHRleHQgc28gbGV0J3MgYXZvaWQgbG9zaW5nIHRoZSB1c2VyIGxvc2lu
ZyBkYXRhCisgICAgLy8gdW50aWwgd2UgaW1wbGVtZW50IGNsaXBib2FyZCBzdXBwb3J0IHdoZXJl
dmVyIGl0IHNob3VsZCBiZS4KKyAgICB7IFZLX0lOU0VSVCwgQ3RybEtleSwgICAgICAgICAgICAi
Q29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfSU5T
RVJULCBTaGlmdEtleSwgICAgICAgICAgICJQYXN0ZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyBWS19ERUxFVEUsIFNoaWZ0S2V5LCAgICAgICAgICAgIkN1dCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdDJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiQ29weSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJQYXN0ZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnVicsICAgICAgICAgQ3Ry
bEtleSB8IFNoaWZ0S2V5LCAiUGFzdGVBbmRNYXRjaFN0eWxlIiAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdYJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiQ3V0IiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0EnLCAgICAgICAgIEN0cmxLZXks
ICAgICAgICAgICJTZWxlY3RBbGwiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyAnWicsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlVuZG8iICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdaJywgICAgICAgICBDdHJsS2V5IHwgU2hp
ZnRLZXksICJSZWRvIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
J1knLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJSZWRvIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19JTlNFUlQsIDAsICAgICAgICAgICAgICAgICAg
Ik92ZXJXcml0ZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKK307CisKK3N0YXRp
YyBjb25zdCBLZXlQcmVzc0VudHJ5IGtleVByZXNzRW50cmllc1tdID0geworICAgIHsgJ1x0Jywg
ICAwLCAgICAgICAgICAgICAgICAgICJJbnNlcnRUYWIiICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnXHQnLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIkluc2VydEJh
Y2t0YWIiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgMCwg
ICAgICAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgJ1xyJywgICBDdHJsS2V5LCAgICAgICAgICAgICJJbnNlcnROZXdsaW5l
IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIFNoaWZ0S2V5
LCAgICAgICAgICAgIkluc2VydExpbmVCcmVhayIgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7ICdccicsICAgQWx0S2V5LCAgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBBbHRLZXkgfCBTaGlm
dEtleSwgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9
OworCitzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQoY29uc3QgS2V5Ym9hcmRF
dmVudCYgZXZlbnQpCit7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEhhc2hNYXA8aW50LCBj
b25zdCBjaGFyKj4+IGtleURvd25Db21tYW5kc01hcDsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8SGFzaE1hcDxpbnQsIGNvbnN0IGNoYXIqPj4ga2V5UHJlc3NDb21tYW5kc01hcDsKKworICAg
IGlmIChrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBXVEZfQVJSQVlfTEVOR1RIKGtleURvd25FbnRyaWVzKTsgaSsr
KQorICAgICAgICAgICAga2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLnNldChrZXlEb3duRW50cmll
c1tpXS5tb2RpZmllcnMgPDwgMTYgfCBrZXlEb3duRW50cmllc1tpXS52aXJ0dWFsS2V5LCBrZXlE
b3duRW50cmllc1tpXS5uYW1lKTsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IFdU
Rl9BUlJBWV9MRU5HVEgoa2V5UHJlc3NFbnRyaWVzKTsgaSsrKQorICAgICAgICAgICAga2V5UHJl
c3NDb21tYW5kc01hcC5nZXQoKS5zZXQoa2V5UHJlc3NFbnRyaWVzW2ldLm1vZGlmaWVycyA8PCAx
NiB8IGtleVByZXNzRW50cmllc1tpXS5jaGFyQ29kZSwga2V5UHJlc3NFbnRyaWVzW2ldLm5hbWUp
OworICAgIH0KKworICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGV2ZW50LnNo
aWZ0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBTaGlmdEtleTsKKyAgICBpZiAoZXZlbnQu
YWx0S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBBbHRLZXk7CisgICAgaWYgKGV2ZW50LmN0
cmxLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IEN0cmxLZXk7CisgICAgaWYgKGV2ZW50Lm1l
dGFLZXkoKSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE1ldGFLZXk7CisKKyAgICBpZiAoZXZlbnQu
dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlkb3duRXZlbnQpIHsKKyAgICAgICAgaW50IG1hcEtl
eSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LmtleUNvZGUoKTsKKyAgICAgICAgcmV0dXJuIG1h
cEtleSA/IGtleURvd25Db21tYW5kc01hcC5nZXQoKS5nZXQobWFwS2V5KSA6IG51bGxwdHI7Cisg
ICAgfQorCisgICAgaW50IG1hcEtleSA9IG1vZGlmaWVycyA8PCAxNiB8IGV2ZW50LmNoYXJDb2Rl
KCk7CisgICAgcmV0dXJuIG1hcEtleSA/IGtleVByZXNzQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1h
cEtleSkgOiBudWxscHRyOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlQcmVzcyhGcmFtZSYg
ZnJhbWUsIEtleWJvYXJkRXZlbnQmIGV2ZW50LCBjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQm
IHBsYXRmb3JtRXZlbnQpCit7CisgICAgU3RyaW5nIGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5
RXZlbnQoZXZlbnQpOworCisgICAgaWYgKCFjb21tYW5kTmFtZS5pc0VtcHR5KCkpIHsKKyAgICAg
ICAgZnJhbWUuZWRpdG9yKCkuY29tbWFuZChjb21tYW5kTmFtZSkuZXhlY3V0ZSgpOworICAgICAg
ICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gRG9uJ3QgaW5zZXJ0IG51bGwgb3IgY29udHJvbCBjaGFyYWN0ZXJzIGFzIHRoZXkgY2Fu
IHJlc3VsdCBpbiB1bmV4cGVjdGVkIGJlaGF2aW91cgorICAgIGlmIChldmVudC5jaGFyQ29kZSgp
IDwgJyAnKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBEb24ndCBpbnNlcnQgYW55dGhpbmcg
aWYgYSBtb2RpZmllciBpcyBwcmVzc2VkIGFuZCBpdCBoYXMgbm90IGJlZW4gaGFuZGxlZCB5ZXQK
KyAgICBpZiAocGxhdGZvcm1FdmVudC5jdHJsS2V5KCkgfHwgcGxhdGZvcm1FdmVudC5hbHRLZXko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGZyYW1lLmVkaXRvcigpLmluc2VydFRleHQo
cGxhdGZvcm1FdmVudC50ZXh0KCksICZldmVudCkpCisgICAgICAgIGV2ZW50LnNldERlZmF1bHRI
YW5kbGVkKCk7Cit9CisKK3N0YXRpYyB2b2lkIGhhbmRsZUtleURvd24oRnJhbWUmIGZyYW1lLCBL
ZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JikKK3sKKyAg
ICBTdHJpbmcgY29tbWFuZE5hbWUgPSBpbnRlcnByZXRLZXlFdmVudChldmVudCk7CisgICAgaWYg
KGNvbW1hbmROYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2Ugc2hv
dWxkbid0IGluc2VydCB0ZXh0IHRocm91Z2ggdGhlIGVkaXRvci4gTGV0IFdlYkNvcmUgZGVjaWRl
CisgICAgLy8gaG93IHRvIGhhbmRsZSB0aGF0IChzYXksIFRhYiwgd2hpY2ggY291bGQgYWxzbyBi
ZSB1c2VkIHRvCisgICAgLy8gY2hhbmdlIGZvY3VzKS4KKyAgICBFZGl0b3I6OkNvbW1hbmQgY29t
bWFuZCA9IGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpOworICAgIGlmIChjb21t
YW5kLmlzVGV4dEluc2VydGlvbigpKQorICAgICAgICByZXR1cm47CisKKyAgICBjb21tYW5kLmV4
ZWN1dGUoKTsKKyAgICBldmVudC5zZXREZWZhdWx0SGFuZGxlZCgpOworfQorCit2b2lkIFdlYkVk
aXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChXZWJDb3JlOjpLZXlib2FyZEV2ZW50KiBl
dmVudCkKK3sKKyAgICBOb2RlKiBub2RlID0gZXZlbnQtPnRhcmdldCgpLT50b05vZGUoKTsKKyAg
ICBBU1NFUlQobm9kZSk7CisgICAgRnJhbWUqIGZyYW1lID0gbm9kZS0+ZG9jdW1lbnQoKS5mcmFt
ZSgpOworICAgIEFTU0VSVChmcmFtZSk7CisKKyAgICAvLyBGSVhNRTogUmVvcmRlciB0aGUgY2hl
Y2tzIGluIGEgbW9yZSBzZW5zaWJsZSB3YXkuCisKKyAgICBjb25zdCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQqIHBsYXRmb3JtRXZlbnQgPSBldmVudC0+a2V5RXZlbnQoKTsKKyAgICBpZiAoIXBsYXRm
b3JtRXZlbnQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIElmIHRoaXMgd2FzIGFuIElNRSBl
dmVudCBkb24ndCBkbyBhbnl0aGluZy4KKyAgICBpZiAocGxhdGZvcm1FdmVudC0+d2luZG93c1Zp
cnR1YWxLZXlDb2RlKCkgPT0gVktfUFJPQ0VTU0tFWSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
Ly8gRG9uJ3QgYWxsb3cgdGV4dCBpbnNlcnRpb24gZm9yIG5vZGVzIHRoYXQgY2Fubm90IGVkaXQu
CisgICAgaWYgKCFmcmFtZS0+ZWRpdG9yKCkuY2FuRWRpdCgpKQorICAgICAgICByZXR1cm47CisK
KyAgICAvLyBUaGlzIGlzIGp1c3QgYSBub3JtYWwgdGV4dCBpbnNlcnRpb24sIHNvIHdhaXQgdG8g
ZXhlY3V0ZSB0aGUgaW5zZXJ0aW9uCisgICAgLy8gdW50aWwgYSBrZXlwcmVzcyBldmVudCBoYXBw
ZW5zLiBUaGlzIHdpbGwgZW5zdXJlIHRoYXQgdGhlIGluc2VydGlvbiB3aWxsIG5vdAorICAgIC8v
IGJlIHJlZmxlY3RlZCBpbiB0aGUgY29udGVudHMgb2YgdGhlIGZpZWxkIHVudGlsIHRoZSBrZXl1
cCBET00gZXZlbnQuCisgICAgaWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmtleXBy
ZXNzRXZlbnQpCisgICAgICAgIHJldHVybiBoYW5kbGVLZXlQcmVzcygqZnJhbWUsICpldmVudCwg
KnBsYXRmb3JtRXZlbnQpOworICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5r
ZXlkb3duRXZlbnQpCisgICAgICAgIHJldHVybiBoYW5kbGVLZXlEb3duKCpmcmFtZSwgKmV2ZW50
LCAqcGxhdGZvcm1FdmVudCk7Cit9CisKK3ZvaWQgV2ViRWRpdG9yQ2xpZW50OjpoYW5kbGVJbnB1
dE1ldGhvZEtleWRvd24oV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZlbnQpCit7CisgICAgY29u
c3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50
KCk7CisgICAgaWYgKHBsYXRmb3JtRXZlbnQgJiYgcGxhdGZvcm1FdmVudC0+d2luZG93c1ZpcnR1
YWxLZXlDb2RlKCkgPT0gVktfUFJPQ0VTU0tFWSkKKyAgICAgICAgZXZlbnQtPnByZXZlbnREZWZh
dWx0KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVu
dVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmJhYjgzN2Iw
YTRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViUG9wdXBNZW51V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25m
aWcuaCIKKyNpbmNsdWRlICJXZWJQb3B1cE1lbnUuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2ViUG9wdXBNZW51
OjpzZXRVcFBsYXRmb3JtRGF0YShjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgUGxhdGZvcm1Qb3B1
cE1lbnVEYXRhJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1Ro
cmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAppbmRleCA2MGU5MTY3OTliMy4uZDNk
ZjQ2YTE4N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVkQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTc0LDEwICs3NCwxMCBA
QCBUaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdDo6VGhyZWFkZWRDb29yZGluYXRlZExh
eWVyVHJlZUhvc3QoV2ViUGFnZSYgd2ViUAogICAgICAgICAvLyBEbyBub3QgZG8gZnJhbWUgc3lu
YyB3aGVuIHJlbmRlcmluZyBvZmZzY3JlZW4gaW4gdGhlIHdlYiBwcm9jZXNzIHRvIGVuc3VyZSB0
aGF0IFN3YXBCdWZmZXJzIG5ldmVyIGJsb2Nrcy4KICAgICAgICAgLy8gUmVuZGVyaW5nIHRvIHRo
ZSBhY3R1YWwgc2NyZWVuIHdpbGwgaGFwcGVuIGxhdGVyIGFueXdheSBzaW5jZSB0aGUgVUkgcHJv
Y2VzcyBzY2hlZHVsZXMgYSByZWRyYXcgZm9yIGV2ZXJ5IHVwZGF0ZSwKICAgICAgICAgLy8gdGhl
IGNvbXBvc2l0b3Igd2lsbCB0YWtlIGNhcmUgb2Ygc3luY2luZyB0byB2YmxhbmsuCi0gICAgICAg
IG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRvckNs
aWVudCwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IsIG1fc3VyZmFjZS0+d2luZG93KCksIFRocmVh
ZGVkQ29tcG9zaXRvcjo6U2hvdWxkRG9GcmFtZVN5bmM6OlllcywgcGFpbnRGbGFncyk7CisgICAg
ICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlKG1fY29tcG9zaXRv
ckNsaWVudCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IsIG1fc3VyZmFjZS0+d2lu
ZG93KCksIFRocmVhZGVkQ29tcG9zaXRvcjo6U2hvdWxkRG9GcmFtZVN5bmM6OlllcywgcGFpbnRG
bGFncyk7CiAgICAgICAgIG1fbGF5ZXJUcmVlQ29udGV4dC5jb250ZXh0SUQgPSBtX3N1cmZhY2Ut
PnN1cmZhY2VJRCgpOwogICAgIH0gZWxzZQotICAgICAgICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRl
ZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGllbnQsIHNjYWxlZFNpemUsIHNjYWxl
RmFjdG9yKTsKKyAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVh
dGUobV9jb21wb3NpdG9yQ2xpZW50LCB3ZWJQYWdlLCBzY2FsZWRTaXplLCBzY2FsZUZhY3Rvcik7
CiAKICAgICBkaWRDaGFuZ2VWaWV3cG9ydCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAKaW5kZXggMmU3ODBkOTFiZTUuLjVmMDkz
YWM3YjU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJh
d2luZ0FyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3
aW5nQXJlYS5jcHAKQEAgLTM3LDYgKzM3LDggQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNs
dWRlICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYS5oIgogI2luY2x1ZGUgIlRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLmgiCisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSAiRHJh
d2luZ0FyZWFXUEUuaCIKICNlbHNlCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbXBsLmgiCiAjZW5k
aWYKQEAgLTU1LDYgKzU3LDkgQEAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhPiBEcmF3aW5n
QXJlYTo6Y3JlYXRlKFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IFdlYlBhZ2UKICNlbmRpZgogICAg
IGNhc2UgRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVlOgogICAgICAgICByZXR1cm4gc3Rk
OjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYT4od2ViUGFnZSwgcGFyYW1l
dGVycyk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVXUEU6
CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPERyYXdpbmdBcmVhV1BFPih3ZWJQYWdl
LCBwYXJhbWV0ZXJzKTsKICNlbHNlCiAgICAgY2FzZSBEcmF3aW5nQXJlYVR5cGVJbXBsOgogICAg
ICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYUltcGw+KHdlYlBhZ2UsIHBh
cmFtZXRlcnMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCmluZGV4IDIxYjEyY2RiZTIzLi5lNTEyYmJiNjc4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzQ5NSw3ICszNDk1LDcgQEAgTm90
aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKiBXZWJQYWdlOjpub3RpZmljYXRpb25Q
ZXJtaXNzaW9uUmVxdWVzdE1hbmEKICAgICByZXR1cm4gbV9ub3RpZmljYXRpb25QZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXIuZ2V0KCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZP
Uk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExB
VEZPUk0oV1BFKQogYm9vbCBXZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudChLZXli
b2FyZEV2ZW50KiBldnQpCiB7CiAgICAgTm9kZSogbm9kZSA9IGV2dC0+dGFyZ2V0KCktPnRvTm9k
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKaW5kZXgg
MGIwNTYxYmIxNjcuLjIzNDFjMTM4MDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmgKQEAgLTEwMTgsNyArMTAxOCw3IEBAIHByaXZhdGU6CiAjZW5kaWYK
ICNlbmRpZgogCi0jaWYgIVBMQVRGT1JNKENPQ09BKQorI2lmICFQTEFURk9STShDT0NPQSkgJiYg
IVBMQVRGT1JNKFdQRSkKICAgICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJwcmV0S2V5RXZlbnQo
Y29uc3QgV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCopOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5h
Z2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGUyM2QzNDBk
OTEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiQ29tcG9zaXRpbmdNYW5hZ2VyLmgiCisKKyNpbmNsdWRlICJDb21wb3NpdGlu
Z01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViUGFnZS5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyOjp+Q29tcG9zaXRpbmdNYW5hZ2VyKCkK
K3sKKyAgICBBU1NFUlQobV9jb25uZWN0aW9uRmQgPT0gLTEpOworfQorCit2b2lkIENvbXBvc2l0
aW5nTWFuYWdlcjo6ZXN0YWJsaXNoQ29ubmVjdGlvbihXZWJQYWdlJiB3ZWJQYWdlKQoreworICAg
IElQQzo6QXR0YWNobWVudCBjb25uZWN0aW9uSGFuZGxlOworICAgIHdlYlBhZ2Uuc2VuZFN5bmMo
TWVzc2FnZXM6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5OjpFc3RhYmxpc2hDb25uZWN0aW9uKCks
CisgICAgICAgIE1lc3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29u
bmVjdGlvbjo6UmVwbHkoY29ubmVjdGlvbkhhbmRsZSkpOworCisgICAgbV9jb25uZWN0aW9uRmQg
PSBjb25uZWN0aW9uSGFuZGxlLnJlbGVhc2VGaWxlRGVzY3JpcHRvcigpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi4yNjMxYTMxYzk5NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyLmgKQEAgLTAs
MCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaWZuZGVmIENvbXBvc2l0aW5nTWFuYWdlcl9oCisjZGVmaW5lIENvbXBvc2l0aW5nTWFu
YWdlcl9oCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdlciBmaW5hbCB7
CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsKK3B1YmxpYzoK
KyAgICBDb21wb3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBvc2l0aW5nTWFu
YWdlcigpOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2UmKTsKKyAgICBp
bnQgcmVsZWFzZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2UobV9jb25uZWN0
aW9uRmQsIC0xKTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9uRmQgeyAtMSB9
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBDb21wb3NpdGluZ01h
bmFnZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUv
RHJhd2luZ0FyZWFXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9EcmF3aW5nQXJlYVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjM0NDdhYzhjYjBkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5jcHAKQEAgLTAsMCArMSwxOTIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhV1BFLmgiCisKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYVByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisjaW5jbHVkZSAi
V2ViUHJlZmVyZW5jZXNLZXlzLmgiCisjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgor
I2luY2x1ZGUgPFdlYkNvcmUvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9NYWluRnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKK0RyYXdpbmdBcmVhV1BFOjpEcmF3aW5nQXJlYVdQRShX
ZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJikKKyAgICA6
IERyYXdpbmdBcmVhKERyYXdpbmdBcmVhVHlwZVdQRSwgd2ViUGFnZSkKK3sKKyAgICB3ZWJQYWdl
LmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUodHJ1ZSk7Cisg
ICAgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwKTsKK30KKworRHJhd2luZ0FyZWFX
UEU6On5EcmF3aW5nQXJlYVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmxheWVy
SG9zdERpZEZsdXNoTGF5ZXJzKCkKK3sKKyAgICBtX3dlYlBhZ2Uuc2VuZChNZXNzYWdlczo6RHJh
d2luZ0FyZWFQcm94eTo6RW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgwLCBtX2xheWVy
VHJlZUhvc3QtPmxheWVyVHJlZUNvbnRleHQoKSkpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BF
OjpzZXROZWVkc0Rpc3BsYXkoKQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAg
IG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9zaXRlZENvbnRlbnRzTmVlZERpc3BsYXkoKTsK
K30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IElu
dFJlY3QmIHJlY3QpCit7CisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9zdCk7CisgICAgbV9sYXll
clRyZWVIb3N0LT5zZXROb25Db21wb3NpdGVkQ29udGVudHNOZWVkRGlzcGxheUluUmVjdChyZWN0
KTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2Nyb2xsKGNvbnN0IEludFJlY3QmIHNjcm9s
bFJlY3QsIGNvbnN0IEludFNpemUmKQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOwor
ICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2Nyb2xsTm9uQ29tcG9zaXRlZENvbnRlbnRzKHNjcm9sbFJl
Y3QpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5j
eUNoYW5nZWQoKQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJU
cmVlSG9zdC0+cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCk7Cit9CisKK3ZvaWQg
RHJhd2luZ0FyZWFXUEU6OmZvcmNlUmVwYWludCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKworYm9vbCBEcmF3aW5nQXJlYVdQRTo6Zm9yY2VSZXBhaW50QXN5bmModWludDY0X3QgY2Fs
bGJhY2tJRCkKK3sKKyAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0ICYmIG1fbGF5ZXJUcmVlSG9z
dC0+Zm9yY2VSZXBhaW50QXN5bmMoY2FsbGJhY2tJRCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNldExheWVyVHJlZVN0YXRlSXNGcm96ZW4oYm9vbCBmcm96ZW4pCit7CisgICAgbV9sYXll
clRyZWVTdGF0ZUlzRnJvemVuID0gZnJvemVuOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpz
ZXRQYWludGluZ0VuYWJsZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIERyYXdpbmdBcmVhV1BFOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNl
c1N0b3JlJiBzdG9yZSkKK3sKKyAgICBtX3dlYlBhZ2UuY29yZVBhZ2UoKS0+c2V0dGluZ3MoKS5z
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVy
ZW5jZXNLZXk6OmZvcmNlQ29tcG9zaXRpbmdNb2RlS2V5KCkpKTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6bWFpbkZyYW1lQ29udGVudFNpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmIHNpemUpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5jb250ZW50c1NpemVDaGFuZ2VkKHNpemUpOworfQorCitHcmFwaGljc0xheWVyRmFj
dG9yeSogRHJhd2luZ0FyZWFXUEU6OmdyYXBoaWNzTGF5ZXJGYWN0b3J5KCkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5ncmFwaGlj
c0xheWVyRmFjdG9yeSgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit2b2lkIERyYXdpbmdB
cmVhV1BFOjpzZXRSb290Q29tcG9zaXRpbmdMYXllcihHcmFwaGljc0xheWVyKiBncmFwaGljc0xh
eWVyKQoreworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoZ3JhcGhpY3NMYXllcik7Cit9CisKK3ZvaWQgRHJh
d2luZ0FyZWFXUEU6OnNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoKCkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNjaGVkdWxlTGF5ZXJG
bHVzaCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNvbXBvc2l0aW5nTGF5
ZXJGbHVzaEltbWVkaWF0ZWx5KCkKK3sKKyAgICBzY2hlZHVsZUNvbXBvc2l0aW5nTGF5ZXJGbHVz
aCgpOworfQorCisjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRP
UikKK1JlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+IERyYXdpbmdBcmVhV1BF
OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlE
KQoreworICAgIGlmIChtX2xheWVyVHJlZUhvc3QpCisgICAgICAgIHJldHVybiBtX2xheWVyVHJl
ZUhvc3QtPmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOworCisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6YXR0YWNoVmll
d092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciogdmlld092ZXJsYXlSb290TGF5ZXIpCit7CisgICAgaWYgKCFmcmFtZS0+aXNN
YWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQVNTRVJUKG1fbGF5ZXJUcmVlSG9z
dCk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRWaWV3T3ZlcmxheVJvb3RMYXllcih2aWV3T3Zl
cmxheVJvb3RMYXllcik7Cit9CisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFE
RUQpCit2b2lkIERyYXdpbmdBcmVhV1BFOjpkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpCit7Cit9CisjZW5kaWYKKworI2lmIFVTRShDT09S
RElOQVRFRF9HUkFQSElDUykgfHwgVVNFKFRFWFRVUkVfTUFQUEVSKQordm9pZCBEcmF3aW5nQXJl
YVdQRTo6ZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkKK3sKK30KKyNlbmRpZgorCit2
b2lkIERyYXdpbmdBcmVhV1BFOjp1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCwgYm9v
bCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbE9mZnNldCkKK3sKKyAgICBtX3dlYlBhZ2Uu
c2V0RGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIG1fd2ViUGFnZS5z
ZXRTaXplKHNpemUpOworICAgIG1fd2ViUGFnZS5sYXlvdXRJZk5lZWRlZCgpOworICAgIG1fd2Vi
UGFnZS5zY3JvbGxNYWluRnJhbWVJZk5vdEF0TWF4U2Nyb2xsUG9zaXRpb24oc2Nyb2xsT2Zmc2V0
KTsKKworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2l6ZURpZENoYW5nZShtX3dlYlBhZ2Uuc2l6ZSgpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQ
RTo6ZGlkVXBkYXRlKCkKK3sKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6ZW50ZXJBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZShHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyKQoreworICAg
IEFTU0VSVCghbV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QgPSBMYXllclRy
ZWVIb3N0OjpjcmVhdGUobV93ZWJQYWdlKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RD
b21wb3NpdGluZ0xheWVyKGdyYXBoaWNzTGF5ZXIpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0
U2hvdWxkTm90aWZ5QWZ0ZXJOZXh0U2NoZWR1bGVkTGF5ZXJGbHVzaCh0cnVlKTsKKyAgICBtX2xh
eWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdlLnNpemUoKSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9EcmF3aW5nQXJlYVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi40NmM1MzU0ZTRmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuaApAQCAtMCwwICsxLDkzIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgRHJhd2luZ0FyZWFXUEVfaAorI2RlZmluZSBEcmF3aW5nQXJlYVdQRV9oCisKKyNpbmNsdWRl
ICJEcmF3aW5nQXJlYS5oIgorCisjaW5jbHVkZSAiTGF5ZXJUcmVlSG9zdC5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgRHJhd2luZ0FyZWFXUEUgOiBwdWJsaWMgRHJhd2luZ0FyZWEg
eworcHVibGljOgorICAgIERyYXdpbmdBcmVhV1BFKFdlYlBhZ2UmLCBjb25zdCBXZWJQYWdlQ3Jl
YXRpb25QYXJhbWV0ZXJzJik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFXUEUoKTsKKworICAg
IHZvaWQgbGF5ZXJIb3N0RGlkRmx1c2hMYXllcnMoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAg
ICAvLyBEcmF3aW5nQXJlYQorICAgIHZpcnR1YWwgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bERlbHRhKSBvdmVycmlkZTsKKworICAgIHZpcnR1YWwgdm9pZCBwYWdlQmFja2dyb3VuZFRyYW5z
cGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZm9yY2VSZXBhaW50
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBib29sIGZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90
IGNhbGxiYWNrSUQpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllclRyZWVTdGF0
ZUlzRnJvemVuKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgYm9vbCBsYXllclRyZWVTdGF0
ZUlzRnJvemVuKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9sYXllclRyZWVTdGF0ZUlzRnJv
emVuOyB9CisgICAgdmlydHVhbCBMYXllclRyZWVIb3N0KiBsYXllclRyZWVIb3N0KCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gbV9sYXllclRyZWVIb3N0LmdldCgpOyB9CisKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJikgb3ZlcnJpZGU7
CisgICAgdmlydHVhbCB2b2lkIG1haW5GcmFtZUNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBXZWJD
b3JlOjpJbnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICB2aXJ0dWFsIFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBzZXRSb290Q29tcG9zaXRpbmdMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyKikg
b3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNo
KCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZs
dXNoSW1tZWRpYXRlbHkoKSBvdmVycmlkZTsKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9G
UkFNRV9ESVNQTEFZX01PTklUT1IpCisgICAgdmlydHVhbCBSZWZQdHI8V2ViQ29yZTo6RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoV2ViQ29yZTo6UGxh
dGZvcm1EaXNwbGF5SUQpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2aXJ0dWFsIHZvaWQgYXR0
YWNoVmlld092ZXJsYXlHcmFwaGljc0xheWVyKFdlYkNvcmU6OkZyYW1lKiwgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllciopIG92ZXJyaWRlOworCisjaWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RI
UkVBREVEKQorICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydEF0dHJpYnV0ZXMoV2Vi
Q29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2VuZGlmCisKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBFUikKKyAgICB2aXJ0dWFs
IHZvaWQgZGV2aWNlT3JQYWdlU2NhbGVGYWN0b3JDaGFuZ2VkKCkgb3ZlcnJpZGU7CisjZW5kaWYK
KworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCwgYm9v
bCwgZmxvYXQsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBlbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXIqKTsKKworICAgIC8vIFdoZW4gdHJ1ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUg
aW4gaXRzIGN1cnJlbnQgc3RhdGUgYnkgbm90IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRp
bmcgbW9kZQorICAgIC8vIGFuZCBub3Qgc2NoZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJv
b2wgbV9sYXllclRyZWVTdGF0ZUlzRnJvemVuIHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXll
ciB0cmVlIGhvc3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJl
ZlB0cjxMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIERyYXdpbmdBcmVhV1BFX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5zcGVjdG9yVUlXUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjc0Yzg0NGJjYmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJlbW90ZVdlYkluc3BlY3RvclVJ
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3RvclVJOjpjYW5TYXZl
KCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JVSTo6bG9j
YWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitTdHJpbmcg
UmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NVUkwoKQoreworICAgIHJldHVy
biBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3RvcldQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM0ZTBjNjVlMGVmCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJJ
bnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RPUikKKworbmFtZXNwYWNlIFdl
YktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6OmxvY2FsaXplZFN0cmluZ3NVUkwo
KSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmZlZjI0ZTVkZWY5Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BFLmNwcApAQCAt
MCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJQYWdlLmgiCisKKyNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KKyNp
bmNsdWRlICJXZWJQcmVmZXJlbmNlc0tleXMuaCIKKyNpbmNsdWRlICJXZWJQcmVmZXJlbmNlc1N0
b3JlLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsK
Kwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworfQorCit2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUVkaXRv
clN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9zdExheW91dERhdGFIaW50KSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUGFnZTo6cGxhdGZv
cm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3JlJiBzdG9yZSkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZh
dWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQYWdlOjpw
bGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkUmVz
cG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBhZ2U6OnBsYXRmb3JtQ2FuSGFu
ZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2ViUGFnZTo6Y2FjaGVkU3VnZ2Vz
dGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gV2ViUGFnZTo6
Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5nIFdlYlBhZ2U6OnBsYXRmb3Jt
VXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc01haW5XUEUuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jNDYxMDczYmUzZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NNYWluV1BF
LmNwcApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBN
b3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NNYWluVW5peC5oIgorCisj
aW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgorI2luY2x1ZGUgPGdsaWIuaD4K
KyNpbmNsdWRlIDxsaWJzb3VwL3NvdXAuaD4KKworI2luY2x1ZGUgPGlvc3RyZWFtPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBy
b2Nlc3NNYWluIGZpbmFsOiBwdWJsaWMgQ2hpbGRQcm9jZXNzTWFpbkJhc2UgeworcHVibGljOgor
ICAgIGJvb2wgcGxhdGZvcm1Jbml0aWFsaXplKCkgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIC8v
IFRPRE86IFdyYXAgd2l0aCAjaWZuZGVmIE5ERUJVRworICAgICAgICBpZiAoZ19nZXRlbnYoIldF
QktJVDJfUEFVU0VfV0VCX1BST0NFU1NfT05fTEFVTkNIIikpIHsKKyAgICAgICAgICAgIGdfcHJp
bnRlcnIoIldlYlByb2Nlc3MgUElEOiAlZFxuIiwgZ2V0cGlkKCkpOworICAgICAgICAgICAgV1RG
OjpzbGVlcCgzMCk7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisK
KyAgICBib29sIHBhcnNlQ29tbWFuZExpbmUoaW50IGFyZ2MsIGNoYXIqKiBhcmd2KSBvdmVycmlk
ZQorICAgIHsKKyAgICAgICAgQVNTRVJUKGFyZ2MgPT0gMyk7CisgICAgICAgIGlmIChhcmdjIDwg
MykKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoIUNoaWxkUHJvY2Vz
c01haW5CYXNlOjpwYXJzZUNvbW1hbmRMaW5lKGFyZ2MsIGFyZ3YpKQorICAgICAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgICAgIGludCB3cGVGZCA9IGF0b2koYXJndlsyXSk7CisgICAgICAg
IFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaCgKKyAgICAgICAgICAgIFt3cGVGZF0geworICAgICAg
ICAgICAgICAgIFJFTEVBU0VfQVNTRVJUKGlzPFBsYXRmb3JtRGlzcGxheVdQRT4oUGxhdGZvcm1E
aXNwbGF5OjpzaGFyZWREaXNwbGF5KCkpKTsKKyAgICAgICAgICAgICAgICBkb3duY2FzdDxQbGF0
Zm9ybURpc3BsYXlXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKS5pbml0aWFs
aXplKHdwZUZkKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9
Cit9OworCitpbnQgV2ViUHJvY2Vzc01haW5Vbml4KGludCBhcmdjLCBjaGFyKiogYXJndikKK3sK
KyAgICByZXR1cm4gQ2hpbGRQcm9jZXNzTWFpbjxXZWJQcm9jZXNzLCBXZWJQcm9jZXNzTWFpbj4o
YXJnYywgYXJndik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvY29uZmlnLmggYi9Tb3VyY2UvV2ViS2l0Mi9jb25maWcuaAppbmRleCBjNjNk
MWEyNmY3OS4uMzQ3OWIxZWQzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL2NvbmZpZy5oCkBAIC01OCw3ICs1OCw3IEBACiAjZGVmaW5l
IFBMVUdJTl9BUkNISVRFQ1RVUkUoQVJDSCkgKGRlZmluZWQgUExVR0lOX0FSQ0hJVEVDVFVSRV8j
I0FSQ0ggJiYgUExVR0lOX0FSQ0hJVEVDVFVSRV8jI0FSQ0gpCiAKICNpZm5kZWYgRU5BQkxFX0lO
U1BFQ1RPUl9TRVJWRVIKLSNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpICYmIFBMQVRGT1JNKEdUSykK
KyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpICYmIChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQ
RSkpCiAjZGVmaW5lIEVOQUJMRV9JTlNQRUNUT1JfU0VSVkVSIDEKICNlbmRpZgogI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93cGUvd3BlLXdlYmtpdC5wYy5pbiBiL1NvdXJjZS9X
ZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi5lOTljMDI1MTgxNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L3dwZS93cGUtd2Via2l0LnBjLmluCkBAIC0wLDAgKzEsMTEgQEAKK3ByZWZpeD1AQ01BS0VfSU5T
VEFMTF9QUkVGSVhACitleGVjX3ByZWZpeD0ke3ByZWZpeH0KK2xpYmRpcj1ATElCX0lOU1RBTExf
RElSQAoraW5jbHVkZWRpcj0ke3ByZWZpeH0vaW5jbHVkZQorCitOYW1lOiBXZWJLaXQyCitEZXNj
cmlwdGlvbjogV1BFLWZsYXZvcmVkIFdlYiBlbmdpbmUKK1ZlcnNpb246IEBQUk9KRUNUX1ZFUlNJ
T05ACitSZXF1aXJlcy5wcml2YXRlOiBnbGliLTIuMCBsaWJzb3VwLTIuNAorTGliczogLUwke2xp
YmRpcn0gLWxXUEVXZWJLaXQgLWxXUEUKK0NmbGFnczogLUkke2luY2x1ZGVkaXJ9L3dwZS1AV1BF
X0FQSV9WRVJTSU9OQCAtSSR7aW5jbHVkZWRpcn0vd3BlLUBXUEVfQVBJX1ZFUlNJT05AL1dQRQpk
aWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRMaWJHQk0uY21ha2UgYi9Tb3VyY2UvY21ha2Uv
RmluZExpYkdCTS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDIwOTFjYmZiNDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5j
bWFrZQpAQCAtMCwwICsxLDQ2IEBACisjIC0gVHJ5IHRvIGZpbmQgZ2JtLgorIyBPbmNlIGRvbmUs
IHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIExJQkdCTV9JTkNMVURFX0RJUlMgLSB0aGUgZ2JtIGlu
Y2x1ZGUgZGlyZWN0b3JpZXMKKyMgIExJQkdCTV9MSUJSQVJJRVMgLSBsaW5rIHRoZXNlIHRvIHVz
ZSBnYm0uCisjCisjIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQg
SE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisjIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2Zp
bmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hlY2tfbW9kdWxlcyhQQ19MSUJHQk0gZ2JtKQor
CitmaW5kX3BhdGgoTElCR0JNX0lOQ0xVREVfRElSUworICAgIE5BTUVTIGdibS5oCisgICAgSElO
VFMgJHtQQ19MSUJHQk1fSU5DTFVERV9ESVJTfSAke1BDX0xJQkdCTV9JTkNVREVESVJ9CispCisK
K2ZpbmRfbGlicmFyeShMSUJHQk1fTElCUkFSSUVTCisgICAgTkFNRVMgZ2JtCisgICAgSElOVFMg
JHtQQ19MSUJHQk1fTElCUkFSWV9ESVJTfSAke1BDX0xJQkdCTV9MSUJESVJ9CispCisKK2luY2x1
ZGUoRmluZFBhY2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFORExFX1NU
QU5EQVJEX0FSR1MoTElCR0JNIERFRkFVTFRfTVNHIExJQkdCTV9MSUJSQVJJRVMpCisKK21hcmtf
YXNfYWR2YW5jZWQoTElCR0JNX0lOQ0xVREVfRElSUyBMSUJHQk1fTElCUkFSSUVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLW1lc2EuY21ha2UgYi9Tb3VyY2UvY21h
a2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMC4uNjE2MTU0ZTYxMTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2Uv
RmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRvIGZp
bmQgV1BFLW1lc2EuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX01F
U0FfRk9VTkQgLSBzeXN0ZW0gaGFzIFdQRS1tZXNhLgorIyAgV1BFX01FU0FfSU5DTFVERV9ESVJT
IC0gdGhlIFdQRS1tZXNhIGluY2x1ZGUgZGlyZWN0b3JpZXMKKyMgIFdQRV9NRVNBX0xJQlJBUklF
UyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRS1tZXNhLgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYg
SWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBD
T1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisj
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGCisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3BhY2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNr
X21vZHVsZXMoUENfV1BFX01FU0EgUVVJRVQgd3BlLW1lc2EpCisKK2ZpbmRfcGF0aChXUEVfTUVT
QV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUtbWVzYS92aWV3LWJhY2tlbmQtZXhwb3J0YWJs
ZS1kbWEtYnVmLmgKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0lOQ0xVREVESVJ9ICR7UENfV1BF
X01FU0FfSU5DTFVERV9ESVJTfQorKQorCitmaW5kX2xpYnJhcnkoV1BFX01FU0FfTElCUkFSSUVT
CisgICAgTkFNRVMgV1BFQmFja2VuZC1tZXNhCisgICAgSElOVFMgJHtQQ19XUEVfTUVTQV9MSUJE
SVJ9ICR7UENfV1BFX01FU0FfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2FkdmFuY2VkKFdQ
RV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVTQV9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBh
Y2thZ2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FS
R1MoV1BFX01FU0EgUkVRVUlSRURfVkFSUyBXUEVfTUVTQV9JTkNMVURFX0RJUlMgV1BFX01FU0Ff
TElCUkFSSUVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtl
IGIvU291cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwLi5jN2E5M2QwMDUxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9jbWFrZS9GaW5kV1BFQmFja2VuZC5jbWFrZQpAQCAtMCwwICsxLDQ3IEBACisjIC0gVHJ5IHRv
IGZpbmQgV1BFLgorIyBPbmNlIGRvbmUsIHRoaXMgd2lsbCBkZWZpbmUKKyMKKyMgIFdQRV9GT1VO
RCAtIHN5c3RlbSBoYXMgV1BFLgorIyAgV1BFX0lOQ0xVREVfRElSUyAtIHRoZSBXUEUgaW5jbHVk
ZSBkaXJlY3RvcmllcworIyAgV1BFX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8gdXNlIFdQRS4K
KyMKKyMgQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIg
T1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRgor
IyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworZmluZF9wYWNr
YWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX1dQRSBRVUlFVCB3cGUpCisKK2Zp
bmRfcGF0aChXUEVfSU5DTFVERV9ESVJTCisgICAgTkFNRVMgd3BlL2xvYWRlci5oCisgICAgSElO
VFMgJHtQQ19XUEVfSU5DTFVERURJUn0gJHtQQ19XUEVfSU5DTFVERV9ESVJTfQorKQorCitmaW5k
X2xpYnJhcnkoV1BFX0xJQlJBUklFUworICAgIE5BTUVTIFdQRUJhY2tlbmQKKyAgICBISU5UUyAk
e1BDX1dQRV9MSUJESVJ9ICR7UENfV1BFX0xJQlJBUllfRElSU30KKykKKworbWFya19hc19hZHZh
bmNlZChXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCisKK2luY2x1ZGUoRmluZFBhY2th
Z2VIYW5kbGVTdGFuZGFyZEFyZ3MpCitGSU5EX1BBQ0tBR0VfSEFORExFX1NUQU5EQVJEX0FSR1Mo
V1BFIFJFUVVJUkVEX1ZBUlMgV1BFX0lOQ0xVREVfRElSUyBXUEVfTElCUkFSSUVTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL2NtYWtlL09wdGlvbnNXUEUuY21ha2UgYi9Tb3VyY2UvY21ha2UvT3B0aW9u
c1dQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTI4NzA2
M2UxMjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZQpA
QCAtMCwwICsxLDEzOCBAQAoraW5jbHVkZShHTlVJbnN0YWxsRGlycykKKworc2V0KFBST0pFQ1Rf
VkVSU0lPTl9NQUpPUiAwKQorc2V0KFBST0pFQ1RfVkVSU0lPTl9NSU5PUiAwKQorc2V0KFBST0pF
Q1RfVkVSU0lPTl9QQVRDSCAyMDE3MDMzMCkKK3NldChQUk9KRUNUX1ZFUlNJT04gJHtQUk9KRUNU
X1ZFUlNJT05fTUFKT1J9LiR7UFJPSkVDVF9WRVJTSU9OX01JTk9SfS4ke1BST0pFQ1RfVkVSU0lP
Tl9QQVRDSH0pCitzZXQoV1BFX0FQSV9WRVJTSU9OIDAuMSkKKworaWYgKFdURl9DUFVfWDg2XzY0
KQorICAgIHNldChFTkFCTEVfRlRMX0RFRkFVTFQgT04pCitlbHNlICgpCisgICAgc2V0KEVOQUJM
RV9GVExfREVGQVVMVCBPRkYpCitlbmRpZiAoKQorCitXRUJLSVRfT1BUSU9OX0JFR0lOKCkKKwor
V0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFXzNEX1RSQU5TRk9STVMgUFVC
TElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX0NTU19SRUdJT05TIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9DU1NfU0VMRUNUT1JTX0xFVkVMNCBQVUJMSUMgT04pCitXRUJLSVRf
T1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREFUQUJBU0VfUFJPQ0VTUyBQUklWQVRF
IE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0RFVklDRV9PUklF
TlRBVElPTiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5B
QkxFX0xFR0FDWV9FTkNSWVBURURfTUVESUEgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVG
QVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9GVExfSklUIFBSSVZBVEUgJHtFTkFCTEVfRlRMX0RFRkFV
TFR9KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dBTUVQQUQgUFVC
TElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9HRU9MT0NB
VElPTiBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X0lOREVYRURfREFUQUJBU0UgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMgUFJJVkFURSBPRkYpCitX
RUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfTUVESUFfQ09OVFJPTFNfU0NS
SVBUIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9N
RURJQV9TT1VSQ0UgUFVCTElDIE9GRikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVF
KEVOQUJMRV9NSFRNTCBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkgUFJJVkFURSBPRkYpCitXRUJLSVRfT1BUSU9O
X0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVE9VQ0hfRVZFTlRTIFBVQkxJQyBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFTyBQVUJMSUMgT04pCitXRUJL
SVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklERU9fVFJBQ0sgUFVCTElDIE9O
KQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJRVdfTU9ERV9DU1Nf
TUVESUEgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X1dFQl9BTklNQVRJT05TIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfV0VCX0FVRElPIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9Q
T1JUX1ZBTFVFKEVOQUJMRV9XRUJHTCBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRf
UE9SVF9WQUxVRShFTkFCTEVfV0VCX1RJTUlORyBQVUJMSUMgT04pCisKK1dFQktJVF9PUFRJT05f
REVGSU5FKFVTRV9HU1RSRUFNRVJfR0wgIldoZXRoZXIgdG8gZW5hYmxlIHN1cHBvcnQgZm9yIEdT
dHJlYW1lciBHTCIgUFJJVkFURSBPRkYpCisKK1dFQktJVF9PUFRJT05fRU5EKCkKKworc2V0KEVO
QUJMRV9XRUJDT1JFIE9OKQorc2V0KEVOQUJMRV9XRUJLSVQgT0ZGKQorc2V0KEVOQUJMRV9XRUJL
SVQyIE9OKQorc2V0KEVOQUJMRV9BUElfVEVTVFMgJHtERVZFTE9QRVJfTU9ERX0pCitzZXQoRU5B
QkxFX1RPT0xTIE9OKQorCitzZXQoV1RGX0xJQlJBUllfVFlQRSBTVEFUSUMpCitzZXQoSmF2YVNj
cmlwdENvcmVfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChXZWJDb3JlX0xJQlJBUllfVFlQRSBT
VEFUSUMpCitzZXQoV2ViS2l0Ml9PVVRQVVRfTkFNRSBXUEVXZWJLaXQpCitzZXQoV2ViS2l0Ml9X
ZWJQcm9jZXNzX09VVFBVVF9OQU1FIFdQRVdlYlByb2Nlc3MpCitzZXQoV2ViS2l0Ml9OZXR3b3Jr
UHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVOZXR3b3JrUHJvY2VzcykKK3NldChXZWJLaXQyX0RhdGFi
YXNlUHJvY2Vzc19PVVRQVVRfTkFNRSBXUEVEYXRhYmFzZVByb2Nlc3MpCisKK2ZpbmRfcGFja2Fn
ZShJQ1UgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoVGhyZWFkcyBSRVFVSVJFRCkKK2ZpbmRfcGFj
a2FnZShaTElCIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEdMSUIgMi40MC4wIFJFUVVJUkVEIENP
TVBPTkVOVFMgZ2lvIGdpby11bml4IGdvYmplY3QgZ3RocmVhZCBnbW9kdWxlKQorZmluZF9wYWNr
YWdlKEdudVRMUyAzLjAuMCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKENhaXJvIDEuMTAuMiBS
RVFVSVJFRCkKK2ZpbmRfcGFja2FnZShGb250Y29uZmlnIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKEZyZWV0eXBlMiAyLjQuMiBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShIYXJmQnV6eiAw
LjkuMTggUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoSlBFRyBSRVFVSVJFRCkKK2ZpbmRfcGFja2Fn
ZShMaWJHY3J5cHQgMS42LjAgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliU291cCAyLjQyLjAg
UkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoTGliWG1sMiAyLjguMCBSRVFVSVJFRCkKK2ZpbmRfcGFj
a2FnZShMaWJYc2x0IDEuMS43IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKFBORyBSRVFVSVJFRCkK
K2ZpbmRfcGFja2FnZShTcWxpdGUgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoV2ViUCBSRVFVSVJF
RCkKKworZmluZF9wYWNrYWdlKE9wZW5HTEVTMiBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShFR0wg
UkVRVUlSRUQpCisKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kIFJFUVVJUkVEKQorCitzZXQoVVNF
X1hER01JTUUgT04pCisKK2lmIChFTkFCTEVfVklERU8gT1IgRU5BQkxFX1dFQl9BVURJTykKKyAg
ICBzZXQoR1NUUkVBTUVSX0NPTVBPTkVOVFMgYXBwIGF1ZGlvIHBidXRpbHMpCisgICAgU0VUX0FO
RF9FWFBPU0VfVE9fQlVJTEQoVVNFX0dTVFJFQU1FUiBUUlVFKQorICAgIGlmIChFTkFCTEVfVklE
RU8pCisgICAgICAgIGxpc3QoQVBQRU5EIEdTVFJFQU1FUl9DT01QT05FTlRTIHZpZGVvIHRhZykK
KyAgICBlbmRpZiAoKQorCisgICAgaWYgKEVOQUJMRV9XRUJfQVVESU8pCisgICAgICAgIGxpc3Qo
QVBQRU5EIEdTVFJFQU1FUl9DT01QT05FTlRTIGZmdCkKKyAgICAgICAgU0VUX0FORF9FWFBPU0Vf
VE9fQlVJTEQoVVNFX1dFQkFVRElPX0dTVFJFQU1FUiBUUlVFKQorICAgIGVuZGlmICgpCisKKyAg
ICBmaW5kX3BhY2thZ2UoR1N0cmVhbWVyIDEuMi4zIFJFUVVJUkVEIENPTVBPTkVOVFMgJHtHU1RS
RUFNRVJfQ09NUE9ORU5UU30pCisKKyAgICAjIEZJWE1FOiBXaGF0IGFib3V0IE1QRUdUUyBzdXBw
b3J0PyBVU0VfR1NUUkVBTUVSX01QRUdUUz8KK2VuZGlmICgpCisKK2lmIChFTkFCTEVfTUVESUFf
U1RSRUFNIE9SIEVOQUJMRV9XRUJfUlRDKQorICAgIGZpbmRfcGFja2FnZShPcGVuV2ViUlRDKQor
ICAgIGlmIChOT1QgT1BFTldFQlJUQ19GT1VORCkKKyAgICAgICAgbWVzc2FnZShGQVRBTF9FUlJP
UiAiT3BlbldlYlJUQyBpcyBuZWVkZWQgZm9yIEVOQUJMRV9NRURJQV9TVFJFQU0gYW5kIEVOQUJM
RV9XRUJfUlRDLiIpCisgICAgZW5kaWYgKCkKKyAgICBTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChV
U0VfT1BFTldFQlJUQyBUUlVFKQorZW5kaWYgKCkKKworaWYgKEVOQUJMRV9BQ0NFTEVSQVRFRF8y
RF9DQU5WQVMpCisgICAgZmluZF9wYWNrYWdlKENhaXJvR0wgMS4xMC4yIFJFUVVJUkVEIENPTVBP
TkVOVFMgY2Fpcm8tZWdsKQorZW5kaWYgKCkKKworYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdf
V1BFX189MSkKK2FkZF9kZWZpbml0aW9ucygtRERBVEFfRElSPSIke0NNQUtFX0lOU1RBTExfREFU
QURJUn0iKQorCitzZXQoVVNFX1VESVM4NiAxKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChV
U0VfT1BFTkdMX0VTXzIgVFJVRSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9FR0wgVFJV
RSkKKworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoRU5BQkxFX0dSQVBISUNTX0NPTlRFWFRfM0Qg
VFJVRSkKKworU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RFWFRVUkVfTUFQUEVSIFRSVUUp
CitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVJfR0wgVFJVRSkKK1NF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9USUxFRF9CQUNLSU5HX1NUT1JFIFRSVUUpCitTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfQ09PUkRJTkFURURfR1JBUEhJQ1MgVFJVRSkKK1NFVF9B
TkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCBUUlVF
KQorCitzZXQoRk9SV0FSRElOR19IRUFERVJTX0RJUiAke0RFUklWRURfU09VUkNFU19ESVJ9L0Zv
cndhcmRpbmdIZWFkZXJzKQorCisjIEJ1aWxkIHdpdGggLWZ2aXNpYmlsaXR5PWhpZGRlbiB0byBy
ZWR1Y2UgdGhlIHNpemUgb2YgdGhlIHNoYXJlZCBsaWJyYXJ5LgorIyBOb3QgdG8gYmUgdXNlZCB3
aGVuIGJ1aWxkaW5nIHRoZSBXZWJLaXRUZXN0UnVubmVyIGxpYnJhcnkuCitpZiAoTk9UIERFVkVM
T1BFUl9NT0RFKQorICAgIHNldChDTUFLRV9DX0ZMQUdTX1JFTEVBU0UgIiR7Q01BS0VfQ19GTEFH
U19SRUxFQVNFfSAtZnZpc2liaWxpdHk9aGlkZGVuIikKKyAgICBzZXQoQ01BS0VfQ1hYX0ZMQUdT
X1JFTEVBU0UgIiR7Q01BS0VfQ1hYX0ZMQUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4g
LWZ2aXNpYmlsaXR5LWlubGluZXMtaGlkZGVuIikKK2VuZGlmICgpCmRpZmYgLS1naXQgYS9Ub29s
cy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFyY2hpdmUKaW5kZXggZDU4MDBhMWU5ZDQuLmViMjBm
NzBmM2YxIDEwMDY0NAotLS0gYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0
LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVjdC1hcmNo
aXZlCkBAIC0xNjMsNyArMTYzLDcgQEAgZGVmIGRpckNvbnRhaW5zZHdvKGRpcmVjdG9yeSk6CiAK
IAogZGVmIGFyY2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQ
bGF0Zm9ybSk6Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsnLCAn
ZWZsJywgJ2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsn
LCAnZWZsJywgJ2lvcycsICd3cGUnKQogCiAgICAgIyBGSVhNRTogSW1hZ2VEaWZmIHNob3VsZCBi
ZSBidWlsdCB3aXRoIHRoZSBob3N0IFNESywgPHJkYXI6Ly9wcm9ibGVtLzMwMjY2MDM4Pi4KICAg
ICAjIEFuIGFwcHJvYWNoIHNpbWlsYXIgdG8gdGhlIG9uZSB1c2VkIGZvciBMYXlvdXRUZXN0UmVs
YXkgaW4gcjE5MDUxNSBzaG91bGQgYmUgaW1sZW1lbnRlZC4KQEAgLTE4Miw3ICsxODIsNyBAQCBk
ZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVsbFBsYXRm
b3JtKToKIAogICAgICAgICBzaHV0aWwucm10cmVlKHRoaW5EaXJlY3RvcnkpCiAKLSAgICBlbGlm
IHBsYXRmb3JtID09ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnOgorICAgIGVsaWYgcGxhdGZv
cm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCcgb3IgcGxhdGZvcm0gPT0gJ3dwZSc6CiAg
ICAgICAgICMgT24gR1RLKy9FRkwgd2UgZG9uJ3QgbmVlZCB0aGUgaW50ZXJtZWRpYXRlIHN0ZXAg
b2YgY3JlYXRpbmcgYSB0aGluRGlyZWN0b3J5CiAgICAgICAgICMgdG8gYmUgY29tcHJlc3NlZCBp
biBhIFpJUCBmaWxlLCBiZWNhdXNlIHdlIGNhbiBjcmVhdGUgdGhlIFpJUCBkaXJlY3RseS4KICAg
ICAgICAgIyBUaGlzIGlzIGZhc3RlciBhbmQgcmVxdWlyZXMgbGVzcyBkaXNrIHJlc291cmNlcy4K
QEAgLTIxNiw3ICsyMTYsNyBAQCBkZWYgdW56aXBBcmNoaXZlKGRpcmVjdG9yeVRvRXh0cmFjdFRv
LCBjb25maWd1cmF0aW9uKToKIAogCiBkZWYgZXh0cmFjdEJ1aWx0UHJvZHVjdChjb25maWd1cmF0
aW9uLCBwbGF0Zm9ybSk6Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdn
dGsnLCAnZWZsJywgJ2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbics
ICdndGsnLCAnZWZsJywgJ2lvcycsICd3cGUnKQogCiAgICAgYXJjaGl2ZUZpbGUgPSBvcy5wYXRo
LmpvaW4oX3RvcExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24gKyAnLnppcCcpCiAK
QEAgLTIyNSw3ICsyMjUsNyBAQCBkZWYgZXh0cmFjdEJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9u
LCBwbGF0Zm9ybSk6CiAKICAgICBpZiBwbGF0Zm9ybSBpbiAoJ21hYycsICdpb3MnKToKICAgICAg
ICAgcmV0dXJuIHVuemlwQXJjaGl2ZShfdG9wTGV2ZWxCdWlsZERpcmVjdG9yeSwgY29uZmlndXJh
dGlvbikKLSAgICBlbGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09ICdndGsnIG9y
IHBsYXRmb3JtID09ICdlZmwnOgorICAgIGVsaWYgcGxhdGZvcm0gPT0gJ3dpbicgb3IgcGxhdGZv
cm0gPT0gJ2d0aycgb3IgcGxhdGZvcm0gPT0gJ2VmbCcgb3IgcGxhdGZvcm0gPT0gJ3dwZSc6CiAg
ICAgICAgIHByaW50ICdFeHRyYWN0aW5nJywgX2NvbmZpZ3VyYXRpb25CdWlsZERpcmVjdG9yeQog
ICAgICAgICByZXR1cm4gdW56aXBBcmNoaXZlKF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3Rvcnks
IGNvbmZpZ3VyYXRpb24pCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L3Rl
c3QtcmVzdWx0LWFyY2hpdmUgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1h
cmNoaXZlCmluZGV4IDNjMmIwYmQ3YTM2Li45ODBmMDcxYzE0ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
QnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNs
YXZlU3VwcG9ydC90ZXN0LXJlc3VsdC1hcmNoaXZlCkBAIC00Niw3ICs0Niw3IEBAIGRlZiBtYWlu
KCk6CiAgICAgcmV0dXJuIGFyY2hpdmVUZXN0UmVzdWx0cyhvcHRpb25zLmNvbmZpZ3VyYXRpb24s
IG9wdGlvbnMucGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGlyKQogCiBkZWYgYXJjaGl2ZVRl
c3RSZXN1bHRzKGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6
Ci0gICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdndGsnLCAnZWZsJywgJ3dp
bmNhaXJvJywgJ2lvcycpCisgICAgYXNzZXJ0IHBsYXRmb3JtIGluICgnbWFjJywgJ3dpbicsICdn
dGsnLCAnZWZsJywgJ3dpbmNhaXJvJywgJ2lvcycsICd3cGUnKQogCiAgICAgdHJ5OgogICAgICAg
ICBvcy51bmxpbmsoYXJjaGl2ZUZpbGUpCkBAIC02Niw3ICs2Niw3IEBAIGRlZiBhcmNoaXZlVGVz
dFJlc3VsdHMoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGxheW91dFRlc3RSZXN1bHRzRGlyKToK
ICAgICBpZiBwbGF0Zm9ybSBpbiAoJ21hYycsICdpb3MnKToKICAgICAgICAgaWYgc3VicHJvY2Vz
cy5jYWxsKFsiZGl0dG8iLCAiLWMiLCAiLWsiLCAiLS1zZXF1ZXN0ZXJSc3JjIiwgIi0temxpYkNv
bXByZXNzaW9uTGV2ZWwiLCAiMiIsIGxheW91dFRlc3RSZXN1bHRzRGlyLCBhcmNoaXZlRmlsZV0p
OgogICAgICAgICAgICAgcmV0dXJuIDEKLSAgICBlbGlmIHBsYXRmb3JtIGluICgnd2luJywgJ2d0
aycsICdlZmwnLCAnd2luY2Fpcm8nKToKKyAgICBlbGlmIHBsYXRmb3JtIGluICgnd2luJywgJ2d0
aycsICdlZmwnLCAnd2luY2Fpcm8nLCAnd3BlJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2Fs
bChbInppcCIsICItciIsICItMiIsIGFyY2hpdmVGaWxlLCAiLiJdLCBjd2Q9bGF5b3V0VGVzdFJl
c3VsdHNEaXIpOgogICAgICAgICAgICAgcmV0dXJuIDEKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ01h
a2VMaXN0cy50eHQgYi9Ub29scy9DTWFrZUxpc3RzLnR4dAppbmRleCA0YjJlZGI4ZGU5Ny4uNWI5
Y2QzOWI5OTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NNYWtlTGlzdHMudHh0CisrKyBiL1Rvb2xzL0NN
YWtlTGlzdHMudHh0CkBAIC0zNSw2ICszNSwxMSBAQCBlbHNlaWYgKCIke1BPUlR9IiBTVFJFUVVB
TCAiSlNDT25seSIpCiAgICAgaWYgKEVOQUJMRV9BUElfVEVTVFMpCiAgICAgICAgIGFkZF9zdWJk
aXJlY3RvcnkoVGVzdFdlYktpdEFQSSkKICAgICBlbmRpZiAoKQorZWxzZWlmICgiJHtQT1JUfSIg
U1RSRVFVQUwgIldQRSIpCisgICAgaWYgKERFVkVMT1BFUl9NT0RFKQorICAgICAgICBhZGRfc3Vi
ZGlyZWN0b3J5KEltYWdlRGlmZikKKyAgICAgICAgYWRkX3N1YmRpcmVjdG9yeShXZWJLaXRUZXN0
UnVubmVyKQorICAgIGVuZGlmICgpCiBlbmRpZiAoKQogCiBpZiAoV0lOMzIpCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDRlMDZlZDJjNDIuLjcw
OTVjZDNmODAyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsNjkgQEAKKzIwMTctMDQtMjEgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNl
a0BpZ2FsaWEuY29tPgorCisgICAgICAgIFVwc3RyZWFtIHRoZSBXUEUgcG9ydAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMTEwCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgd2Via2l0LWRldiB0aHJlYWQ6
CisgICAgICAgIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRldi8y
MDE3LUFwcmlsLzAyODkyMy5odG1sCisKKyAgICAgICAgQWRkIFdQRSBzdXBwb3J0IHRvIHZhcmlv
dXMgdG9vbGluZyBzY3JpcHRzLCBUZXN0V2ViS2l0QVBJIGFuZCBXZWJLaXRUZXN0UnVubmVyLgor
ICAgICAgICBJbi1maWxlIGNoYW5nZXMgcmVtb3ZlZCBmcm9tIHRoaXMgQ2hhbmdlTG9nIGVudHJ5
IGZvciBicmV2aXR5LgorCisgICAgICAgICogQnVpbGRTbGF2ZVN1cHBvcnQvYnVpbHQtcHJvZHVj
dC1hcmNoaXZlOgorICAgICAgICAqIEJ1aWxkU2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hp
dmU6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogSW1hZ2VEaWZmL1BsYXRm
b3JtV1BFLmNtYWtlOiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0
cmVlOgorICAgICAgICAqIFNjcmlwdHMvYnVpbGQtd2Via2l0OgorICAgICAgICAqIFNjcmlwdHMv
YnVpbGQtd2Via2l0dGVzdHJ1bm5lcjoKKyAgICAgICAgKiBTY3JpcHRzL3VwZGF0ZS13ZWJraXQt
bGlicy1qaGJ1aWxkOgorICAgICAgICAqIFNjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzOiBB
ZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgICogU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRfdGVzdHMucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJr
aXRweS9wb3J0L2ZhY3RvcnkucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L3dw
ZS5weTogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZTog
QWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9s
bGVyV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hhcmVkL0RyYXdpbmdBcmVh
SW5mby5oLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0aWVzV1BF
LmNwcDogQWRkZWQuCisgICAgICAgICogVGVzdFdlYktpdEFQSS93cGUvbWFpbi5jcHA6IENvcGll
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAg
KiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVy
LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2li
aWxpdHlDb250cm9sbGVyLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaDoKKyAgICAgICAgKiBX
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV1BFLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHA6IEFkZGVkLgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3Bw
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9J
bmplY3RlZEJ1bmRsZVdQRS5jcHA6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hh
cmVkL0RyYXdpbmdBcmVhSW5mby5oLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZv
cm1XUEUuY21ha2U6IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1X
ZWJWaWV3Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHA6
CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHA6
IEFkZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwOiBBZGRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1Zp
ZXdCYWNrZW5kLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuaC4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwOiBBZGRlZC4K
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHA6IEFk
ZGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwOiBDb3BpZWQgZnJv
bSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJbmZvLmguCisgICAgICAgICogamhi
dWlsZC9qaGJ1aWxkLXdyYXBwZXI6CisgICAgICAgICogd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1n
cmVzb3VyY2UtbWFuaWZlc3QucHk6IEFkZGVkLgorICAgICAgICAqIHdwZS9qaGJ1aWxkLm1vZHVs
ZXM6IEFkZGVkLgorICAgICAgICAqIHdwZS9qaGJ1aWxkcmM6IEFkZGVkLgorICAgICAgICAqIHdw
ZS9wYXRjaGVzL2NhaXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaDog
QWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEt
c3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoOiBBZGRlZC4KKyAgICAg
ICAgKiB3cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZp
eC5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3Ry
aW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9w
YXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2g6IEFkZGVkLgorICAgICAgICAqIHdwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNo
OiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxz
Y2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoOiBB
ZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRl
bXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2g6IEFkZGVkLgor
ICAgICAgICAqIHdwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29k
ZS10aW1lLnBhdGNoOiBBZGRlZC4KKyAgICAgICAgKiB3cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlw
ZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2g6IEFk
ZGVkLgorCiAyMDE3LTA0LTIwICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5y
dT4KIAogICAgICAgICBbY21ha2VdIERlZmluZSBGT1JXQVJESU5HX0hFQURFUlNfRElSIGluIFdl
YktpdEZTIGFuZCB1c2UgaXQgZXZlcnl3aGVyZQpkaWZmIC0tZ2l0IGEvVG9vbHMvSW1hZ2VEaWZm
L1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBlZTUzMjhiYQotLS0gL2Rl
di9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsx
IEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWls
ZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRyZWUKaW5k
ZXggYzMwOWI4MmQ5OGMuLjY5YjRkMGU0NjVkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL2J1
aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJlbmRlcnRy
ZWUKQEAgLTY2LDcgKzY2LDcgQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0ZGlyKCJUb29scyIsICJE
dW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIkR1bXBSZW5kZXJUcmVl
IiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBp
c0VmbCgpIHx8IGlzQW55V2luZG93cygpKSB7Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkg
fHwgaXNBbnlXaW5kb3dzKCkgfHwgaXNXUEUoKSkgewogICAgICMgR3RrLCBFRkwsIGFuZCBXaW5k
b3dzIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhp
bmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdCBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0CmluZGV4IGFi
MjUyYWM2NTBmLi5mZjRjYjBjNGYzMSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKKysrIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQKQEAgLTEwMSw2ICsxMDEsNyBA
QCBVc2FnZTogJHByb2dyYW1OYW1lIFtvcHRpb25zXSBbb3B0aW9ucyB0byBwYXNzIHRvIGJ1aWxk
IHN5c3RlbV0KIAogICAtLWVmbCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhl
IEVGTCBwb3J0CiAgIC0tZ3RrICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUg
R1RLKyBwb3J0CisgIC0td3BlICAgICAgICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB0aGUg
V1BFIHBvcnQKICAgLS13aW5jYWlybyAgICAgICAgICAgICAgICAgICAgICAgIEJ1aWxkIHVzaW5n
IENhaXJvIChyYXRoZXIgdGhhbiBDb3JlR3JhcGhpY3MpIG9uIFdpbmRvd3MKIAogICAtLWluc3Bl
Y3Rvci1mcm9udGVuZCAgICAgICAgICAgICAgQ29weSBXZWIgSW5zcGVjdG9yIHVzZXIgaW50ZXJm
YWNlIHJlc291cmNlcyB0byB0aGUgYnVpbGQgZGlyZWN0b3J5CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtp
dHRlc3RydW5uZXIKaW5kZXggNDRlMjVhMzg1MTguLjBmZTUxZTA4MjM0IDEwMDc1NQotLS0gYS9U
b29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdHRlc3RydW5uZXIKKysrIGIvVG9vbHMvU2NyaXB0cy9i
dWlsZC13ZWJraXR0ZXN0cnVubmVyCkBAIC02MSw3ICs2MSw3IEBAIGNoZGlyICJUb29scy9XZWJL
aXRUZXN0UnVubmVyIiBvciBkaWU7CiBteSAkcmVzdWx0OwogaWYgKGlzQXBwbGVDb2NvYVdlYktp
dCgpKSB7CiAgICAgJHJlc3VsdCA9IGJ1aWxkWENvZGVQcm9qZWN0KCJXZWJLaXRUZXN0UnVubmVy
IiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAoaXNHdGsoKSB8fCBp
c0VmbCgpKSB7Cit9IGVsc2lmIChpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSkgewogICAg
ICMgR1RLKyBhbmQgRUZMIGJ1aWxkIGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8g
YnVpbGQgYW55dGhpbmcgaGVyZS4KICAgICAkcmVzdWx0ID0gMDsKIH0gZWxzZSB7CmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkIGIvVG9vbHMvU2Ny
aXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAppbmRleCAzODkzZGFmZDhlZS4uZWVkNWY2
YmRlYTEgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVp
bGQKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZApAQCAtMjUs
OSArMjUsMTAgQEAgdXNlIEdldG9wdDo6TG9uZyBxdyg6Y29uZmlnIHBhc3NfdGhyb3VnaCk7CiBt
eSAkcGxhdGZvcm0gPSAiIjsKICRwbGF0Zm9ybSA9ICJlZmwiIGlmIGlzRWZsKCk7CiAkcGxhdGZv
cm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIgaWYgaXNXUEUoKTsKIAog
aWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAu
IGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrIG9yIC0tZWZsLlxuIjsKKyAgICBkaWUgIk5vIHBs
YXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLCAtLWVm
bCBvciAtLXdwZS5cbiI7CiB9CiAKIG15ICR3aXBlT25DaGFuZ2UgPSAkRU5We0pIQlVJTERfV0lQ
RV9PTl9DSEFOR0V9IC8vIDE7CkBAIC0xMzMsNyArMTM0LDcgQEAgZGVsZXRlICRFTlZ7QVJfRkxB
R1N9IGlmIGV4aXN0cyAkRU5We0FSX0ZMQUdTfTsKIAogY2hkaXIocmVsYXRpdmVTY3JpcHRzRGly
KCkgLiAiLy4uL2poYnVpbGQiKSBvciBkaWUgJCE7CiAKLW15ICVwcmV0dHlQbGF0Zm9ybSA9ICgg
ImVmbCIgPT4gIkVGTCIsICJndGsiID0+ICJHVEsrIiApOworbXkgJXByZXR0eVBsYXRmb3JtID0g
KCAiZWZsIiA9PiAiRUZMIiwgImd0ayIgPT4gIkdUSysiLCAid3BlIiA9PiAiV1BFIiApOwogCiBp
ZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZpZ3VyYXRpb25DaGFuZ2VkKCkpIHsKICAgICBwcmlu
dCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3JtfSAuICIgcG9ydCBkZXBlbmRlbmNpZXMgYXJlIGFs
cmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvdXBkYXRlLXdl
YmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmIyM2ZiZGU2YjgzCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMKQEAgLTAsMCArMSwy
NCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjIENvcHlyaWdodCAoQykgMjAxMSBJZ2FsaWEgUy5M
LgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24KKyMKKyMgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGlj
CisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247
IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0
aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJ
VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBM
ZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVi
bGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8g
dGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK3VzZSBGaW5kQmlu
OwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtpdGRpcnM7CisKK215ICRzY3JpcHRz
RGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0ZW0oInBlcmwiLCAiJHNjcmlwdHNEaXIv
dXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQiLCAiLS13cGUiLCBAQVJHVikgPT0gMCBvciBkaWUg
JCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3Jp
cHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYzQwYWZmNmY4MjguLmJjYjFkM2VjMDJlIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRkaXJzLnBtCkBAIC0xMDgsNiArMTA4LDcgQEAgdXNlIGNvbnN0YW50IHsKICAgICBNYWMgICAg
ICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9PiAiSlNDT25seSIsCiAgICAgV2luQ2Fpcm8gPT4g
IldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9PiAiV1BFIiwKICAgICBVbmtub3duICA9PiAiVW5r
bm93biIKIH07CiAKQEAgLTQ0Nyw2ICs0NDgsNyBAQCBzdWIgYXJndW1lbnRzRm9yQ29uZmlndXJh
dGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tNjQtYml0JykgaWYgKGlzV2luNjQoKSk7CiAgICAg
cHVzaChAYXJncywgJy0tZ3RrJykgaWYgaXNHdGsoKTsKICAgICBwdXNoKEBhcmdzLCAnLS1lZmwn
KSBpZiBpc0VmbCgpOworICAgIHB1c2goQGFyZ3MsICctLXdwZScpIGlmIGlzV1BFKCk7CiAgICAg
cHVzaChAYXJncywgJy0tanNjLW9ubHknKSBpZiBpc0pTQ09ubHkoKTsKICAgICBwdXNoKEBhcmdz
LCAnLS13aW5jYWlybycpIGlmIGlzV2luQ2Fpcm8oKTsKICAgICBwdXNoKEBhcmdzLCAnLS1pbnNw
ZWN0b3ItZnJvbnRlbmQnKSBpZiBpc0luc3BlY3RvckZyb250ZW5kKCk7CkBAIC02ODIsNyArNjg0
LDcgQEAgc3ViIGV4ZWN1dGFibGVQcm9kdWN0RGlyCiAgICAgbXkgJHByb2R1Y3REaXJlY3Rvcnkg
PSBwcm9kdWN0RGlyKCk7CiAKICAgICBteSAkYmluYXJ5RGlyZWN0b3J5OwotICAgIGlmIChpc0Vm
bCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNFZmwoKSB8fCBpc0d0
aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpIHsKICAgICAgICAgJGJpbmFyeURpcmVjdG9y
eSA9ICJiaW4iOwogICAgIH0gZWxzaWYgKGlzQW55V2luZG93cygpKSB7CiAgICAgICAgICRiaW5h
cnlEaXJlY3RvcnkgPSBpc1dpbjY0KCkgPyAiYmluNjQiIDogImJpbjMyIjsKQEAgLTk0Myw2ICs5
NDUsOSBAQCBzdWIgYnVpbHREeWxpYlBhdGhGb3JOYW1lCiAgICAgICAgICAgICByZXR1cm4gIiRi
YXNlUHJvZHVjdERpci8kbGlicmFyeU5hbWUuaW50ZXJtZWRpYXRlLyRjb25maWd1cmF0aW9uLyRs
aWJyYXJ5TmFtZS5pbnRlcm1lZGlhdGUvJGxpYnJhcnlOYW1lLmxpYiI7CiAgICAgICAgIH0KICAg
ICB9CisgICAgaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkY29uZmlndXJhdGlvblBy
b2R1Y3REaXIvbGliL2xpYldQRVdlYktpdC5zbyI7CisgICAgfQogCiAgICAgZGllICJVbnN1cHBv
cnRlZCBwbGF0Zm9ybSwgY2FuJ3QgZGV0ZXJtaW5lIGJ1aWx0IGxpYnJhcnkgbG9jYXRpb25zLlxu
VHJ5IGBidWlsZC13ZWJraXQgLS1oZWxwYCBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiI7CiB9CkBA
IC0xMDU4LDcgKzEwNjMsOCBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUoKQogICAgICAgICBlZmwg
PT4gRWZsLAogICAgICAgICBndGsgPT4gR1RLLAogICAgICAgICAnanNjLW9ubHknID0+IEpTQ09u
bHksCi0gICAgICAgIHdpbmNhaXJvID0+IFdpbkNhaXJvCisgICAgICAgIHdpbmNhaXJvID0+IFdp
bkNhaXJvLAorICAgICAgICB3cGUgPT4gV1BFCiAgICAgKTsKIAogICAgIGZvciBteSAkYXJnIChz
b3J0IGtleXMgJWFyZ1RvUG9ydE5hbWUpIHsKQEAgLTEwOTMsNiArMTA5OSw3IEBAIHN1YiBkZXRl
cm1pbmVQb3J0TmFtZSgpCiAgICAgICAgICAgICAgICAgLS1lZmwKICAgICAgICAgICAgICAgICAt
LWd0awogICAgICAgICAgICAgICAgIC0tanNjLW9ubHkKKyAgICAgICAgICAgICAgICAtLXdwZQog
ICAgICAgICAgICAgKTsKICAgICAgICAgICAgIGRpZSAiUGxlYXNlIHNwZWNpZnkgd2hpY2ggV2Vi
S2l0IHBvcnQgdG8gYnVpbGQgdXNpbmcgb25lIG9mIHRoZSBmb2xsb3dpbmcgb3B0aW9uczoiCiAg
ICAgICAgICAgICAgICAgLiAiXG5cdCRwb3J0c0Nob2ljZVxuIjsKQEAgLTExMjUsNiArMTEzMiwx
MSBAQCBzdWIgaXNKU0NPbmx5KCkKICAgICByZXR1cm4gcG9ydE5hbWUoKSBlcSBKU0NPbmx5Owog
fQogCitzdWIgaXNXUEUoKQoreworICAgIHJldHVybiBwb3J0TmFtZSgpIGVxIFdQRTsKK30KKwog
IyBEZXRlcm1pbmUgaWYgdGhpcyBpcyBkZWJpYW4sIHVidW50dSwgbGluc3BpcmUsIG9yIHNvbWV0
aGluZyBzaW1pbGFyLgogc3ViIGlzRGViaWFuQmFzZWQoKQogewpAQCAtMTUyOCw2ICsxNTQwLDgg
QEAgc3ViIGxhdW5jaGVyUGF0aCgpCiAgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1Bh
dGgvcnVuLW1pbmlicm93c2VyIjsKICAgICB9IGVsc2lmIChpc0FwcGxlV2ViS2l0KCkpIHsKICAg
ICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3JpcHRzUGF0aC9ydW4tc2FmYXJpIjsKKyAgICB9IGVs
c2lmIChpc1dQRSgpKSB7CisgICAgICAgIHJldHVybiAiJHJlbGF0aXZlU2NyaXB0c1BhdGgvcnVu
LXdwZSI7CiAgICAgfQogfQogCkBAIC0xNTM5LDYgKzE1NTMsOCBAQCBzdWIgbGF1bmNoZXJOYW1l
KCkKICAgICAgICAgcmV0dXJuICJTYWZhcmkiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXaW5XZWJL
aXQoKSkgewogICAgICAgICByZXR1cm4gIk1pbmlCcm93c2VyIjsKKyAgICB9IGVsc2lmIChpc1dQ
RSgpKSB7CisgICAgICAgIHJldHVybiAiV1BFTGF1bmNoZXIiOwogICAgIH0KIH0KIApAQCAtMTg0
MCw2ICsxODU2LDggQEAgc3ViIGdldEpoYnVpbGRQYXRoKCkKICAgICAgICAgcHVzaChAamhidWls
ZFBhdGgsICJEZXBlbmRlbmNpZXNFRkwiKTsKICAgICB9IGVsc2lmIChpc0d0aygpKSB7CiAgICAg
ICAgIHB1c2goQGpoYnVpbGRQYXRoLCAiRGVwZW5kZW5jaWVzR1RLIik7CisgICAgfSBlbHNpZiAo
aXNXUEUoKSkgeworICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2llc1dQRSIp
OwogICAgIH0gZWxzZSB7CiAgICAgICAgIGRpZSAiQ2Fubm90IGdldCBKSEJ1aWxkIHBhdGggZm9y
IHBsYXRmb3JtIHRoYXQgaXNuJ3QgR1RLKyBvciBFRkwuXG4iOwogICAgIH0KQEAgLTE4ODIsNiAr
MTkwMCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQogICAgICAgICAgICAgcHVzaChA
cHJlZml4LCAiLS1lZmwiKTsKICAgICAgICAgfSBlbHNpZiAoaXNHdGsoKSkgewogICAgICAgICAg
ICAgcHVzaChAcHJlZml4LCAiLS1ndGsiKTsKKyAgICAgICAgfSBlbHNpZiAoaXNXUEUoKSkgewor
ICAgICAgICAgICAgcHVzaChAcHJlZml4LCAiLS13cGUiKTsKICAgICAgICAgfQogICAgICAgICBw
dXNoKEBwcmVmaXgsICJydW4iKTsKIApAQCAtMjA0MCw3ICsyMDYwLDcgQEAgc3ViIGdlbmVyYXRl
QnVpbGRTeXN0ZW1Gcm9tQ01ha2VQcm9qZWN0CiAgICAgcHVzaCBAYXJncywgJy1EU0hPV19CSU5E
SU5HU19HRU5FUkFUSU9OX1BST0dSRVNTPTEnIHVubGVzcyAoJHdpbGxVc2VOaW5qYSAmJiAtdCBT
VERPVVQpOwogCiAgICAgIyBTb21lIHBvcnRzIGhhdmUgcHJvZHVjdGlvbiBtb2RlLCBidXQgYnVp
bGQtd2Via2l0IHNob3VsZCBhbHdheXMgdXNlIGRldmVsb3BlciBtb2RlLgotICAgIHB1c2ggQGFy
Z3MsICItRERFVkVMT1BFUl9NT0RFPU9OIiBpZiBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNKU0NP
bmx5KCk7CisgICAgcHVzaCBAYXJncywgIi1EREVWRUxPUEVSX01PREU9T04iIGlmIGlzRWZsKCkg
fHwgaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJu
IHZhcmlhYmxlcyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBh
cmdzLCAiLS1uby13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEyMSw2ICsyMTQxLDEwIEBAIHN1YiBi
dWlsZENNYWtlUHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNv
dXJjZURpci9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGll
ICQhOwogICAgIH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1v
dmVGcm9tQVJHVigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRz
b3VyY2VEaXIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRp
ZSAkITsKKyAgICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWls
ZFN5c3RlbUZyb21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBl
eGl0KCRyZXR1cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJs
L0ZlYXR1cmVMaXN0LnBtCmluZGV4IGI3N2UyYTBkZjJjLi40Yzc0ZDljNDBlMSAxMDA2NDQKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJv
aGliaXRVbmtub3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4g
IjNkLXJlbmRlcmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0g
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBs
ZUNvY29hV2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkpLCB2
YWx1ZSA9PiBcJHRocmVlRFRyYW5zZm9ybXNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0KCkgfHwg
aXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzRWZsKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+
IFwkdGhyZWVEVHJhbnNmb3Jtc1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJhY2NlbGVy
YXRlZC0yZC1jYW52YXMiLCBkZXNjID0+ICJUb2dnbGUgQWNjZWxlcmF0ZWQgMkQgQ2FudmFzIHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTIiwg
ZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGFjY2VsZXJhdGVkMkRDYW52YXNTdXBwb3J0IH0sCisg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+
IGlzV1BFKCksIHZhbHVlID0+IFwkYWNjZWxlcmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJhbGxpbm9uZS1idWlsZCIsIGRlc2MgPT4gIlRvZ2dsZSBhbGwtaW4tb25l
IGJ1aWxkIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FMTElOT05FX0JVSUxEIiwgZGVmYXVs
dCA9PiBpc1dpbmRvd3MoKSwgdmFsdWUgPT4gXCRhbGxJbk9uZUJ1aWxkIH0sCkBAIC0xODMsNyAr
MTgzLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lN
QUdFX1JFU09MVVRJT04iLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkY3NzSW1hZ2VS
ZXNvbHV0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImNzcy1pbWFnZS1zZXQiLCBk
ZXNjID0+ICJUb2dnbGUgQ1NTIGltYWdlLXNldCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2
YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
Q1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQgPT4gKGlzRWZsKCkgfHwgaXNHdGsoKSB8fCBpc1dQRSgp
KSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJj
c3MtcmVnaW9ucyIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgUmVnaW9ucyBzdXBwb3J0IiwKICAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0NTU19SRUdJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBc
JGNzc1JlZ2lvbnNTdXBwb3J0IH0sCkBAIC0yMDcsNyArMjA3LDcgQEAgbXkgQGZlYXR1cmVzID0g
KAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCIsIGRlZmF1bHQgPT4g
aXNFZmwoKSwgdmFsdWUgPT4gXCRkYXRhbGlzdEVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAiZGV2aWNlLW9yaWVudGF0aW9uIiwgZGVzYyA9PiAiVG9nZ2xlIERldmljZSBPcmll
bnRhdGlvbiBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRB
VElPTiIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRkZXZpY2VPcmllbnRh
dGlvblN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RFVklDRV9PUklFTlRBVElP
TiIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkZGV2
aWNlT3JpZW50YXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZG9tNC1ldmVudHMt
Y29uc3RydWN0b3IiLCBkZXNjID0+ICJFeHBvc2UgRE9NNCBFdmVudHMgY29uc3RydWN0b3JzIiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SIiwgZGVmYXVs
dCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+IFwk
ZG9tNEV2ZW50c0NvbnN0cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVz
ID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQg
PT4gMCwgdmFsdWUgPT4gXCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJmdGwtaml0IiwgZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0
aygpIHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAg
IGRlZmluZSA9PiAiRU5BQkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChp
c0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3Vw
cG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAg
RGlyZWN0b3J5IHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVm
YXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBA
QCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVm
YXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAiZ2VvbG9jYXRpb24iLCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0g
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVX
ZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+
IFwkZ2VvbG9jYXRpb25TdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HRU9MT0NB
VElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lPU1dlYktpdCgpIHx8IGlz
R3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRnZW9sb2NhdGlvblN1cHBv
cnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJoaWdoLWRwaS1jYW52YXMiLCBkZXNjID0+ICJUb2dn
bGUgSGlnaCBEUEkgQ2FudmFzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSElH
SF9EUElfQ0FOVkFTIiwgZGVmYXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpKSwgdmFsdWUgPT4gXCRo
aWdoRFBJQ2FudmFzU3VwcG9ydCB9LApAQCAtMjQ2LDcgKzI0Niw3IEBAIG15IEBmZWF0dXJlcyA9
ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lDT05EQVRBQkFTRSIsIGRlZmF1bHQgPT4gIWlz
SU9TV2ViS2l0KCksIHZhbHVlID0+IFwkaWNvbmRhdGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gImluZGV4ZWQtZGF0YWJhc2UiLCBkZXNjID0+ICJUb2dnbGUgSW5kZXhlZCBEYXRh
YmFzZSBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0Ui
LCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQoKSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkp
LCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29jb2FXZWJLaXQo
KSB8fCBpc0VmbCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkaW5kZXhlZERh
dGFiYXNlU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImlucHV0LXNwZWVjaCIsIGRlc2Mg
PT4gIlRvZ2dsZSBJbnB1dCBTcGVlY2ggc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9JTlBVVF9TUEVFQ0giLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkaW5wdXRTcGVlY2hTdXBw
b3J0IH0sCkBAIC0zMTIsNyArMzEyLDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfTUVURVJfRUxFTUVOVCIsIGRlZmF1bHQgPT4gIWlzQXBwbGVXaW5XZWJLaXQo
KSwgdmFsdWUgPT4gXCRtZXRlckVsZW1lbnRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
bWh0bWwiLCBkZXNjID0+ICJUb2dnbGUgTUhUTUwgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkgfHwgaXNFZmwoKSksIHZhbHVlID0+
IFwkbWh0bWxTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1
bHQgPT4gKGlzR3RrKCkgfHwgaXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRtaHRtbFN1
cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJtb3VzZS1jdXJzb3Itc2NhbGUiLCBkZXNjID0+
ICJUb2dnbGUgU2NhbGVkIG1vdXNlIGN1cnNvciBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSIsIGRlZmF1bHQgPT4gaXNFZmwoKSwgdmFsdWUgPT4g
XCRtb3VzZUN1cnNvclNjYWxlU3VwcG9ydCB9LApAQCAtMzI0LDcgKzMyNCw3IEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05BVklHQVRPUl9IV0NPTkNVUlJFTkNZ
IiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJGhhcmR3YXJlQ29uY3VycmVuY3lTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAibmV0c2NhcGUtcGx1Z2luLWFwaSIsIGRlc2MgPT4gIlRvZ2ds
ZSBOZXRzY2FwZSBQbHVnaW4gQVBJIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
TkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4gIWlzSU9TV2ViS2l0KCksIHZhbHVlID0+
IFwkbmV0c2NhcGVQbHVnaW5BUElTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9O
RVRTQ0FQRV9QTFVHSU5fQVBJIiwgZGVmYXVsdCA9PiAoIWlzSU9TV2ViS2l0KCkgJiYgIWlzV1BF
KCkpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAogCiAgICAgeyBvcHRp
b24gPT4gIm5vc25pZmYiLCBkZXNjID0+ICJUb2dnbGUgc3VwcG9ydCBmb3IgJ1gtQ29udGVudC1U
eXBlLU9wdGlvbnM6IG5vc25pZmYnIiwKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05PU05JRkYi
LCBkZWZhdWx0ID0+IGlzRWZsKCksIHZhbHVlID0+IFwkbm9zbmlmZlN1cHBvcnQgfSwKQEAgLTMz
Niw3ICszMzYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9P
UklFTlRBVElPTl9FVkVOVFMiLCBkZWZhdWx0ID0+IGlzSU9TV2ViS2l0KCksIHZhbHVlID0+IFwk
b3JpZW50YXRpb25FdmVudHNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicGVyZm9ybWFu
Y2UtdGltZWxpbmUiLCBkZXNjID0+ICJUb2dnbGUgUGVyZm9ybWFuY2UgVGltZWxpbmUgc3VwcG9y
dCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1
bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRwZXJmb3JtYW5jZVRpbWVsaW5lU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfUEVSRk9STUFOQ0VfVElNRUxJTkUiLCBkZWZhdWx0ID0+
IChpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBw
b3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAicHJveGltaXR5LWV2ZW50cyIsIGRlc2MgPT4gIlRv
Z2dsZSBQcm94aW1pdHkgRXZlbnRzIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
UFJPWElNSVRZX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRwcm94aW1pdHlFdmVu
dHNTdXBwb3J0IH0sCkBAIC0zNjYsNyArMzY2LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAg
ZGVmaW5lID0+ICJVU0VfU1lTVEVNX01BTExPQyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4gXCRz
eXN0ZW1NYWxsb2NTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAidG91Y2gtZXZlbnRzIiwg
ZGVzYyA9PiAiVG9nZ2xlIFRvdWNoIEV2ZW50cyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNFZmwo
KSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkg
fHwgaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHRvdWNoRXZlbnRz
U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInRvdWNoLWljb24tbG9hZGluZyIsIGRlc2Mg
PT4gIlRvZ2dsZSBUb3VjaCBJY29uIExvYWRpbmcgU3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkciLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdG91
Y2hJY29uTG9hZGluZ1N1cHBvcnQgfSwKQEAgLTM3OCwxNiArMzc4LDE2IEBAIG15IEBmZWF0dXJl
cyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJQlJBVElPTiIsIGRlZmF1bHQgPT4gaXNF
ZmwoKSwgdmFsdWUgPT4gXCR2aWJyYXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAi
dmlkZW8iLCBkZXNjID0+ICJUb2dnbGUgVmlkZW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0d0aygpIHx8
IGlzRWZsKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfVklERU8iLCBkZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBp
c0VmbCgpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9LAogCiAgICAgeyBv
cHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZpZGVvIFRyYWNrIHN1cHBv
cnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZhdWx0ID0+IChp
c0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpKSwgdmFsdWUgPT4gXCR2aWRlb1Ry
YWNrU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBkZWZh
dWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSB8fCBpc0VmbCgpIHx8IGlzV1BFKCkp
LCB2YWx1ZSA9PiBcJHZpZGVvVHJhY2tTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2Vi
LWFuaW1hdGlvbnMiLCBkZXNjID0+ICJUb2dnbGUgV2ViIEFuaW1hdGlvbnMgc3VwcG9ydCIsCiAg
ICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJfQU5JTUFUSU9OUyIsIGRlZmF1bHQgPT4gMSwgdmFs
dWUgPT4gXCR3ZWJBbmltYXRpb25zU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1h
dWRpbyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQXVkaW8gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUg
PT4gIkVOQUJMRV9XRUJfQVVESU8iLCBkZWZhdWx0ID0+IChpc0VmbCgpIHx8IGlzR3RrKCkpLCB2
YWx1ZSA9PiBcJHdlYkF1ZGlvU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VC
X0FVRElPIiwgZGVmYXVsdCA9PiAoaXNFZmwoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1
ZSA9PiBcJHdlYkF1ZGlvU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndlYi1yZXBsYXki
LCBkZXNjID0+ICJUb2dnbGUgV2ViIFJlcGxheSBzdXBwb3J0IiwKICAgICAgIGRlZmluZSA9PiAi
RU5BQkxFX1dFQl9SRVBMQVkiLCBkZWZhdWx0ID0+IGlzQXBwbGVDb2NvYVdlYktpdCgpLCB2YWx1
ZSA9PiBcJHdlYlJlcGxheVN1cHBvcnQgfSwKQEAgLTQwMiwxMCArNDAyLDEwIEBAIG15IEBmZWF0
dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9USU1JTkciLCBkZWZhdWx0ID0+
IDEsIHZhbHVlID0+IFwkd2ViVGltaW5nU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIndl
YmFzc2VtYmx5IiwgZGVzYyA9PiAiVG9nZ2xlIFdlYkFzc2VtYmx5IHN1cHBvcnQiLAotICAgICAg
ZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYm
IChpc0d0aygpIHx8IGlzSlNDT25seSgpKSkgLCB2YWx1ZSA9PiBcJHdlYkFzc2VtYmx5U3VwcG9y
dCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCQVNTRU1CTFkiLCBkZWZhdWx0ID0+IChp
c1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlNDT25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVl
ID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViZ2wiLCBk
ZXNjID0+ICJUb2dnbGUgV2ViR0wgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9X
RUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNF
ZmwoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzR3RrKCkgfHwg
aXNFZmwoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR3ZWJnbFN1cHBvcnQgfSwKIAogICAgIHsg
b3B0aW9uID0+ICJ3cml0YWJsZVN0cmVhbUFQSSIsIGRlc2MgPT4gIlRvZ2dsZSBXcml0YWJsZVN0
cmVhbSBBUEkgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XUklUQUJMRV9TVFJF
QU1fQVBJIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdyaXRhYmxlU3RyZWFtQVBJU3VwcG9y
dCB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVu
X3dlYmtpdF90ZXN0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkKaW5kZXggN2M2ZGRjODM5ZjMuLjU3MmU4YTVlNzdkIDEwMDc1NQot
LS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3Rz
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1bl93ZWJraXRf
dGVzdHMucHkKQEAgLTQyNCw3ICs0MjQsNyBAQCBkZWYgX3NldF91cF9kZXJpdmVkX29wdGlvbnMo
cG9ydCwgb3B0aW9ucyk6CiAgICAgICAgIG9wdGlvbnMudmVyYm9zZSA9IFRydWUKIAogICAgICMg
VGhlIEdUSysgYW5kIEVGTCBwb3J0cyBvbmx5IHN1cHBvcnQgV2ViS2l0MiBzbyB0aGV5IGFsd2F5
cyB1c2UgV0tUUi4KLSAgICBpZiBvcHRpb25zLnBsYXRmb3JtID09ICJndGsiIG9yIG9wdGlvbnMu
cGxhdGZvcm0gPT0gImVmbCI6CisgICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSBpbiBbImVmbCIsICJn
dGsiLCAid3BlIl06CiAgICAgICAgIG9wdGlvbnMud2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQog
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5IGIv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKaW5kZXggYzYxZDE3ZjY1MzQu
LmE3MTY0OTliMzI2IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFj
dG9yeS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQpAQCAt
NTYsNiArNTYsOSBAQCBkZWYgcGxhdGZvcm1fb3B0aW9ucyh1c2VfZ2xvYnM9RmFsc2UpOgogICAg
ICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1ndGsnLCBhY3Rpb249J3N0b3JlX2NvbnN0Jywg
ZGVzdD0ncGxhdGZvcm0nLAogICAgICAgICAgICAgY29uc3Q9KCdndGsqJyBpZiB1c2VfZ2xvYnMg
ZWxzZSAnZ3RrJyksCiAgICAgICAgICAgICBoZWxwPSgnQWxpYXMgZm9yIC0tcGxhdGZvcm09Z3Rr
KicgaWYgdXNlX2dsb2JzIGVsc2UgJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0aycpKSwKKyAgICAg
ICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0td3BlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGRl
c3Q9J3BsYXRmb3JtJywKKyAgICAgICAgICAgIGNvbnN0PSgnd3BlKicgaWYgdXNlX2dsb2JzIGVs
c2UgJ3dwZScpLAorICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPXdwZScp
KSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tbm8taW5zdGFsbCcsIGFjdGlvbj0n
c3RvcmVfY29uc3QnLAogICAgICAgICAgICAgY29uc3Q9RmFsc2UsIGRlZmF1bHQ9VHJ1ZSwgZGVz
dD0naW5zdGFsbCcsCiAgICAgICAgICAgICBoZWxwPSdTa2lwIGluc3RhbGwgc3RlcCBmb3IgZGV2
aWNlIGFuZCBzaW11bGF0b3IgdGVzdGluZycpLApAQCAtOTcsNiArMTAwLDcgQEAgY2xhc3MgUG9y
dEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAnd2lu
LldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUuV1BF
UG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmNjODM5ZTdmYzAyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dwZS5weQpAQCAtMCwwICsxLDc4IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xl
IG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9t
IHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4
X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKK2NsYXNzIFdQRVBv
cnQoUG9ydCk6CisgICAgcG9ydF9uYW1lID0gIndwZSIKKworICAgIGRlZiBfX2luaXRfXyhzZWxm
LCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBzdXBlcihXUEVQb3J0LCBzZWxmKS5fX2luaXRf
XygqYXJncywgKiprd2FyZ3MpCisKKyAgICAgICAgaWYgc2VsZi5fc2hvdWxkX3VzZV9qaGJ1aWxk
KCk6CisgICAgICAgICAgICBzZWxmLl9qaGJ1aWxkX3dyYXBwZXIgPSBbc2VsZi5wYXRoX2Zyb21f
d2Via2l0X2Jhc2UoJ1Rvb2xzJywgJ2poYnVpbGQnLCAnamhidWlsZC13cmFwcGVyJyksICctLXdw
ZScsICdydW4nXQorICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uX2RlZmF1bHQoJ3dyYXBwZXIn
LCAnICcuam9pbihzZWxmLl9qaGJ1aWxkX3dyYXBwZXIpKQorCisgICAgZGVmIGRlZmF1bHRfdGlt
ZW91dF9tcyhzZWxmKToKKyAgICAgICAgcmV0dXJuIDYwMDAKKworICAgIGRlZiBfYnVpbHRfZXhl
Y3V0YWJsZXNfcGF0aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9w
YXRoKCooKCdiaW4nLCkgKyBwYXRoKSkKKworICAgIGRlZiBfYnVpbHRfbGlicmFyaWVzX3BhdGgo
c2VsZiwgKnBhdGgpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbGRfcGF0aCgqKCgnbGliJywp
ICsgcGF0aCkpCisKKyAgICBkZWYgX3BvcnRfZmxhZ19mb3Jfc2NyaXB0cyhzZWxmKToKKyAgICAg
ICAgcmV0dXJuICItLXdwZSIKKworICAgIGRlZiBzZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2Vs
Ziwgc2VydmVyX25hbWU9Tm9uZSk6CisgICAgICAgIGVudmlyb25tZW50ID0gc3VwZXIoV1BFUG9y
dCwgc2VsZikuc2V0dXBfZW52aXJvbl9mb3Jfc2VydmVyKHNlcnZlcl9uYW1lKQorICAgICAgICBl
bnZpcm9ubWVudFsnR1NFVFRJTkdTX0JBQ0tFTkQnXSA9ICdtZW1vcnknCisgICAgICAgIGVudmly
b25tZW50WydURVNUX1JVTk5FUl9JTkpFQ1RFRF9CVU5ETEVfRklMRU5BTUUnXSA9IHNlbGYuX2J1
aWxkX3BhdGgoJ2xpYicsICdsaWJUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGUuc28nKQorICAgICAg
ICBlbnZpcm9ubWVudFsnVEVTVF9SVU5ORVJfVEVTVF9QTFVHSU5fUEFUSCddID0gc2VsZi5fYnVp
bGRfcGF0aCgnbGliJywgJ3BsdWdpbnMnKQorICAgICAgICBlbnZpcm9ubWVudFsnV0VCS0lUX0VY
RUNfUEFUSCddID0gc2VsZi5fYnVpbGRfcGF0aCgnYmluJykKKyAgICAgICAgcmV0dXJuIGVudmly
b25tZW50CisKKyAgICBkZWYgX2dlbmVyYXRlX2FsbF90ZXN0X2NvbmZpZ3VyYXRpb25zKHNlbGYp
OgorICAgICAgICBjb25maWd1cmF0aW9ucyA9IFtdCisgICAgICAgIGZvciBidWlsZF90eXBlIGlu
IHNlbGYuQUxMX0JVSUxEX1RZUEVTOgorICAgICAgICAgICAgY29uZmlndXJhdGlvbnMuYXBwZW5k
KFRlc3RDb25maWd1cmF0aW9uKHZlcnNpb249c2VsZi5fdmVyc2lvbiwgYXJjaGl0ZWN0dXJlPSd4
ODYnLCBidWlsZF90eXBlPWJ1aWxkX3R5cGUpKQorICAgICAgICByZXR1cm4gY29uZmlndXJhdGlv
bnMKKworICAgIGRlZiBfcGF0aF90b19kcml2ZXIoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxm
Ll9idWlsdF9leGVjdXRhYmxlc19wYXRoKHNlbGYuZHJpdmVyX25hbWUoKSkKKworICAgIGRlZiBf
cGF0aF90b19pbWFnZV9kaWZmKHNlbGYpOgorICAgICAgICByZXR1cm4gc2VsZi5fYnVpbHRfZXhl
Y3V0YWJsZXNfcGF0aCgnSW1hZ2VEaWZmJykKKworICAgIGRlZiBfZ2V0X2NyYXNoX2xvZyhzZWxm
LCBuYW1lLCBwaWQsIHN0ZG91dCwgc3RkZXJyLCBuZXdlcl90aGFuKToKKyAgICAgICAgbmFtZSA9
ICJXUEVXZWJQcm9jZXNzIiBpZiBuYW1lID09ICJXZWJQcm9jZXNzIiBlbHNlIG5hbWUKKyAgICAg
ICAgcmV0dXJuIEdEQkNyYXNoTG9nR2VuZXJhdG9yKG5hbWUsIHBpZCwgbmV3ZXJfdGhhbiwgc2Vs
Zi5fZmlsZXN5c3RlbSwgc2VsZi5fcGF0aF90b19kcml2ZXIpLmdlbmVyYXRlX2NyYXNoX2xvZyhz
dGRvdXQsIHN0ZGVycikKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1X
UEUuY21ha2UgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTc4NDc1NWYzNgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw2
MCBAQAorc2V0KFRFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZICIke0NNQUtF
X1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vVGVzdFdlYktpdEFQSSIpCitzZXQoVEVTVFdFQktJ
VEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUllfV1RGICIke1RFU1RXRUJLSVRBUElfUlVOVElN
RV9PVVRQVVRfRElSRUNUT1JZfS9XVEYiKQorCisjIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2Ug
aXQgaXMgcG9zc2libGUgdG8gYnVpbGQgVGVzdFdlYktpdEFQSSB3aXRoIFdlYktpdDIKKyMgZGlz
YWJsZWQgYW5kIHRoaXMgdHJpZ2dlcnMgdGhlIGluY2x1c2lvbiBvZiB0aGUgV2ViS2l0MiBoZWFk
ZXJzLgorYWRkX2RlZmluaXRpb25zKC1EQlVJTERJTkdfV0VCS0lUMl9fKQorCithZGRfY3VzdG9t
X3RhcmdldChUZXN0V2ViS2l0QVBJLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1BTkQgJHtQ
RVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2FyZGlu
Zy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7VEVTVFdFQktJVEFQSV9ESVJ9IC0tb3V0cHV0
ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3cGUgLS1wbGF0Zm9ybSBzb3Vw
CisgICAgREVQRU5EUyB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycworKQorCitzZXQoRm9y
d2FyZGluZ0hlYWRlcnNGb3JUZXN0V2ViS2l0QVBJX05BTUUgVGVzdFdlYktpdEFQSS1mb3J3YXJk
aW5nLWhlYWRlcnMpCisKK2luY2x1ZGVfZGlyZWN0b3JpZXMoCisgICAgJHtGT1JXQVJESU5HX0hF
QURFUlNfRElSfQorICAgICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0vSmF2YVNjcmlwdENvcmUK
KykKKworaW5jbHVkZV9kaXJlY3RvcmllcyhTWVNURU0KKyAgICAke0dMSUJfSU5DTFVERV9ESVJT
fQorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9CispCisKK3NldCh0ZXN0X21haW5fU09VUkNF
UworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9tYWluLmNwcAorKQorCitzZXQoYnVuZGxl
X2hhcm5lc3NfU09VUkNFUworICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L3dwZS9JbmplY3RlZEJ1
bmRsZUNvbnRyb2xsZXJXUEUuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL1BsYXRm
b3JtVXRpbGl0aWVzV1BFLmNwcAorKQorCisjIFRlc3RXVEYKKworbGlzdChBUFBFTkQgVGVzdFdU
Rl9TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV1RGL2dsaWIvR1VuaXF1
ZVB0ci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9Xb3JrUXVl
dWVHTGliLmNwcAorKQorCisjIFRlc3RXZWJDb3JlCisKK2FkZF9leGVjdXRhYmxlKFRlc3RXZWJD
b3JlCisgICAgJHt0ZXN0X21haW5fU09VUkNFU30KKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9U
ZXN0c0NvbnRyb2xsZXIuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29y
ZS9IVE1MUGFyc2VySWRpb21zLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvTGF5b3V0VW5pdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL1VSTC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3JlL1NoYXJl
ZEJ1ZmZlclRlc3QuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9G
aWxlU3lzdGVtLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvUHVi
bGljU3VmZml4LmNwcAorKQorCit0YXJnZXRfbGlua19saWJyYXJpZXMoVGVzdFdlYkNvcmUgJHt0
ZXN0X3dlYmNvcmVfTElCUkFSSUVTfSkKK2FkZF9kZXBlbmRlbmNpZXMoVGVzdFdlYkNvcmUgJHtG
b3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRX0pCisKK2FkZF90ZXN0KFRlc3RX
ZWJDb3JlICR7VEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUll9L1dlYkNvcmUv
VGVzdFdlYkNvcmUpCitzZXRfdGVzdHNfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJUSUVT
IFRJTUVPVVQgNjApCitzZXRfdGFyZ2V0X3Byb3BlcnRpZXMoVGVzdFdlYkNvcmUgUFJPUEVSVElF
UyBSVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVU
X0RJUkVDVE9SWX0vV2ViQ29yZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3Bl
L0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dw
ZS9JbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwLi5mZDIxMjFiZDdhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvd3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCAr
MSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVy
LmgiCisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZUNv
bnRyb2xsZXI6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRl
c3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3Jt
VXRpbGl0aWVzV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRmb3JtVXRpbGl0
aWVzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTIxYzFl
YWEyZjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9QbGF0Zm9y
bVV0aWxpdGllc1dQRS5jcHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUGxhdGZvcm1VdGlsaXRpZXMuaCIKKworI2luY2x1ZGUgPHd0Zi9nbGliL0dSZWZQdHIuaD4K
KyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0
QVBJIHsKK25hbWVzcGFjZSBVdGlsIHsKKwordm9pZCBzbGVlcChkb3VibGUgc2Vjb25kcykKK3sK
KyAgICBnX3VzbGVlcChzZWNvbmRzICogMTAwMDAwMCk7Cit9CisKK3N0YXRpYyBjaGFyKiBnZXRG
aWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KGNvbnN0IGNoYXIqIHZhcmlhYmxl
TmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFtZSk7
CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCIlcyBlbnZpcm9ubWVudCB2
YXJpYWJsZSBub3QgZm91bmRcbiIsIHZhcmlhYmxlTmFtZSk7CisgICAgICAgIGV4aXQoMSk7Cisg
ICAgfQorICAgIGdzaXplIGJ5dGVzV3JpdHRlbjsKKyAgICByZXR1cm4gZ19maWxlbmFtZV90b191
dGY4KHZhbHVlLCAtMSwgMCwgJmJ5dGVzV3JpdHRlbiwgMCk7Cit9CisKK1dLU3RyaW5nUmVmIGNy
ZWF0ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBpbmplY3Rl
ZEJ1bmRsZVBhdGgoZ2V0RmlsZW5hbWVGcm9tRW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVT
VF9XRUJLSVRfQVBJX1dFQktJVDJfSU5KRUNURURfQlVORExFX1BBVEgiKSk7CisgICAgR1VuaXF1
ZVB0cjxjaGFyPiBpbmplY3RlZEJ1bmRsZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoaW5qZWN0
ZWRCdW5kbGVQYXRoLmdldCgpLCAibGliVGVzdFdlYktpdEFQSUluamVjdGVkQnVuZGxlLnNvIiwg
bnVsbHB0cikpOworICAgIHJldHVybiBXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhpbmpl
Y3RlZEJ1bmRsZUZpbGVuYW1lLmdldCgpKTsKK30KKworV0tVUkxSZWYgY3JlYXRlVVJMRm9yUmVz
b3VyY2UoY29uc3QgY2hhciogcmVzb3VyY2UsIGNvbnN0IGNoYXIqIGV4dGVuc2lvbikKK3sKKyAg
ICBHVW5pcXVlUHRyPGNoYXI+IHRlc3RSZXNvdXJjZXNQYXRoKGdldEZpbGVuYW1lRnJvbUVudmly
b25tZW50VmFyaWFibGVBc1VURjgoIlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19Q
QVRIIikpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VCYXNlbmFtZShnX3N0cmR1cF9w
cmludGYoIiVzLiVzIiwgcmVzb3VyY2UsIGV4dGVuc2lvbikpOworICAgIEdVbmlxdWVQdHI8Y2hh
cj4gcmVzb3VyY2VGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdl
dCgpLCByZXNvdXJjZUJhc2VuYW1lLmdldCgpLCBudWxscHRyKSk7CisgICAgR1JlZlB0cjxHRmls
ZT4gcmVzb3VyY2VGaWxlID0gYWRvcHRHUmVmKGdfZmlsZV9uZXdfZm9yX3BhdGgocmVzb3VyY2VG
aWxlbmFtZS5nZXQoKSkpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVUkkoZ19maWxl
X2dldF91cmkocmVzb3VyY2VGaWxlLmdldCgpKSk7CisgICAgcmV0dXJuIFdLVVJMQ3JlYXRlV2l0
aFVURjhDU3RyaW5nKHJlc291cmNlVVJJLmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVXRp
bAorfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS93cGUvbWFpbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZjY1NjhiNmMzMmQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL3dwZS9tYWluLmNwcApAQCAtMCwwICsx
LDMyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0c0NvbnRyb2xsZXIuaCIKKworaW50
IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQoreworICAgIHJldHVybiBUZXN0V2ViS2l0QVBJ
OjpUZXN0c0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLnJ1bihhcmdjLCBhcmd2KSA/IEVYSVRfU1VD
Q0VTUyA6IEVYSVRfRkFJTFVSRTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAK
aW5kZXggMGExMzBkNGU4ZGQuLmRlMmJlM2U3YmNkIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250
cm9sbGVyLmNwcApAQCAtNzEsNyArNzEsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjplbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCkKICAgICByZXR1cm4gV0tBY2Nlc3NpYmls
aXR5RW5oYW5jZWRBY2Nlc3NpYmlsaXR5RW5hYmxlZCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykgJiYgIVBMQVRGT1JNKEVGTCkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oRUZM
KSAmJiAhUExBVEZPUk0oV1BFKQogUmVmPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2li
aWxpdHlDb250cm9sbGVyOjpyb290RWxlbWVudCgpCiB7CiAgICAgV0tCdW5kbGVQYWdlUmVmIHBh
Z2UgPSBJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkucGFnZSgpLT5wYWdlKCk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlD
b250cm9sbGVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vz
c2liaWxpdHlDb250cm9sbGVyLmgKaW5kZXggNWNmMGQ3MzljMWUuLmM4ZDc4ZTc3YTEyIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5oCkBAIC03Myw3ICs3Myw3IEBAIHByaXZhdGU6CiAK
ICNpZiBQTEFURk9STShDT0NPQSkKICAgICBSZXRhaW5QdHI8Tm90aWZpY2F0aW9uSGFuZGxlcj4g
bV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwotI2Vsc2UKKyNlbGlmIFBMQVRGT1JNKEdUSykg
fHwgUExBVEZPUk0oRUZMKQogICAgIFJlZlB0cjxBY2Nlc3NpYmlsaXR5Tm90aWZpY2F0aW9uSGFu
ZGxlcj4gbV9nbG9iYWxOb3RpZmljYXRpb25IYW5kbGVyOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNz
aWJpbGl0eVVJRWxlbWVudC5jcHAKaW5kZXggMjMzZmY3ZDIwMzQuLmI4YWY2ZjE2Y2E4IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxp
dHlVSUVsZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojppc1RleHRBcmVhKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICNlbmRpZgogICAgIAogLy8gVW5zdXBwb3J0ZWQgbWV0aG9kcyBvbiB2YXJpb3VzIHBsYXRmb3Jt
cy4gQXMgdGhleSdyZSBpbXBsZW1lbnRlZCBvbiBvdGhlciBwbGF0Zm9ybXMgdGhpcyBsaXN0IHNo
b3VsZCBiZSBtb2RpZmllZC4KLSNpZiAoIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKEVGTCkp
IHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQTEFURk9S
TShFRkwpICYmICFQTEFURk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zm
c2V0KGludCkgeyByZXR1cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7
IH0KIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5l
QXRPZmZzZXQoaW50KSB7IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dC5oCmluZGV4IDU1MDlhZjIxNzdkLi42ZDA3MDY3OGI5ZSAxMDA2NDQKLS0tIGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50LmgKQEAgLTMxNyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVt
ZW50c1dpdGhBdHRyaWJ1dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0
eVVJRWxlbWVudD4gPiYpIGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwg
UExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBM
QVRGT1JNKEdUSykgfHwgUExBVEZPUk0oRUZMKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBn
ZXRDaGlsZHJlbihWZWN0b3I8UmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+ID4mKTsKICAg
ICB2b2lkIGdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gPiYsIHVuc2lnbmVkIGxvY2F0aW9uLCB1bnNpZ25lZCBsZW5ndGgpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAppbmRleCBhZmZjNDBmMGU0My4uMDE5MTM2MjM3NGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcApAQCAtOTgs
NyArOTgsNyBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKCkKICAgICAsIG1fZGF0YWJhc2VNYXhR
dW90YSgtMSkKICAgICAsIG1fdXNlclN0eWxlU2hlZXRFbmFibGVkKGZhbHNlKQogICAgICwgbV91
c2VyU3R5bGVTaGVldExvY2F0aW9uKGFkb3B0V0soV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIiIpKSkKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9S
TShXUEUpCiAgICAgLCBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyKFJ1bkxvb3A6Om1haW4oKSwg
dGhpcywgJlRlc3RSdW5uZXI6OndhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyRmlyZWQpCiAjZW5kaWYK
IHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmgKaW5kZXggOGRjODljYTMxNWUuLjRkYjI4YWQ0YTJjIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaApAQCAtMzgsNyArMzgs
NyBAQAogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxDb3JlRm91bmRhdGlv
bi9DRlJ1bkxvb3AuaD4KIHR5cGVkZWYgUmV0YWluUHRyPENGUnVuTG9vcFRpbWVyUmVmPiBQbGF0
Zm9ybVRpbWVyUmVmOwotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIG5hbWVzcGFjZSBXVFIg
ewogY2xhc3MgVGVzdFJ1bm5lcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9s
bGVyV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTk0YzJh
YWI3MDgKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlcldQRS5jcHAKQEAgLTAsMCArMSw3MSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgor
ICogIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3Vy
IG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisg
KiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEw
LTEzMDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3Np
YmlsaXR5Q29udHJvbGxlci5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eUNvbnRyb2xsZXI6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGUoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5Q29udHJvbGxlcjo6YWNjZXNzaWJsZUVsZW1lbnRCeUlkKEpTU3RyaW5nUmVmIGlkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cGxhdGZvcm1OYW1lKCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWY8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVt
ZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpjcmVhdGUobnVsbHB0cik7Cit9CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6Zm9jdXNlZEVsZW1lbnQoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0
ZShudWxscHRyKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6YWRkTm90aWZp
Y2F0aW9uTGlzdGVuZXIoSlNWYWx1ZVJlZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVtb3Zl
Tm90aWZpY2F0aW9uTGlzdGVuZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKKworI2VuZGlmIC8vIEhBVkUoQUND
RVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQ2NDkxNTBhNTQwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAKQEAgLTAsMCArMSw5NTkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWNjZXNzaWJpbGl0eVVJRWxl
bWVudC5oIgorCisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVt
ZW50ZWQuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQoUGxhdGZvcm1VSUVsZW1lbnQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6QWNjZXNzaWJpbGl0eVVJRWxl
bWVudChjb25zdCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp+QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0VxdWFsKEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4+
JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmdldENoaWxkcmVuV2l0aFJhbmdlKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4+JiwgdW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjaGlsZHJlbkNvdW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZWxlbWVudEF0UG9pbnQoaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KwordW5zaWduZWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aW5kZXhPZkNoaWxkKEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmNoaWxkQXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGlua2VkVUlFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYU93
bnNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUZsb3dUb0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0
cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhQ29u
dHJvbHNFbGVtZW50QXRJbmRleCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGlzY2xvc2VkUm93QXRJbmRleCh1bnNpZ25lZCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93QXRJbmRl
eCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2VsZWN0ZWRDaGlsZEF0SW5kZXgodW5zaWduZWQpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordW5zaWduZWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRDaGlsZHJlbkNvdW50KCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRSb3dBdEluZGV4KHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0
aXRsZVVJRWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnBhcmVudEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRCeVJvdygpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkxpbmtlZFVJRWxlbWVudHMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZE
b2N1bWVudExpbmtzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6YXR0cmlidXRlc09mQ2hpbGRyZW4oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjphbGxBdHRyaWJ1dGVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nQXR0cmlidXRlVmFsdWUoSlNTdHJpbmdSZWYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om51bWJlckF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0
dHJpYnV0ZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisK
K0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50QXJyYXlBdHRyaWJ1
dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50Ojpyb3dIZWFkZXJzKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNvbHVtbkhlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBh
dHRyaWJ1dGUpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib29sQXR0cmlidXRlVmFs
dWUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQXR0cmli
dXRlU2V0dGFibGUoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzQXR0cmlidXRlU3VwcG9ydGVkKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVOYW1l
cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJvbGUoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdWJyb2xlKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm9sZURlc2NyaXB0aW9u
KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y29tcHV0ZWRS
b2xlU3RyaW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGl0bGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZXNj
cmlwdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om9y
aWVudGF0aW9uKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c3RyaW5nVmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpsYW5ndWFnZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
bnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OmhlbHBUZXh0KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6eCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6eSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6d2lkdGgoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xp
Y2tQb2ludFgoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30K
KworZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNsaWNrUG9pbnRZKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjppbnRWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gMC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWlu
VmFsdWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKwor
ZG91YmxlIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1heFZhbHVlKCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp2YWx1ZURlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6aW5zZXJ0aW9uUG9pbnRMaW5lTnVtYmVyKCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmlzUHJlc3NBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzSW5jcmVt
ZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0RlY3JlbWVudEFj
dGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFbmFibGVkKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Ojppc1JlcXVpcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0ZvY3VzZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWQoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0ZWRPcHRpb25BY3RpdmUoKSBjb25z
dAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRXhwYW5kZWQoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzQ2hlY2tlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNJbmRl
dGVybWluYXRlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmhpZXJhcmNoaWNhbExldmVs
KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3BlYWsoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXJpYUlzR3JhYmJlZCgpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRHJvcEVmZmVjdHMoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lRm9ySW5kZXgoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvckxpbmUoaW50KQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyYW5nZUZvclBvc2l0aW9uKGludCwgaW50KQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpib3VuZHNGb3JSYW5n
ZSh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnN0cmluZ0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclJhbmdl
KHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRT
dHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3Vuc2lnbmVkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnVpRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlKEpTQ29udGV4dFJl
ZiwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCosIGJvb2wsIEpTVmFsdWVSZWYsIEpTU3RyaW5nUmVm
LCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp1aUVsZW1lbnRGb3JTZWFyY2hQcmVkaWNhdGUoSlNDb250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRo
Q3JpdGVyaWEoSlNDb250ZXh0UmVmLCBKU1N0cmluZ1JlZiwgSlNWYWx1ZVJlZiwgSlNTdHJpbmdS
ZWYsIEpTU3RyaW5nUmVmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjphdHRyaWJ1dGVzT2ZDb2x1bW5IZWFkZXJzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mUm93SGVhZGVycygpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbnMoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0
YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZS
b3dzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlc09mVmlzaWJsZUNlbGxzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6YXR0cmlidXRlc09mSGVhZGVyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cm93
Q291bnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2lu
dCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpjb2x1bW5Db3VudCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmluZGV4SW5UYWJsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJv
d0luZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojpjb2x1bW5JbmRleFJhbmdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZ25lZCwgdW5zaWduZWQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRy
PEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhvcml6b250
YWxTY3JvbGxiYXIoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp2ZXJ0aWNhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdGVkVGV4dFJhbmdlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkVGV4dFJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmNyZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZGVjcmVtZW50KCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNo
b3dNZW51KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnByZXNzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lk
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGQoQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudCogZWxlbWVudCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNldFNlbGVjdGVkQ2hpbGRBdEluZGV4KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlU2VsZWN0aW9uQXRJbmRleCh1bnNpZ25lZCBpbmRl
eCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmNsZWFyU2VsZWN0ZWRDaGlsZHJlbigpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmFjY2Vzc2liaWxpdHlWYWx1ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50RW5jb2RpbmcoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpkb2N1bWVudFVSSSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVybCgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjphZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmIGZ1bmN0aW9uQ2FsbGJh
Y2spCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jv
b2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVtb3ZlTm90aWZpY2F0aW9uTGlzdGVuZXIoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRm9jdXNhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc1NlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVs
dGlTZWxlY3RhYmxlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1Zpc2libGUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzT2ZmU2NyZWVuKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojppc0NvbGxhcHNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNJZ25vcmVkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBm
YWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc1NpbmdsZUxpbmUoKSBj
b25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiti
b29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzTXVsdGlMaW5lKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpoYXNQb3B1cCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFr
ZUZvY3VzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRha2VTZWxlY3Rpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWRkU2VsZWN0aW9uKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJlbW92
ZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0
TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNj
ZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1h
cmtlclJhbmdlRm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KikKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitpbnQgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlTGVuZ3RoKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJl
dmlvdXNUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0
eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vz
c2liaWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
UmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JNYXJrZXJzKEFjY2Vzc2liaWxpdHlUZXh0TWFya2Vy
KiwgQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4g
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlclJhbmdl
KEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
cj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXJSYW5n
ZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBp
bnQsIGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGludCwgaW50LCBpbnQsIGludCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitSZWZQdHI8
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJr
ZXJGb3JQb2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVy
biBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0TWFya2VyKEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJp
bmdGb3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZShKU1N0cmluZ1JlZiwgQWNjZXNz
aWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gZmFsc2U7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleEZvclRl
eHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNU
ZXh0TWFya2VyVmFsaWQoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJGb3JJbmRleChpbnQp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVm
UHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFy
dFRleHRNYXJrZXIoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6ZW5kVGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZXRTZWxl
Y3RlZFZpc2libGVUZXh0UmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZSgpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb0dsb2Jh
bFBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6c2Nyb2xsVG9NYWtlVmlzaWJsZVdpdGhTdWJGb2N1cyhpbnQs
IGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1cHBvcnRlZEFjdGlvbnMo
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXRo
RGVzY3JpcHRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjptYXRoUG9zdHNjcmlwdHNEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1hdGhQcmVzY3JpcHRzRGVzY3JpcHRpb24o
KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjbGFz
c0xpc3QoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjpjaGFyYWN0ZXJBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVBdE9mZnNldChpbnQpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlQXRPZmZzZXQoaW50KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNl
ICBXVEYKKworI2VuZGlmIC8vIEhBVkUoQUNDRVNTSUJJTElUWSkKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0FjdGl2YXRlRm9udHNXUEUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250
c1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmMzY2Y3MjFi
MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKQEAgLTAsMCArMSwxNDUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFjdGl2YXRlRm9udHMuaCIKKworI2luY2x1ZGUgPGZvbnRjb25maWcv
Zm9udGNvbmZpZy5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCitDU3RyaW5n
IHRvcExldmVsUGF0aCgpCit7CisgICAgaWYgKGNvbnN0IGNoYXIqIHRvcExldmVsRGlyZWN0b3J5
ID0gZ19nZXRlbnYoIldFQktJVF9UT1BfTEVWRUwiKSkKKyAgICAgICAgcmV0dXJuIHRvcExldmVs
RGlyZWN0b3J5OworCisgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHdhc24ndCBw
cm92aWRlZCB0aGVuIGFzc3VtZSB3ZSB3ZXJlIGJ1aWx0IGludG8KKyAgICAvLyBXZWJLaXRCdWls
ZC9EZWJ1ZyBvciBXZWJLaXRCdWlsZC9SZWxlYXNlLiBPYnZpb3VzbHkgdGhpcyB3aWxsIGZhaWwg
aWYgdGhlIGJ1aWxkCisgICAgLy8gZGlyZWN0b3J5IGlzIG5vbi1zdGFuZGFyZCwgYnV0IHdlIGNh
bid0IGRvIG11Y2ggbW9yZSBhYm91dCB0aGlzLgorICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGFyZW50
UGF0aChnX3BhdGhfZ2V0X2Rpcm5hbWUoZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCkuZGF0YSgp
KSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBsYXlvdXRUZXN0c1BhdGgoZ19idWlsZF9maWxlbmFt
ZShwYXJlbnRQYXRoLmdldCgpLCAiLi4iLCAiLi4iLCAiLi4iLCBudWxscHRyKSk7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBhYnNvbHV0ZVRvcExldmVsUGF0aChyZWFscGF0aChsYXlvdXRUZXN0c1Bh
dGguZ2V0KCksIDApKTsKKyAgICByZXR1cm4gYWJzb2x1dGVUb3BMZXZlbFBhdGguZ2V0KCk7Cit9
CisKK0NTdHJpbmcgZ2V0T3V0cHV0RGlyKCkKK3sKKyAgICBjb25zdCBjaGFyKiB3ZWJraXRPdXRw
dXREaXIgPSBnX2dldGVudigiV0VCS0lUX09VVFBVVERJUiIpOworICAgIGlmICh3ZWJraXRPdXRw
dXREaXIpCisgICAgICAgIHJldHVybiB3ZWJraXRPdXRwdXREaXI7CisKKyAgICBHVW5pcXVlUHRy
PGNoYXI+IG91dHB1dERpcihnX2J1aWxkX2ZpbGVuYW1lKHRvcExldmVsUGF0aCgpLmRhdGEoKSwg
IldlYktpdEJ1aWxkIiwgbnVsbHB0cikpOworICAgIHJldHVybiBvdXRwdXREaXIuZ2V0KCk7Cit9
CisKK3N0YXRpYyBDU3RyaW5nIGdldEZvbnRzUGF0aCgpCit7CisgICAgQ1N0cmluZyB3ZWJraXRP
dXRwdXREaXIgPSBnZXRPdXRwdXREaXIoKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGZvbnRzUGF0
aChnX2J1aWxkX2ZpbGVuYW1lKHdlYmtpdE91dHB1dERpci5kYXRhKCksICJEZXBlbmRlbmNpZXNX
UEUiLCAiUm9vdCIsICJ3ZWJraXRndGstdGVzdC1mb250cyIsIG51bGxwdHIpKTsKKyAgICBpZiAo
Z19maWxlX3Rlc3QoZm9udHNQYXRoLmdldCgpLCBzdGF0aWNfY2FzdDxHRmlsZVRlc3Q+KEdfRklM
RV9URVNUX0VYSVNUUyB8IEdfRklMRV9URVNUX0lTX0RJUikpKQorICAgICAgICByZXR1cm4gZm9u
dHNQYXRoLmdldCgpOworCisgICAgLy8gVHJ5IGFsdGVybmF0aXZlIGZvbnRzIHBhdGguCisgICAg
Zm9udHNQYXRoLnJlc2V0KGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwg
IndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgTlVMTCkpOworICAgIGlmIChnX2ZpbGVfdGVzdChmb250
c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVzdD4oR19GSUxFX1RFU1RfRVhJU1RTIHwg
R19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJldHVybiBmb250c1BhdGguZ2V0KCk7CisK
KyAgICByZXR1cm4gQ1N0cmluZygpOworfQorCit2b2lkIGFjdGl2YXRlRm9udHMoKQoreworICAg
IGlmIChnX2dldGVudigiV0VCS0lUX1NLSVBfV0VCS0lUVEVTVFJVTk5FUl9GT05UQ09ORklHX0lO
SVRJQUxJWkFUSU9OIikpCisgICAgICAgIHJldHVybjsKKworICAgIEZjSW5pdCgpOworCisgICAg
Ly8gSWYgYSB0ZXN0IHJlc3VsdGVkIGEgZm9udCBiZWluZyBhZGRlZCBvciByZW1vdmVkIHZpYSB0
aGUgQGZvbnQtZmFjZSBydWxlLCB0aGVuCisgICAgLy8gd2Ugd2FudCB0byByZXNldCB0aGUgRm9u
dENvbmZpZyBjb25maWd1cmF0aW9uIHRvIHByZXZlbnQgaXQgZnJvbSBhZmZlY3Rpbmcgb3RoZXIg
dGVzdHMuCisgICAgc3RhdGljIGludCBudW1Gb250cyA9IDA7CisgICAgRmNGb250U2V0KiBhcHBG
b250U2V0ID0gRmNDb25maWdHZXRGb250cygwLCBGY1NldEFwcGxpY2F0aW9uKTsKKyAgICBpZiAo
YXBwRm9udFNldCAmJiBudW1Gb250cyAmJiBhcHBGb250U2V0LT5uZm9udCA9PSBudW1Gb250cykK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gTG9hZCBvdXIgY29uZmlndXJhdGlvbiBmaWxlLCB3
aGljaCBzZXRzIHVwIHByb3BlciBhbGlhc2VzIGZvciBmYW1pbHkKKyAgICAvLyBuYW1lcyBsaWtl
IHNhbnMsIHNlcmlmIGFuZCBtb25vc3BhY2UuCisgICAgRmNDb25maWcqIGNvbmZpZyA9IEZjQ29u
ZmlnQ3JlYXRlKCk7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9udENvbmZpZ0ZpbGVuYW1lKGdf
YnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICJmb250cy5jb25mIiwgbnVsbHB0cikpOwor
ICAgIGlmICghZ19maWxlX3Rlc3QoZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpLCBHX0ZJTEVfVEVT
VF9JU19SRUdVTEFSKSkKKyAgICAgICAgZ19lcnJvcigiQ2Fubm90IGZpbmQgZm9udHMuY29uZiBh
dCAlc1xuIiwgZm9udENvbmZpZ0ZpbGVuYW1lLmdldCgpKTsKKyAgICBpZiAoIUZjQ29uZmlnUGFy
c2VBbmRMb2FkKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udENvbmZpZ0Zp
bGVuYW1lLmdldCgpKSwgdHJ1ZSkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkbid0IGxvYWQgZm9u
dCBjb25maWd1cmF0aW9uIGZpbGUgZnJvbTogJXMiLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkp
OworCisgICAgQ1N0cmluZyBmb250c1BhdGggPSBnZXRGb250c1BhdGgoKTsKKyAgICBpZiAoZm9u
dHNQYXRoLmlzTnVsbCgpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9jYXRlIHRlc3Qg
Zm9udHMgYXQgJXMuIElzIFdFQktJVF9UT1BfTEVWRUwgc2V0PyIsIGZvbnRzUGF0aC5kYXRhKCkp
OworCisgICAgR1VuaXF1ZVB0cjxHRGlyPiBmb250c0RpcmVjdG9yeShnX2Rpcl9vcGVuKGZvbnRz
UGF0aC5kYXRhKCksIDAsIG51bGxwdHIpKTsKKyAgICB3aGlsZSAoY29uc3QgY2hhciogZGlyZWN0
b3J5RW50cnkgPSBnX2Rpcl9yZWFkX25hbWUoZm9udHNEaXJlY3RvcnkuZ2V0KCkpKSB7CisgICAg
ICAgIGlmICghZ19zdHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi50dGYiKSAmJiAhZ19z
dHJfaGFzX3N1ZmZpeChkaXJlY3RvcnlFbnRyeSwgIi5vdGYiKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250UGF0aChnX2J1aWxkX2ZpbGVuYW1l
KGZvbnRzUGF0aC5kYXRhKCksIGRpcmVjdG9yeUVudHJ5LCBudWxscHRyKSk7CisgICAgICAgIGlm
ICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25maWcsIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
RmNDaGFyOCo+KGZvbnRQYXRoLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBu
b3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRQYXRoLmdldCgpKTsKKyAgICB9CisKKyAgICAvLyBB
aGVtIGlzIHVzZWQgYnkgbWFueSBsYXlvdXQgdGVzdHMuCisgICAgR1VuaXF1ZVB0cjxnY2hhcj4g
YWhlbUZvbnRGaWxlbmFtZShnX2J1aWxkX2ZpbGVuYW1lKEZPTlRTX0NPTkZfRElSLCAiQUhFTV9f
X18uVFRGIiwgbnVsbHB0cikpOworICAgIGlmICghRmNDb25maWdBcHBGb250QWRkRmlsZShjb25m
aWcsIHJlaW50ZXJwcmV0X2Nhc3Q8RmNDaGFyOCo+KGFoZW1Gb250RmlsZW5hbWUuZ2V0KCkpKSkK
KyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IGxvYWQgZm9udCBhdCAlcyEiLCBhaGVtRm9udEZp
bGVuYW1lLmdldCgpKTsgCisKKyAgICBzdGF0aWMgY29uc3QgY2hhciogZm9udEZpbGVuYW1lc1td
ID0geworICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjEwMC50dGYiLAorICAgICAgICAiV2Vi
S2l0V2VpZ2h0V2F0Y2hlcjIwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjMw
MC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjQwMC50dGYiLAorICAgICAgICAi
V2ViS2l0V2VpZ2h0V2F0Y2hlcjUwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hl
cjYwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjcwMC50dGYiLAorICAgICAg
ICAiV2ViS2l0V2VpZ2h0V2F0Y2hlcjgwMC50dGYiLAorICAgICAgICAiV2ViS2l0V2VpZ2h0V2F0
Y2hlcjkwMC50dGYiLAorICAgICAgICAwCisgICAgfTsKKworICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBmb250RmlsZW5hbWVzW2ldOyArK2kpIHsKKyAgICAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZm9u
dEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIsICIuLiIsICIuLiIsICJm
b250cyIsIGZvbnRGaWxlbmFtZXNbaV0sIG51bGxwdHIpKTsKKyAgICAgICAgaWYgKCFGY0NvbmZp
Z0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oZm9udEZp
bGVuYW1lLmdldCgpKSkpCisgICAgICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250
IGF0ICVzISIsIGZvbnRGaWxlbmFtZS5nZXQoKSk7IAorICAgIH0KKworICAgIC8vIEEgZm9udCB3
aXRoIG5vIHZhbGlkIEZvbnRjb25maWcgZW5jb2RpbmcgdG8gdGVzdCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDc0NTIKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250
V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9E
SVIsICJGb250V2l0aE5vVmFsaWRFbmNvZGluZy5mb24iLCBudWxscHRyKSk7CisgICAgaWYgKCFG
Y0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4o
Zm9udFdpdGhOb1ZhbGlkRW5jb2RpbmdGaWxlbmFtZS5nZXQoKSkpKQorICAgICAgICBnX2Vycm9y
KCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmls
ZW5hbWUuZ2V0KCkpOyAKKworICAgIGlmICghRmNDb25maWdTZXRDdXJyZW50KGNvbmZpZykpCisg
ICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBzZXQgdGhlIGN1cnJlbnQgZm9udCBjb25maWd1cmF0
aW9uISIpOworCisgICAgbnVtRm9udHMgPSBGY0NvbmZpZ0dldEZvbnRzKGNvbmZpZywgRmNTZXRB
cHBsaWNhdGlvbiktPm5mb250OworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVj
dGVkQnVuZGxlV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
MjQwODFmZjNhMjkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGUuaCIKKworbmFtZXNwYWNlIFdU
UiB7CisKK3ZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5pdGlhbGl6ZShXS1R5cGVSZWYp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvVGVzdFJ1bm5lcldQRS5jcHAgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNmYxNGZmZGQwNTYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVu
bmVyV1BFLmNwcApAQCAtMCwwICsxLDU3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXN0
UnVubmVyLmgiCisKK25hbWVzcGFjZSBXVFIgeworCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4g
VGVzdFJ1bm5lcjo6cGF0aFRvTG9jYWxSZXNvdXJjZShKU1N0cmluZ1JlZikKK3sKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IFRlc3RSdW5uZXI6Omlu
c3BlY3RvclRlc3RTdHViVVJMKCkKK3sKKyAgICByZXR1cm4gSlNTdHJpbmdDcmVhdGVXaXRoVVRG
OENTdHJpbmcoIiIpOworfQorCit2b2lkIFRlc3RSdW5uZXI6OmludmFsaWRhdGVXYWl0VG9EdW1w
V2F0Y2hkb2dUaW1lcigpCit7CisgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdG9wKCk7
Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKwordm9p
ZCBUZXN0UnVubmVyOjppbml0aWFsaXplV2FpdFRvRHVtcFdhdGNoZG9nVGltZXJJZk5lZWRlZCgp
Cit7CisgICAgaWYgKCFtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVyLmlzQWN0aXZlKCkpCisgICAg
ICAgIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuc3RhcnRPbmVTaG90KG1fdGltZW91dCAvIDEw
MDAuMCk7Cit9CisKKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9Q
bGF0Zm9ybVdQRS5jbWFrZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
NGE4NjJkNjlhZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Bs
YXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKK2ZpbmRfcGFja2FnZShMaWJHQk0gUkVR
VUlSRUQpCitmaW5kX3BhY2thZ2UoV1BFQmFja2VuZC1tZXNhIFJFUVVJUkVEKQorCithZGRfY3Vz
dG9tX3RhcmdldChXZWJLaXRUZXN0UnVubmVyLWZvcndhcmRpbmctaGVhZGVycworICAgIENPTU1B
TkQgJHtQRVJMX0VYRUNVVEFCTEV9ICR7V0VCS0lUMl9ESVJ9L1NjcmlwdHMvZ2VuZXJhdGUtZm9y
d2FyZGluZy1oZWFkZXJzLnBsIC0taW5jbHVkZS1wYXRoICR7V0VCS0lUX1RFU1RSVU5ORVJfRElS
fSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlCispCisK
K3NldChGb3J3YXJkaW5nSGVhZGVyc0ZvcldlYktpdFRlc3RSdW5uZXJfTkFNRSBXZWJLaXRUZXN0
UnVubmVyLWZvcndhcmRpbmctaGVhZGVycykKKworbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5l
cl9TT1VSQ0VTCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2NhaXJvL1Rlc3RJbnZvY2F0
aW9uQ2Fpcm8uY3BwCisKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3BlL0V2ZW50U2Vu
ZGVyUHJveHlXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9IZWFkbGVz
c1ZpZXdCYWNrZW5kLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvUGxhdGZv
cm1XZWJWaWV3V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUvVGVzdENv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dwZS9tYWluLmNw
cAorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0lOQ0xVREVfRElSRUNUT1JJRVMK
KyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vSW5qZWN0ZWRCdW5kbGUvd3BlCisgICAgJHtG
T1JXQVJESU5HX0hFQURFUlNfRElSfQorICAgICR7Q0FJUk9fSU5DTFVERV9ESVJTfQorICAgICR7
R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtMSUJHQk1fSU5DTFVERV9ESVJTfQorICAgICR7V1BF
X01FU0FfSU5DTFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVyX0xJ
QlJBUklFUworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9Cisg
ICAgJHtMSUJHQk1fTElCUkFSSUVTfQorICAgICR7V1BFX01FU0FfTElCUkFSSUVTfQorKQorCits
aXN0KEFQUEVORCBXZWJLaXRUZXN0UnVubmVySW5qZWN0ZWRCdW5kbGVfU09VUkNFUworICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXJXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9E
SVJ9L3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RS
VU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvQWN0aXZhdGVGb250c1dQRS5jcHAKKyAgICAk
e1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVEQlVORExFX0RJUn0vd3BlL0luamVjdGVkQnVuZGxl
V1BFLmNwcAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUv
VGVzdFJ1bm5lcldQRS5jcHAKKykKKworYWRkX2RlZmluaXRpb25zKAorICAgIC1ERk9OVFNfQ09O
Rl9ESVI9IiR7VE9PTFNfRElSfS9XZWJLaXRUZXN0UnVubmVyL2d0ay9mb250cyIKKyAgICAtRFRP
UF9MRVZFTF9ESVI9IiR7Q01BS0VfU09VUkNFX0RJUn0iCispCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9QbGF0Zm9ybVdlYlZpZXcuaAppbmRleCA3MWE0ZTc2NjE3Ni4uNTQyZjAzNjZkNTcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaApAQCAtNTMsNiArNTMsMTEgQEAg
dHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CiAjZWxpZiBQTEFURk9STShF
RkwpCiB0eXBlZGVmIEV2YXNfT2JqZWN0KiBQbGF0Zm9ybVdLVmlldzsKIHR5cGVkZWYgRWNvcmVf
RXZhcyogUGxhdGZvcm1XaW5kb3c7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBIZWFkbGVz
c1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYgUGxhdGZvcm1XS1ZpZXc7Cit0eXBlZGVm
IEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRmb3JtV2luZG93OwordHlwZWRlZiBjYWlyb19zdXJm
YWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAogbmFtZXNwYWNlIFdUUiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IDliNzA5ZTM2Zjc1Li5hZDE5
ZjEwYjQyOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxl
ci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAg
LTc2Nyw3ICs3NjcsNyBAQCBib29sIFRlc3RDb250cm9sbGVyOjpyZXNldFN0YXRlVG9Db25zaXN0
ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25zKQogICAgIC8vIHNvbWUgb3RoZXIg
Y29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkgYmUgcmVzcG9uc2libGUgZm9yIGNs
ZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0NvbnNpc3RlbnRWYWx1ZXMob3B0aW9u
cyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExB
VEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNrZXJDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApAQCAtMCwwICsxLDEy
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRTZW5kZXJQcm94eS5oIgorCituYW1l
c3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQcm94eTo6RXZlbnRTZW5kZXJQcm94eShUZXN0Q29u
dHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisgICAgOiBtX3Rlc3RDb250cm9sbGVyKHRlc3RDb250
cm9sbGVyKQorICAgICwgbV90aW1lKDApCisgICAgLCBtX2xlZnRNb3VzZUJ1dHRvbkRvd24oZmFs
c2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1fY2xpY2tUaW1lKDApCisgICAgLCBt
X2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1dHRvbikKK3sKK30KKworRXZlbnRT
ZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwgV0tFdmVudE1vZGlmaWVycykKK3sKK30KKwordm9p
ZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVkLCBXS0V2ZW50TW9kaWZpZXJzKQor
eworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKGRvdWJsZSwgZG91Ymxl
KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkoaW50LCBpbnQp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQsIGludCwgYm9vbCkKK3sKK30K
Kwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2FyZChpbnQpCit7Cit9CisKK3ZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiwgV0tFdmVudE1vZGlmaWVycywg
dW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6YWRkVG91Y2hQb2ludChp
bnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp1cGRhdGVUb3VjaFBvaW50
KGludCwgaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6c2V0VG91Y2hN
b2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBib29sKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6
dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojp0b3VjaEVuZCgpCit7
Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hDYW5jZWwoKQoreworfQorCit2b2lk
IEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMoKQoreworfQorCit2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCkKK3sKK30KKwordm9pZCBFdmVudFNl
bmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdC
YWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tl
bmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NjBiNDBhM2Vm
YgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNz
Vmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNsdWRlIDxjYXNzZXJ0PgorI2luY2x1ZGUg
PGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8vIEZJWE1FOiBEZXBsb3kgZ29vZCBw
cmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSByZXNvdXJjZXMgYXQgcHJvY2VzcyBleGl0Lgorc3Rh
dGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7CisgICAgc3RhdGljIEVHTERpc3BsYXkg
c19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7CisgICAgaWYgKHNfZGlzcGxheSA9PSBFR0xfTk9f
RElTUExBWSkgeworICAgICAgICBpbnQgZmQgPSBvcGVuKCIvZGV2L2RyaS9yZW5kZXJEMTI4Iiwg
T19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NUVFkgfCBPX05PTkJMT0NLKTsKKyAgICAgICAgaWYg
KGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAgICBz
dHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0gZ2JtX2NyZWF0ZV9kZXZpY2UoZmQpOworICAgICAg
ICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAg
ICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNwbGF5KGRldmljZSk7CisgICAgICAg
IGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAgICAgICAgICAgcmV0dXJuIEVHTF9O
T19ESVNQTEFZOworCisgICAgICAgIGlmICghZWdsSW5pdGlhbGl6ZShkaXNwbGF5LCBudWxscHRy
LCBudWxscHRyKSkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9fRElTUExBWTsKKworICAgICAg
ICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkpKQorICAgICAgICAgICAgcmV0dXJu
IEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIHNfZGlzcGxheSA9IGRpc3BsYXk7CisgICAgfQor
CisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30KKworSGVhZGxlc3NWaWV3QmFja2VuZDo6SGVhZGxl
c3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9lZ2wuZGlzcGxheSA9IGdldEVHTERpc3BsYXkoKTsK
KworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0cmlidXRlc1sxM10gPSB7CisgICAg
ICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9XSU5ET1dfQklULAorICAgICAgICBFR0xfUkVEX1NJ
WkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9TSVpFLCAxLAorICAgICAgICBFR0xfQkxVRV9TSVpF
LCAxLAorICAgICAgICBFR0xfQUxQSEFfU0laRSwgMSwKKyAgICAgICAgRUdMX1JFTkRFUkFCTEVf
VFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAg
ICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBFR0xCb29sZWFuIHJldCA9IGVnbENob29zZUNvbmZp
ZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAmbV9lZ2wuY29uZmlnLCAxLCAmbnVt
Q29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwgIW51bUNvbmZpZ3MpCisgICAgICAgIHJldHVybjsK
KworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0dHJpYnV0ZXNbM10gPSB7CisgICAg
ICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJTSU9OLCAyLAorICAgICAgICBFR0xfTk9ORQorICAg
IH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0gZWdsQ3JlYXRlQ29udGV4dChtX2VnbC5kaXNwbGF5
LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05URVhULCBjb250ZXh0QXR0cmlidXRlcyk7CisgICAg
aWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxheSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9l
Z2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBGTkVHTENSRUFURUlNQUdFS0hSUFJP
Qz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENyZWF0ZUltYWdlS0hSIikpOworICAgIG1fZWdsLmRl
c3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQz4o
ZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtIUiIpKTsKKyAgICBtX2VnbC5pbWFn
ZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZOR0xFR0xJTUFHRVRBUkdF
VFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNzKCJnbEVHTEltYWdlVGFyZ2V0VGV4
dHVyZTJET0VTIikpOworCisgICAgbV9leHBvcnRhYmxlID0gd3BlX21lc2Ffdmlld19iYWNrZW5k
X2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0YWJsZUNsaWVudCwgdGhpcyk7CisK
KyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3VyY2VfbmV3KG1fZnJhbWVSYXRlIC8g
MTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1fdXBkYXRlU291cmNlLAorICAgICAg
ICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7CisgICAgICAgICAgICBhdXRvJiBiYWNr
ZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKyAgICAgICAg
ICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgpOworICAgICAgICAgICAgcmV0dXJuIFRSVUU7Cisg
ICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOworICAgIGdfc291cmNlX2F0dGFjaChtX3VwZGF0ZVNv
dXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsKK30KKworSGVhZGxlc3NWaWV3QmFja2Vu
ZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQoreworICAgIGlmIChtX3VwZGF0ZVNvdXJjZSkKKyAg
ICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJjZSk7CisKKyAgICBpZiAoYXV0byBp
bWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWds
LmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisgICAgaWYgKGF1dG8gaW1hZ2Ug
PSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ry
b3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisKKyAgICBmb3IgKGF1dG8gaXQgOiBtX2V4
cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQgPSBpdC5zZWNvbmQ7CisgICAgICAgIGlmIChmZCA+
PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQpOworICAgIH0KKworICAgIGlmIChtX2VnbC5jb250
ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb250
ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIEhlYWRsZXNzVmlld0JhY2tlbmQ6
OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJldHVybiB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhw
b3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9leHBvcnRhYmxlKTsKK30KKworY2Fp
cm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpjcmVhdGVTbmFwc2hvdCgpCit7Cisg
ICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAgRUdMSW1hZ2VLSFIgaW1hZ2UgPSBzdGQ6OmdldDww
PihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisgICAgaWYgKCFpbWFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IHN0ZDo6Z2V0PDE+KG1fbG9ja2VkSW1h
Z2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBoZWlnaHQgPSBzdGQ6OmdldDwyPihtX2xvY2tlZElt
YWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90KiBidWZmZXIgPSBuZXcgdWludDhfdFs0ICogd2lk
dGggKiBoZWlnaHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gZmFsc2U7CisKKyAg
ICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1aW50IGltYWdlVGV4dHVyZTsKKyAgICBnbEdlblRl
eHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8y
RCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xf
VEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAgIGdsVGV4UGFyYW1ldGVyaShHTF9U
RVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdMX0xJTkVBUik7CisgICAgZ2xUZXhQ
YXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVfV1JBUF9TLCBHTF9DTEFNUF9UT19F
REdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9XUkFQ
X1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4SW1hZ2UyRChHTF9URVhUVVJFXzJELCAw
LCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdodCwgMCwgR0xfQkdSQV9FWFQsIEdMX1VOU0lHTkVE
X0JZVEUsIG51bGxwdHIpOworCisgICAgbV9lZ2wuaW1hZ2VUYXJnZXRUZXh0dXJlMkRPRVMoR0xf
VEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGdsQmluZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgMCk7
CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsKKyAgICBnbEdlbkZyYW1lYnVmZmVycygx
LCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZG
RVIsIGltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRnJhbWVidWZmZXJUZXh0dXJlMkQoR0xfRlJB
TUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9URVhUVVJFXzJELCBpbWFnZVRleHR1
cmUsIDApOworCisgICAgZ2xGbHVzaCgpOworICAgIGlmIChnbENoZWNrRnJhbWVidWZmZXJTdGF0
dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZSQU1FQlVGRkVSX0NPTVBMRVRFKSB7CisgICAgICAg
IGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBHTF9CR1JBX0VYVCwgR0xfVU5TSUdO
RURfQllURSwgYnVmZmVyKTsKKyAgICAgICAgc3VjY2Vzc2Z1bFNuYXBzaG90ID0gdHJ1ZTsKKyAg
ICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFNRUJVRkZFUiwgMCk7CisgICAgZ2xE
ZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRGVsZXRlVGV4
dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisKKyAgICBpZiAoIXN1Y2Nlc3NmdWxTbmFwc2hvdCkg
eworICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAg
IH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJmYWNlID0gY2Fpcm9faW1hZ2Vfc3Vy
ZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLAorICAgICAgICBDQUlST19GT1JNQVRfQVJHQjMy
LCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3JtYXRfc3RyaWRlX2Zvcl93aWR0aChDQUlST19GT1JN
QVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNhaXJvX3N1cmZhY2VfbWFya19kaXJ0eShpbWFnZVN1
cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7Cisg
ICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdlU3VyZmFjZSwgJmJ1ZmZlcktleSwg
YnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBkYXRhKSB7CisgICAgICAgICAgICBhdXRvKiBidWZm
ZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7CisgICAgICAgICAgICBkZWxldGVbXSBi
dWZmZXI7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIGltYWdlU3VyZmFjZTsKK30KKworYm9v
bCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgpCit7CisgICAgcmV0dXJuIGVnbE1h
a2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwg
bV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxlc3NWaWV3QmFja2VuZDo6cGVyZm9ybVVw
ZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5maXJzdCkKKyAgICAgICAgcmV0dXJu
OworCisgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kaXNwYXRj
aF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOworICAgIGlmIChtX2xvY2tlZEltYWdlLmZp
cnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZf
ZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxlLCBtX2xvY2tlZEltYWdlLmZpcnN0
KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWdsLmRpc3BsYXksIHN0ZDo6Z2V0PDA+
KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7CisgICAgfQorCisgICAgbV9sb2NrZWRJbWFnZSA9IG1f
cGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGluZ0ltYWdlID0gc3RkOjpwYWlyPHVpbnQzMl90LCBz
dGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWludDMyX3Q+PiB7IH07Cit9CisKK3N0
cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2NsaWVudCBIZWFk
bGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQgPSB7CisgICAgLy8gZXhwb3J0X2Rt
YV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4
cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCisgICAgeworICAgICAgICBhdXRvJiBi
YWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tlbmQqPihkYXRhKTsKKworICAg
ICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKTsKKyAgICAgICAgaWYgKGlt
YWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAgICAgICAgYXNzZXJ0KGJhY2tlbmQubV9leHBvcnRN
YXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2VuZC5tX2V4cG9ydE1hcC5lbmQoKSk7
CisKKyAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5pbnNlcnQoeyBpbWFnZURh
dGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsKKyAgICAgICAgfSBlbHNlIHsKKyAg
ICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5k
bGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICAgICAgaXQgPSBiYWNr
ZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpOworICAgICAgICB9CisKKyAg
ICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOworICAgICAgICB1
aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAgICAgIGludDMyX3QgZmQgPSBpdC0+c2Vj
b25kOworCisgICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQoKTsKKworICAgICAgICBFR0xpbnQg
YXR0cmlidXRlc1tdID0geworICAgICAgICAgICAgRUdMX1dJRFRILCBzdGF0aWNfY2FzdDxFR0xp
bnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAgICAgICAgICAgRUdMX0hFSUdIVCwgc3RhdGljX2Nh
c3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdodCksCisgICAgICAgICAgICBFR0xfTElOVVhfRFJN
X0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5mb3JtYXQpLAorICAg
ICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwgZmQsCisgICAgICAgICAgICBFR0xf
RE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAgICAgICAgICAgIEVHTF9ETUFfQlVGX1BM
QU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1hZ2VEYXRhLT5zdHJpZGUpLAor
ICAgICAgICAgICAgRUdMX05PTkUsCisgICAgICAgIH07CisgICAgICAgIEVHTEltYWdlS0hSIGlt
YWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNrZW5kLm1fZWdsLmRpc3BsYXksIEVH
TF9OT19DT05URVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQsIG51bGxwdHIsIGF0dHJpYnV0ZXMp
OworICAgICAgICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0geyBpbWFnZURhdGEtPmhhbmRsZSwg
c3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndpZHRoLCBpbWFnZURhdGEtPmhlaWdo
dCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRs
ZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YjA1NGY4MzQyMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dw
ZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgPGNhaXJvLmg+CisjaW5jbHVkZSA8Z2JtLmg+CisjaW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1
ZGUgPHVub3JkZXJlZF9tYXA+CisjaW5jbHVkZSA8d3BlLW1lc2Evdmlldy1iYWNrZW5kLWV4cG9y
dGFibGUtZG1hLWJ1Zi5oPgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPEdMRVMy
L2dsMmV4dC5oPgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNpbmNsdWRlIDxFR0wvZWdsZXh0Lmg+
CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgeworcHVibGljOgorICAgIEhlYWRsZXNzVmll
d0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NWaWV3QmFja2VuZCgpOworCisgICAgc3RydWN0IHdw
ZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBjb25zdDsKKworICAgIGNhaXJvX3N1cmZhY2VfdCog
Y3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0ZToKKyAgICBib29sIG1ha2VDdXJyZW50KCk7Cisg
ICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBzdGF0aWMgc3RydWN0IHdwZV9tZXNhX3Zp
ZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50IHNfZXhwb3J0YWJsZUNsaWVudDsK
KworICAgIHN0cnVjdCB7CisgICAgICAgIEVHTERpc3BsYXkgZGlzcGxheTsKKyAgICAgICAgRUdM
Q29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdMQ29udGV4dCBjb250ZXh0OworCisgICAgICAgIFBG
TkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFnZTsKKyAgICAgICAgUEZORUdMREVTVFJP
WUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7CisgICAgICAgIFBGTkdMRUdMSU1BR0VUQVJHRVRU
RVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJET0VTOworICAgIH0gbV9lZ2w7CisK
KyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1ZiogbV9l
eHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFwPHVpbnQzMl90LCBpbnQzMl90PiBt
X2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VL
SFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0ltYWdlIHsgfTsKKyAgICBzdGQ6OnBh
aXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+
IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAgR1NvdXJjZSogbV91cGRhdGVTb3VyY2U7CisgICAg
Z2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMgLyA2MCB9OworfTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45NTA0Mzk0YmQ0NgotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRmb3JtV2ViVmlld1dQRS5jcHAK
QEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtV2ViVmll
dy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2VuZC5oIgorI2luY2x1ZGUgPFdlYktp
dC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWlyby5oPgorI2luY2x1ZGUgPGNzdGRpbz4K
KyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKworbmFtZXNwYWNl
IFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1XZWJWaWV3KFdLUGFnZUNvbmZpZ3Vy
YXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCisgICAg
OiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlvbnMob3B0aW9ucykKK3sKKyAgICBt
X3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOworICAgIG1fdmlldyA9IFdLVmlld0Ny
ZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRvdy0+YmFja2VuZCgpLCBjb25maWd1cmF0aW9uKTsK
K30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJWaWV3KCkKK3sKKyAgICBkZWxldGUg
bV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZXNpemVUbyh1bnNpZ25lZCwg
dW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQorCitXS1BhZ2VSZWYgUGxhdGZvcm1X
ZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gV0tWaWV3R2V0UGFnZShtX3ZpZXcpOworfQor
Cit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQoreworfQorCitXS1JlY3QgUGxhdGZvcm1X
ZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7CisgICAgcmV0dXJuIFdLUmVjdHsgMCwgMCwgMSwgMSB9
OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0V2luZG93RnJhbWUoV0tSZWN0LCBXZWJW
aWV3U2l6aW5nTW9kZSkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmRpZEluaXRpYWxp
emVDbGllbnRzKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmFkZENocm9tZUlucHV0
RmllbGQoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZCgpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjphZGRUb1dpbmRvdygpCit7Cit9
CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpyZW1vdmVGcm9tV2luZG93KCkKK3sKK30KKwordm9p
ZCBQbGF0Zm9ybVdlYlZpZXc6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCit7Cisg
ICAgbV93aW5kb3dJc0tleSA9IHdpbmRvd0lzS2V5OworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6bWFrZVdlYlZpZXdGaXJzdFJlc3BvbmRlcigpCit7Cit9CisKK2NhaXJvX3N1cmZhY2VfdCog
UGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dTbmFwc2hvdEltYWdlKCkKK3sKKyAgICB7CisgICAgICAg
IHN0cnVjdCBUaW1lb3V0VGltZXIgeworICAgICAgICAgICAgVGltZW91dFRpbWVyKCkKKyAgICAg
ICAgICAgICAgICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6
ZmlyZWQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgdGltZXIuc3RhcnRPbmVTaG90
KDEuMCAvIDYwKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgdm9pZCBmaXJlZCgpIHsg
UnVuTG9vcDo6bWFpbigpLnN0b3AoKTsgfQorICAgICAgICAgICAgUnVuTG9vcDo6VGltZXI8VGlt
ZW91dFRpbWVyPiB0aW1lcjsKKyAgICAgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICAgICAgUnVu
TG9vcDo6bWFpbigpLnJ1bigpOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VT
dXJmYWNlID0gbV93aW5kb3ctPmNyZWF0ZVNuYXBzaG90KCk7CisgICAgcmV0dXJuIGltYWdlU3Vy
ZmFjZTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmNoYW5nZVdpbmRvd1NjYWxlSWZOZWVk
ZWQoZmxvYXQpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXROYXZpZ2F0aW9uR2Vz
dHVyZXNFbmFibGVkKGJvb2wpCit7Cit9CisKK2Jvb2wgUGxhdGZvcm1XZWJWaWV3Ojp2aWV3U3Vw
cG9ydHNPcHRpb25zKGNvbnN0IFRlc3RPcHRpb25zJikgY29uc3QKK3sKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OmZvcmNlV2luZG93RnJhbWVzQ2hhbmdlZCgp
Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci93cGUvVGVzdENvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4wY2MzZGVkZTk4NgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApAQCAtMCwwICsxLDEzOSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgPGdsaWIu
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQ
dHIuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6Om5vdGlmeURv
bmUoKQoreworICAgIFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnNldEhpZGRlbihib29sKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0
Zm9ybUluaXRpYWxpemUoKQoreworfQorCitXS1ByZWZlcmVuY2VzUmVmIFRlc3RDb250cm9sbGVy
OjpwbGF0Zm9ybVByZWZlcmVuY2VzKCkKK3sKKyAgICByZXR1cm4gV0tQYWdlR3JvdXBHZXRQcmVm
ZXJlbmNlcyhtX3BhZ2VHcm91cC5nZXQoKSk7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBs
YXRmb3JtRGVzdHJveSgpCit7Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtSW5p
dGlhbGl6ZUNvbnRleHQoKQoreworfQorCitzdGF0aWMgR01haW5Db250ZXh0KiB0aHJlYWREZWZh
dWx0Q29udGV4dCgpCit7CisgICAgaWYgKEdNYWluQ29udGV4dCogY29udGV4dCA9IGdfbWFpbl9j
b250ZXh0X2dldF90aHJlYWRfZGVmYXVsdCgpKQorICAgICAgICByZXR1cm4gY29udGV4dDsKKyAg
ICByZXR1cm4gZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpOworfQorCit2b2lkIFRlc3RDb250cm9s
bGVyOjpwbGF0Zm9ybVJ1blVudGlsKGJvb2wmIGNvbmRpdGlvbiwgZG91YmxlIHRpbWVvdXQpCit7
CisgICAgc3RydWN0IFRpbWVvdXRUaW1lciB7CisgICAgICAgIFRpbWVvdXRUaW1lcigpCisgICAg
ICAgICAgICA6IHRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJlRpbWVvdXRUaW1lcjo6Zmly
ZWQpCisgICAgICAgIHsgfQorCisgICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4o
KS5zdG9wKCk7IH0KKyAgICAgICAgUnVuTG9vcDo6VGltZXI8VGltZW91dFRpbWVyPiB0aW1lcjsK
KyAgICB9IHRpbWVvdXRUaW1lcjsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zZXRQcmlvcml0
eShHX1BSSU9SSVRZX0RFRkFVTFRfSURMRSk7CisgICAgaWYgKHRpbWVvdXQgPj0gMCkKKyAgICAg
ICAgdGltZW91dFRpbWVyLnRpbWVyLnN0YXJ0T25lU2hvdCh0aW1lb3V0KTsKKworICAgIFJ1bkxv
b3A6Om1haW4oKS5ydW4oKTsKKworICAgIHRpbWVvdXRUaW1lci50aW1lci5zdG9wKCk7Cit9CisK
K3ZvaWQgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtRGlkQ29tbWl0TG9hZEZvckZyYW1lKFdLUGFn
ZVJlZiwgV0tGcmFtZVJlZikKK3sKK30KKworc3RhdGljIGNoYXIqIGdldEVudmlyb25tZW50VmFy
aWFibGVBc1VURjhTdHJpbmcoY29uc3QgY2hhciogdmFyaWFibGVOYW1lKQoreworICAgIGNvbnN0
IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1lKTsKKyAgICBpZiAoIXZhbHVlKSB7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMgZW52aXJvbm1lbnQgdmFyaWFibGUgbm90IGZv
dW5kXG4iLCB2YXJpYWJsZU5hbWUpOworICAgICAgICBleGl0KDApOworICAgIH0KKyAgICBnc2l6
ZSBieXRlc1dyaXR0ZW47CisgICAgcmV0dXJuIGdfZmlsZW5hbWVfdG9fdXRmOCh2YWx1ZSwgLTEs
IDAsICZieXRlc1dyaXR0ZW4sIDApOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFs
aXplSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ2V0
RW52aXJvbm1lbnRWYXJpYWJsZUFzVVRGOFN0cmluZygiVEVTVF9SVU5ORVJfSU5KRUNURURfQlVO
RExFX0ZJTEVOQU1FIikpOworICAgIG1faW5qZWN0ZWRCdW5kbGVQYXRoLmFkb3B0KFdLU3RyaW5n
Q3JlYXRlV2l0aFVURjhDU3RyaW5nKHBhdGguZ2V0KCkpKTsKK30KKwordm9pZCBUZXN0Q29udHJv
bGxlcjo6aW5pdGlhbGl6ZVRlc3RQbHVnaW5EaXJlY3RvcnkoKQoreworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjpydW5Nb2RhbChQbGF0Zm9ybVdlYlZpZXcqKQoreworfQorCitXS0NvbnRleHRS
ZWYgVGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ29udGV4dCgpCit7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK2NvbnN0IGNoYXIqIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUxpYnJhcnlQYXRo
Rm9yVGVzdGluZygpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK3ZvaWQgVGVzdENvbnRy
b2xsZXI6OnBsYXRmb3JtQ29uZmlndXJlVmlld0ZvclRlc3QoY29uc3QgVGVzdEludm9jYXRpb24m
KQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybVJlc2V0UHJlZmVyZW5jZXNU
b0NvbnNpc3RlbnRWYWx1ZXMoKQoreworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjp1cGRhdGVQ
bGF0Zm9ybVNwZWNpZmljVGVzdE9wdGlvbnNGb3JUZXN0KFRlc3RPcHRpb25zJiwgY29uc3Qgc3Rk
OjpzdHJpbmcmKSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci93cGUvbWFpbi5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjZjZjJiN2ZmMzIxCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
cGUvbWFpbi5jcHAKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJ
Z2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJU
ZXN0Q29udHJvbGxlci5oIgorCitpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7Cisg
ICAgV1RSOjpUZXN0Q29udHJvbGxlciBjb250cm9sbGVyKGFyZ2MsIGNvbnN0X2Nhc3Q8Y29uc3Qg
Y2hhcioqPihhcmd2KSk7CisgICAgcmV0dXJuIDA7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9qaGJ1
aWxkL2poYnVpbGQtd3JhcHBlciBiL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCmluZGV4
IGY2YzQwM2QzMWIwLi5lM2VlY2RmY2U4NyAxMDA3NTUKLS0tIGEvVG9vbHMvamhidWlsZC9qaGJ1
aWxkLXdyYXBwZXIKKysrIGIvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIKQEAgLTMxLDYg
KzMxLDggQEAgZGVmIGRldGVybWluZV9wbGF0Zm9ybSgpOgogICAgICAgICByZXR1cm4gImVmbCI7
CiAgICAgaWYgJy0tZ3RrJyBpbiBzeXMuYXJndjoKICAgICAgICAgcmV0dXJuICJndGsiOworICAg
IGlmICctLXdwZScgaW4gc3lzLmFyZ3Y6CisgICAgICAgIHJldHVybiAid3BlIgogICAgIHJhaXNl
IFZhbHVlRXJyb3IoJ05vIHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgamhidWlsZC13cmFwcGVyLicp
CiAKIHRyeToKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291
cmNlLW1hbmlmZXN0LnB5IGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2Ut
bWFuaWZlc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmFiMTk0
NzQ0YzU1Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2dlbmVyYXRlLWluc3BlY3Rvci1n
cmVzb3VyY2UtbWFuaWZlc3QucHkKQEAgLTAsMCArMSw3NyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0
aG9uCisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorIworIyBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisjIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyMg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisjIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkg
bGF0ZXIgdmVyc2lvbi4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBo
b3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg
d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjIE1FUkNIQU5UQUJJTElUWSBv
ciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisjIExlc3Nl
ciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisjCisjIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMK
KyMgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUg
RnJlZSBTb2Z0d2FyZQorIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKKworaW1wb3J0IGFyZ3BhcnNl
CitpbXBvcnQgZ2xvYgoraW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK0NPTVBSRVNTSUJMRV9FWFRF
TlNJT05TID0gWycuaHRtbCcsICcuanMnLCAnLmNzcycsICcuc3ZnJ10KK0JBU0VfRElSID0gJ1dl
Ykluc3BlY3RvclVJLycKKworCitkZWYgZ2V0X2ZpbGVuYW1lcyhhcmdzKToKKyAgICBmaWxlbmFt
ZXMgPSBbXQorCisgICAgZm9yIHBhdHRlcm4gaW4gYXJnczoKKyAgICAgICAgcGF0aHMgPSBnbG9i
Lmdsb2IocGF0dGVybikKKyAgICAgICAgZm9yIGZpbGVuYW1lIGluIHBhdGhzOgorICAgICAgICAg
ICAgYmFzZV9kaXJfaW5kZXggPSBmaWxlbmFtZS5yZmluZChCQVNFX0RJUikKKyAgICAgICAgICAg
IGlmIGJhc2VfZGlyX2luZGV4ICE9IC0xOgorICAgICAgICAgICAgICAgIG5hbWUgPSBmaWxlbmFt
ZVtiYXNlX2Rpcl9pbmRleCArIGxlbihCQVNFX0RJUik6XQorICAgICAgICAgICAgICAgICMgVGhl
IHJlc3VsdCBzaG91bGQgdXNlIGZvcndhcmQgc2xhc2hlcywgdGh1cyBtYWtlIHN1cmUgYW55IG9z
LXNwZWNpZmljCisgICAgICAgICAgICAgICAgIyBzZXBhcmF0b3IsIGFkZGVkIGJ5IHRoZSBnbG9i
Lmdsb2IoKSBjYWxsLCBpcyBwcm9wZXJseSByZXBsYWNlZAorICAgICAgICAgICAgICAgIGlmIG9z
LnNlcCAhPSAnLyc6CisgICAgICAgICAgICAgICAgICAgIG5hbWUgPSBuYW1lLnJlcGxhY2Uob3Mu
c2VwLCAnLycpCisgICAgICAgICAgICAgICAgZmlsZW5hbWVzLmFwcGVuZChuYW1lKQorICAgIHJl
dHVybiBmaWxlbmFtZXMKKworCitkZWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICBy
ZXR1cm4gb3MucGF0aC5zcGxpdGV4dChmaWxlbmFtZSlbMV0gaW4gQ09NUFJFU1NJQkxFX0VYVEVO
U0lPTlMKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIHBhcnNlciA9IGFyZ3Bh
cnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSdHZW5lcmF0ZSBhIEdSZXNvdXJjZXMgZmls
ZSBmb3IgdGhlIGluc3BlY3Rvci4nKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJy0tb3V0cHV0
JywgbmFyZ3M9Jz8nLCB0eXBlPWFyZ3BhcnNlLkZpbGVUeXBlKCd3JyksIGRlZmF1bHQ9c3lzLnN0
ZG91dCwKKyAgICAgICAgICAgICAgICAgICAgICAgIGhlbHA9J3RoZSBvdXRwdXQgZmlsZScpCisg
ICAgcGFyc2VyLmFkZF9hcmd1bWVudCgnZmlsZW5hbWVzJywgbWV0YXZhcj0nRklMRVMnLCBuYXJn
cz0nKycsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxwPSd0aGUgbGlzdCBvZiBmaWxlcyB0
byBpbmNsdWRlJykKKworICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncyhzeXMuYXJndlsxOl0p
CisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiPD94bWwgdmVyc2lvbj0xLjAgZW5j
b2Rpbmc9VVRGLTg/PgorICAgIDxncmVzb3VyY2VzPgorICAgICAgICA8Z3Jlc291cmNlIHByZWZp
eD0iL29yZy93cGUvaW5zcGVjdG9yIj4KKyIiIikKKworICAgIGZvciBmaWxlbmFtZSBpbiBnZXRf
ZmlsZW5hbWVzKGFyZ3MuZmlsZW5hbWVzKToKKyAgICAgICAgbGluZSA9ICcgICAgICAgICAgICA8
ZmlsZScKKyAgICAgICAgaWYgaXNfY29tcHJlc3NpYmxlKGZpbGVuYW1lKToKKyAgICAgICAgICAg
IGxpbmUgKz0gJyBjb21wcmVzc2VkPSJ0cnVlIicKKyAgICAgICAgaWYgJ0ltYWdlcy9ndGsvJyBp
biBmaWxlbmFtZToKKyAgICAgICAgICAgIGxpbmUgKz0gJyBhbGlhcz0iJXMiJyAlIGZpbGVuYW1l
LnJlcGxhY2UoJ2d0ay8nLCAnJykKKyAgICAgICAgbGluZSArPSAnPiVzPC9maWxlPlxuJyAlIGZp
bGVuYW1lCisKKyAgICAgICAgYXJncy5vdXRwdXQud3JpdGUobGluZSkKKworICAgIGFyZ3Mub3V0
cHV0LndyaXRlKFwKKyAgICAiIiIgICAgPC9ncmVzb3VyY2U+Cis8L2dyZXNvdXJjZXM+CisiIiIp
CisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy93cGUvamhi
dWlsZC5tb2R1bGVzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4yZWQ3
NTYyNjRhMgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKQEAg
LTAsMCArMSwyNDYgQEAKKzw/eG1sIHZlcnNpb249IjEuMCI/PgorPCFET0NUWVBFIG1vZHVsZXNl
dCBTWVNURU0gIm1vZHVsZXNldC5kdGQiPgorPD94bWwtc3R5bGVzaGVldCB0eXBlPSJ0ZXh0L3hz
bCIgaHJlZj0ibW9kdWxlc2V0LnhzbCI/PgorPG1vZHVsZXNldD4KKworICA8bWV0YW1vZHVsZSBp
ZD0id2Via2l0d3BlLXRlc3RpbmctZGVwZW5kZW5jaWVzIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImxpYnNvdXAi
Lz4KKyAgICAgIDxkZXAgcGFja2FnZT0iY2Fpcm8iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZm9u
dHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZGljdHMiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
Zm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJmcmVldHlwZTYiLz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0iaGFyZmJ1enoiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0ieGtiY29tbW9uIi8+
CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0
cmVhbWVyIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtZ29vZCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJn
c3QtcGx1Z2lucy1iYWQiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LWxpYmF2Ii8+CisgICAg
ICA8ZGVwIHBhY2thZ2U9IndwZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUtbWVzYSIvPgor
ICAgIDwvZGVwZW5kZW5jaWVzPgorICA8L21ldGFtb2R1bGU+CisKKyAgPHJlcG9zaXRvcnkgdHlw
ZT0idGFyYmFsbCIgbmFtZT0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgaHJlZj0iaHR0
cDovL21pcnJvcnMua2VybmVsLm9yZy9zb3VyY2VzLnJlZGhhdC5jb20vIi8+CisgIDxyZXBvc2l0
b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImZ0cC5nbm9tZS5vcmciCisgICAgICBocmVmPSJodHRw
Oi8vZnRwLmdub21lLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJj
YWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9jYWlyb2dyYXBoaWNzLm9yZyIv
PgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJmcmVlZGVza3RvcC5vcmciCisg
ICAgICBocmVmPSJodHRwOi8vd3d3LmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0
eXBlPSJ0YXJiYWxsIiBuYW1lPSJ3YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9
Imh0dHA6Ly93YXlsYW5kLmZyZWVkZXNrdG9wLm9yZyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJn
aXQiIG5hbWU9ImdpdGh1Yi5jb20iCisgICAgICBocmVmPSJnaXQ6Ly9naXRodWIuY29tIi8+Cisg
IDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9ImdzdHJlYW1lciIKKyAgICAgIGhyZWY9
Imh0dHA6Ly9nc3RyZWFtZXIuZnJlZWRlc2t0b3Aub3JnL3NyYy8iLz4KKyAgPHJlcG9zaXRvcnkg
dHlwZT0idGFyYmFsbCIgbmFtZT0ieGtiY29tbW9uLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly94
a2Jjb21tb24ub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9InNhdmFu
bmFoLmdudS5vcmciCisgICAgICBocmVmPSJodHRwOi8vZG93bmxvYWQuc2F2YW5uYWguZ251Lm9y
Zy9yZWxlYXNlcy8iLz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJmZmkiIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9ImxpYmZmaS9saWJmZmktMy4wLjEwLnRhci5n
eiIgdmVyc2lvbj0iMy4wLjEwIgorICAgICAgICAgICAgIHJlcG89InNvdXJjZXdhcmUub3JnLW1p
cnJvciIKKyAgICAgICAgICAgICBoYXNoPSJzaGEyNTY6ZjAxZWI5MDI3ZTllYjU2YWVhZWVmNjM2
NjQ5ODc3NzU2ZDQ3NWQ3MTRlZjhiNDdmNjI3ZjY1YmM1ZjNiNDkyZiIvPgorICA8L2F1dG90b29s
cz4KKworICA8YXV0b3Rvb2xzIGlkPSJnbGliIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWR0cmFjZSI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ibGliZmZpIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGli
LzIuNDQvZ2xpYi0yLjQ0LjEudGFyLnh6IiB2ZXJzaW9uPSIyLjQ0LjEiCisgICAgICAgICAgICBy
ZXBvPSJmdHAuZ25vbWUub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2Ojg4MTFkZWFjYWY4
YTUwM2QwYTliNzAxNzc3ZWEwNzljYTZhNDI3N2JlMTBlM2Q3MzBkMjExMjczNWQ1ZWNhMDciPgor
ICAgICAgPHBhdGNoIGZpbGU9ImdsaWItd2FybmluZy1maXgucGF0Y2giIHN0cmlwPSIxIi8+Cisg
ICAgICA8cGF0Y2ggZmlsZT0iZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdh
cm5pbmcucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgor
CisgIDxhdXRvdG9vbHMgaWQ9ImdsaWItbmV0d29ya2luZyI+CisgICAgPGRlcGVuZGVuY2llcz4K
KyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxi
cmFuY2ggbW9kdWxlPSIvcHViL0dOT01FL3NvdXJjZXMvZ2xpYi1uZXR3b3JraW5nLzIuNDIvZ2xp
Yi1uZXR3b3JraW5nLTIuNDIuMC50YXIueHoiIHZlcnNpb249IjIuNDIuMCIKKyAgICAgICAgICAg
IHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6MzA0ZGQ5ZTRj
MGNlZDY5MDk0MzAwZTBiOWU2NmNkMmVhYWU3MTYxYjlmYzMxODY1MzZkMTE0NTg2NzdkODIwZCIv
PgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJsaWJzb3VwIgorICAgICAgICAg
ICAgIGF1dG9nZW5hcmdzPSItLXdpdGhvdXQtZ25vbWUgLS1kaXNhYmxlLWludHJvc3BlY3Rpb24i
PgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWItbmV0d29ya2lu
ZyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSIvcHViL0dOT01F
L3NvdXJjZXMvbGlic291cC8yLjQ4L2xpYnNvdXAtMi40OC4wLnRhci54eiIgdmVyc2lvbj0iMi40
OC4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1NjplYTM0ZGQ2NGZlNDQzNDM0NDVkYWY2ZGQ2OTBkMDY5MWU5ZDk3MzQ2OGRlNDQ4Nzhk
YTk3MzcxYzE2ZDg5Nzg0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZv
bnRzIiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAgc2tpcC1h
dXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0ibXJv
Ymluc29uL3dlYmtpdGd0ay10ZXN0LWZvbnRzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtpdGd0ay10
ZXN0LWZvbnRzIiB0YWc9IjAuMC41Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImRpY3RzIiBzdXBwb3J0cy1ub24tc3JjZGlyLWJ1aWxkcz0ibm8iCisgICAgICAgICAgICAg
c2tpcC1hdXRvZ2VuPSJ0cnVlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVs
ZT0ibXJvYmluc29uL3dlYmtpdGd0ay10ZXN0LWRpY3RzLmdpdCIgY2hlY2tvdXRkaXI9IndlYmtp
dGd0ay10ZXN0LWRpY3RzIiB0YWc9IjAuMC4xIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRv
dG9vbHMgaWQ9ImZyZWV0eXBlNiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNo
IG1vZHVsZT0iZnJlZXR5cGUvZnJlZXR5cGUtMi40LjExLnRhci5iejIiIHZlcnNpb249IjIuNC4x
MSIKKyAgICAgICAgICAgIHJlcG89InNhdmFubmFoLmdudS5vcmciCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ZWY5ZDBiY2I2NDY0N2Q5ZTUxMjVkYzc1MzRkN2NhMzcxYzk4MzEwZmVjODc2Nzdj
NDEwZjM5N2Y3MWZmYmUzZiIKKyAgICAgICAgICAgIG1kNXN1bT0iYjkzNDM1NDg4OTQyNDg2Yzhk
MGNhMjJlOGY3NjgwMzQiPgorICAgICAgPHBhdGNoIGZpbGU9ImZyZWV0eXBlNi0yLjQuMTEtdHJ1
ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgor
ICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJmb250Y29uZmlnIiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZy
ZWV0eXBlNiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0
d2FyZS9mb250Y29uZmlnL3JlbGVhc2UvZm9udGNvbmZpZy0yLjExLjEudGFyLmd6IiB2ZXJzaW9u
PSIyLjExLjEiCisgICAgICAgICAgICByZXBvPSJmcmVlZGVza3RvcC5vcmciCisgICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6YjZiMDY2YzdkY2UzZjQzNmZkYzBkZmJhZTlkMzYxMjJiMzgwOTRmNGY1
M2JkOGRmZmQ0NWUxOTViMDU0MGQ4ZCIKKyAgICAgICAgICAgIG1kNXN1bT0iZTc1ZTMwM2I0Zjc3
NTZjMmIxNjIwM2E1N2FjODdlYmEiPgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKwor
ICA8YXV0b3Rvb2xzIGlkPSJoYXJmYnV6eiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAg
ICBhdXRvZ2VuYXJncz0iLS13aXRoLWNhaXJvPW5vIC0td2l0aC1nbGliPW5vIC0td2l0aC1mcmVl
dHlwZT15ZXMiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZyZWV0
eXBlNiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJzb2Z0d2Fy
ZS9oYXJmYnV6ei9yZWxlYXNlL2hhcmZidXp6LTEuMy4zLnRhci5iejIiCisgICAgICAgICAgICB2
ZXJzaW9uPSIxLjMuMyIKKyAgICAgICAgICAgIGNoZWNrb3V0ZGlyPSJoYXJmYnV6ei0xLjMuMyIK
KyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNo
YTI1NjoyNjIwOTg3MTE1YTQxMjJiNDczMjE2MTBkY2NiY2MxOGY3ZjEyMTExNWZkN2I4OGRjOGE2
OTVjOGI2NmNiM2M5IgorICAgICAgICAgICAgbWQ1c3VtPSI5N2FlMTVhNzJhOTNmMWYyNzMyNGEy
YjhkOWJkM2IxZCI+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9v
bHMgaWQ9InBpeG1hbiIKKyAgICAgICAgICAgICBhdXRvZ2VuLXNoPSJjb25maWd1cmUiCisgICAg
ICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0tZW5hYmxlLWd0az1ubyI+CisgICAgPGJyYW5jaCBtb2R1
bGU9InJlbGVhc2VzL3BpeG1hbi0wLjMyLjYudGFyLmd6IiB2ZXJzaW9uPSIwLjMyLjYiCisgICAg
ICAgICAgICByZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1
NjozZGZlZDEzYjgwNjBlYWRhYmYwYTQ5NDVjNzA0NWI3NzkzY2M3ZTNlOTEwZTc0OGE4YmIwZjBk
YzNlNzk0OTA0Ii8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImNhaXJvIiBh
dXRvZ2VuYXJncz0iLS1lbmFibGUtZWdsPXllcyAtLWVuYWJsZS1nbGVzdjIiPgorICAgIDxkZXBl
bmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxkZXAgcGFja2Fn
ZT0iZm9udGNvbmZpZyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJwaXhtYW4iLz4KKyAgICA8L2Rl
cGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvY2Fpcm8tMS4xNC44LnRh
ci54eiIgdmVyc2lvbj0iMS4xNC44IgorICAgICAgICAgICAgcmVwbz0iY2Fpcm9ncmFwaGljcy5v
cmciCisgICAgICAgICAgICBoYXNoPSJzaGExOmM2ZjdiOTk5ODZmOTNjOWRmNzg2NTNjM2U2YTNi
NTA0M2Y2NTE0NWUiPgorICAgICAgPHBhdGNoIGZpbGU9ImNhaXJvLWVnbC1kZXZpY2UtY3JlYXRl
LWZvci1lZ2wtc3VyZmFjZS5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ieGtiY29tbW9uIj4KKyAgICA8YnJhbmNoIG1v
ZHVsZT0iZG93bmxvYWQvbGlieGtiY29tbW9uLTAuNS4wLnRhci54eiIgdmVyc2lvbj0iMC41LjAi
CisgICAgICAgICAgICByZXBvPSJ4a2Jjb21tb24ub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hh
MTo3MTI3OTkzYmZiNjllMTNjZGZmMjVmYjhiM2M4ZjI2Y2U2YmU1YmZhIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9IndheWxhbmQiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUt
ZG9jdW1lbnRhdGlvbiI+CisgICAgPGJyYW5jaCBtb2R1bGU9InJlbGVhc2VzL3dheWxhbmQtMS45
LjAudGFyLnh6IiB2ZXJzaW9uPSIxLjkuMCIKKyAgICAgICAgICAgIHJlcG89IndheWxhbmQuZnJl
ZWRlc2t0b3Aub3JnIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjljODc3MDcyMGFhMDAzNDQ3
OTczNWY1OGE0ZGM0Y2E5YjE3MmVjZmVkZTI4ZjUxMzQzMTJlMTM1YjczMDFlZmEiLz4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0ib3JjIiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxl
LWd0ay1kb2MiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGJyYW5jaCBtb2R1bGU9Im9y
Yy9vcmMtMC40LjE3LnRhci5neiIgdmVyc2lvbj0iMC40LjE3IgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjRmYzdjY2E0OGM1OWZmZjIzYWZl
ZTc4ZmI2NDJjZGJkZTAwMWY1NjQwMWM4ZjQ3Yjk1YTE2NTc4ZDFkNWQ3ZTgiCisgICAgICAgICAg
ICBtZDVzdW09ImFmMWJmM2RhYjllNjlmM2MzNmYzODkyODVlMmExMmExIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdHJlYW1lciIgYXV0b2dlbi1zaD0iY29uZmlndXJl
IiBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9Im9yYyIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFu
Y2ggbW9kdWxlPSJnc3RyZWFtZXIvZ3N0cmVhbWVyLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9u
PSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9
InNoYTI1Njo1YTM3MjJmYjkzMDJkZDk3N2MxN2NlZDQyNDAyOTNkYzc3N2NiNzE2ZGM5OGM4Y2Nh
NjNkNzVjMjdlNWUzMTA3IgorICAgICAgICAgICAgbWQ1c3VtPSI3MTFhZGE3OWI2M2U0N2FjOTZh
ZGI0ZTU0NDRkYzkwOCI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ3N0cmVhbWVyLXR5cGVmaW5kLU9u
bHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIiBzdHJpcD0iMSIv
PgorICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3Qt
cGx1Z2lucy1iYXNlIgorICAgICAgICAgICAgIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIKKyAgICAg
ICAgICAgICBhdXRvZ2VuYXJncz0iLS1kaXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9j
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4K
KyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFz
ZS9nc3QtcGx1Z2lucy1iYXNlLSR7dmVyc2lvbn0udGFyLnh6IiB2ZXJzaW9uPSIxLjguMSIKKyAg
ICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjoxNWE5
ZGU5ODVjZDI2NWMzNDRlMzU5ZjViMTkzNDdkZjQwMjFiNzYxMWVkMmMyZDkxOTE3Y2I5MDBmMmZh
ZDZmIgorICAgICAgICAgICAgbWQ1c3VtPSI1NDIxZWRmZWI3NDc5ZDVmNTc3NmU5MTdiYTMwZTI0
ZSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtcGx1Z2lucy1nb29k
IiBhdXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMg
LS1kaXNhYmxlLXNvdXAgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2ll
cz4KKworICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtcGx1Z2lucy1nb29kL2dzdC1wbHVnaW5zLWdv
b2QtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjIxMDNlMTc5MjFkNjc4OTRlODJl
YWZkZDY0ZmI5YjA2NTE4NTk5OTUyZmQ5M2U2MjViZmJjODNmZmVhZDA5NzIiCisgICAgICAgICAg
ICBtZDVzdW09IjNlYWJlNzI3NzY4MWI5YmVmOGE2NGMzMTJkZTAzZDQ3Ij4KKyAgICAgIDxwYXRj
aCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaCIg
c3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1nb29kLVJldmVydC1x
dGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2giIHN0cmlw
PSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImdzdC1wbHVnaW5zLWJhZCIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS1k
aXNhYmxlLWV4YW1wbGVzIC0tZGlzYWJsZS1ndGstZG9jIC0tZGlzYWJsZS1pbnRyb3NwZWN0aW9u
Ij4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1i
YXNlIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVn
aW5zLWJhZC9nc3QtcGx1Z2lucy1iYWQtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4x
IgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2
OjBiYmQ1OGYzNjM3MzRmYzBjNGE2MjBiMmQ2ZmIwMWQ0MjdmZGFmZGJkYTdiOTBiNGUxNWQwM2I3
NTFjYTQwZjUiCisgICAgICAgICAgICBtZDVzdW09ImU1MDhkYTJhOGE1YzNkMTIyNjRmZTM0MTVi
ZTJmNDUxIj4KKyAgICAgIDxwYXRjaCBmaWxlPSJnc3QtcGx1Z2lucy1iYWQtMDAwMS1kdGxzLXBv
cnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxl
PSJnc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5n
LWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgorICA8
L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJnc3QtbGliYXYiIGF1dG9nZW4tc2g9ImNv
bmZpZ3VyZSIgYXV0b2dlbmFyZ3M9Ii0td2l0aC1saWJhdi1leHRyYS1jb25maWd1cmU9Jy0tZGlz
YWJsZS15YXNtJyAtLWRpc2FibGUtZ3RrLWRvYyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgor
ICAgIDxicmFuY2ggbW9kdWxlPSJnc3QtbGliYXYvZ3N0LWxpYmF2LSR7dmVyc2lvbn0udGFyLnh6
IiB2ZXJzaW9uPSIxLjguMSIKKyAgICAgICAgICAgIHJlcG89ImdzdHJlYW1lciIKKyAgICAgICAg
ICAgIGhhc2g9InNoYTI1Njo0NGE0OTEwOGMzNTMxYjVhYzRmMzQ2YTIyNDdjZDdmYmFmYjBlOGFi
Mzk0Mzk0Y2I2ZDc1YTcwMzAwYjM4OTMzIgorICAgICAgICAgICAgbWQ1c3VtPSI4NWYxYTA0NzYw
NmNhOWUwODQ5M2Q3YjZiNDJkZjQ2MiIvPgorICA8L2F1dG90b29scz4KKworICA8Y21ha2UgaWQ9
IndwZSI+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBsYXRmb3Jt
Rm9yRW1iZWRkZWQvV1BFQmFja2VuZC5naXQiCisgICAgICAgICAgICB0YWc9IjVlMmEyOWQyY2Nj
NjM3ZjcxMjJiYTcyYzFkNjJlZjY2OWI0MmYwNWMiIC8+CisgIDwvY21ha2U+CisKKyAgPGNtYWtl
IGlkPSJ3cGUtbWVzYSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0i
d3BlIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIiAvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJ3YXlsYW5kIiAvPgorICAgICAgPGRlcCBwYWNrYWdlPSJ4a2Jjb21tb24iIC8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCByZXBvPSJnaXRodWIuY29tIiBtb2R1bGU9IldlYlBs
YXRmb3JtRm9yRW1iZWRkZWQvV1BFQmFja2VuZC1tZXNhLmdpdCIKKyAgICAgICAgICAgIHRhZz0i
OTk0NTc1M2Y5MzM3ZmQ2N2FmMDk4MjE4Yjc4MTkzMzdhYmEyMTE0MSIgLz4KKyAgPC9jbWFrZT4K
KzwvbW9kdWxlc2V0PgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGRyYyBiL1Rvb2xzL3dw
ZS9qaGJ1aWxkcmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyZmE4
OGQ3MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpAQCAtMCwwICsx
LDI1IEBACisjIS91c3IvYmluL2VudiBweXRob24KKyMgQ29weXJpZ2h0IChDKSAyMDE0IElnYWxp
YSBTLkwuCisjCisjIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKKyMgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyMgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNl
LCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorIworIyBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyMgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyMKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworIyBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisjIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorCitpbXBvcnQgc3lzCitpbXBvcnQgb3MKKworc3lzLnBhdGguaW5zZXJ0KDAsIG9z
LnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoX19maWxlX18pLCAiLi4vamhidWlsZCIpICkKK2lt
cG9ydCBqaGJ1aWxkcmNfY29tbW9uCitqaGJ1aWxkcmNfY29tbW9uLmluaXQoZ2xvYmFscygpLCAi
d3BlIikKKyMgRW5hYmxlIGJ1aWxkZGlyICE9IHNyY2RpciBidWlsZHMuCitidWlsZHJvb3QgPSBv
cy5wYXRoLmpvaW4ob3MucGF0aC5kaXJuYW1lKGNoZWNrb3V0cm9vdCksICJCdWlsZCIpCmRpZmYg
LS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWds
LXN1cmZhY2UucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0
ZS1mb3ItZWdsLXN1cmZhY2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAuLmQ0NmRmNDViNmYzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMv
Y2Fpcm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoCkBAIC0wLDAgKzEs
MTMzIEBACitGcm9tIGE0ZTBkYWYxOGJmODI1MjQ2M2Y2NmQ3NWVlZjQ5OWNmZmZhMzI1NjUgTW9u
IFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBaYW4gRG9iZXJzZWsgPHpkb2JlcnNla0BpZ2Fs
aWEuY29tPgorRGF0ZTogTW9uLCAxNyBOb3YgMjAxNCAwMToyMzoxNSAtMDgwMAorU3ViamVjdDog
W1BBVENIXSBBZGQgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGVfZm9yX2VnbF9zdXJmYWNlKCkuCisK
Ky0tLQorIHNyYy9jYWlyby1lZ2wtY29udGV4dC5jIHwgNjYgKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrLS0tLS0tLQorIHNyYy9jYWlyby1nbC5oICAgICAgICAgIHwg
IDMgKysrCisgMiBmaWxlcyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygt
KQorCitkaWZmIC0tZ2l0IGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgYi9zcmMvY2Fpcm8tZWds
LWNvbnRleHQuYworaW5kZXggYmY3MDRjNi4uYmUyYmNmOSAxMDA2NDQKKy0tLSBhL3NyYy9jYWly
by1lZ2wtY29udGV4dC5jCisrKysgYi9zcmMvY2Fpcm8tZWdsLWNvbnRleHQuYworQEAgLTQ4LDcg
KzQ4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgX2NhaXJvX2VnbF9jb250ZXh0IHsKKyAgICAgRUdMRGlz
cGxheSBkaXNwbGF5OworICAgICBFR0xDb250ZXh0IGNvbnRleHQ7CisgCistICAgIEVHTFN1cmZh
Y2UgZHVtbXlfc3VyZmFjZTsKKysgICAgRUdMU3VyZmFjZSBzdXJmYWNlOworKyAgICBjYWlyb19i
b29sX3QgaXNfZHVtbXlfc3VyZmFjZTsKKyAKKyAgICAgRUdMQ29udGV4dCBwcmV2aW91c19jb250
ZXh0OworICAgICBFR0xTdXJmYWNlIHByZXZpb3VzX3N1cmZhY2U7CitAQCAtNzQsNyArNzUsNyBA
QCBfZWdsX2dldF9jdXJyZW50X3N1cmZhY2UgKGNhaXJvX2VnbF9jb250ZXh0X3QgKmN0eCkKKyB7
CisgICAgIGlmIChjdHgtPmJhc2UuY3VycmVudF90YXJnZXQgPT0gTlVMTCB8fAorICAgICAgICAg
X2NhaXJvX2dsX3N1cmZhY2VfaXNfdGV4dHVyZSAoY3R4LT5iYXNlLmN1cnJlbnRfdGFyZ2V0KSkg
eworLQlyZXR1cm4gIGN0eC0+ZHVtbXlfc3VyZmFjZTsKKysJcmV0dXJuICBjdHgtPnN1cmZhY2U7
CisgICAgIH0KKyAKKyAgICAgcmV0dXJuICgoY2Fpcm9fZWdsX3N1cmZhY2VfdCAqKSBjdHgtPmJh
c2UuY3VycmVudF90YXJnZXQpLT5lZ2w7CitAQCAtMTUxLDggKzE1Miw4IEBAIF9lZ2xfZGVzdHJv
eSAodm9pZCAqYWJzdHJhY3RfY3R4KQorIAorICAgICBlZ2xNYWtlQ3VycmVudCAoY3R4LT5kaXNw
bGF5LAorIAkJICAgIEVHTF9OT19TVVJGQUNFLCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX0NPTlRF
WFQpOworLSAgICBpZiAoY3R4LT5kdW1teV9zdXJmYWNlICE9IEVHTF9OT19TVVJGQUNFKQorLSAg
ICAgICAgZWdsRGVzdHJveVN1cmZhY2UgKGN0eC0+ZGlzcGxheSwgY3R4LT5kdW1teV9zdXJmYWNl
KTsKKysgICAgaWYgKGN0eC0+aXNfZHVtbXlfc3VyZmFjZSAmJiBjdHgtPnN1cmZhY2UgIT0gRUdM
X05PX1NVUkZBQ0UpCisrICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5LCBj
dHgtPnN1cmZhY2UpOworIH0KKyAKKyBzdGF0aWMgY2Fpcm9fYm9vbF90CitAQCAtMjE4LDEzICsy
MTksMTQgQEAgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250
ZXh0IGVnbCkKKyAJZWdsUXVlcnlDb250ZXh0IChkcHksIGVnbCwgRUdMX0NPTkZJR19JRCwgJmNv
bmZpZ19hdHRyaWJzWzFdKTsKKyAJZWdsQ2hvb3NlQ29uZmlnIChkcHksIGNvbmZpZ19hdHRyaWJz
LCAmY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgCistCWN0eC0+ZHVtbXlfc3VyZmFjZSA9IGVn
bENyZWF0ZVBidWZmZXJTdXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CistCWlmIChjdHgt
PmR1bW15X3N1cmZhY2UgPT0gTlVMTCkgeworKwljdHgtPmlzX2R1bW15X3N1cmZhY2UgPSBUUlVF
OworKwljdHgtPnN1cmZhY2UgPSBlZ2xDcmVhdGVQYnVmZmVyU3VyZmFjZSAoZHB5LCBjb25maWcs
IGF0dHJpYnMpOworKwlpZiAoY3R4LT5zdXJmYWNlID09IE5VTEwpIHsKKyAJICAgIGZyZWUgKGN0
eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlS
T19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorIAorLQlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHks
IGN0eC0+ZHVtbXlfc3VyZmFjZSwgY3R4LT5kdW1teV9zdXJmYWNlLCBlZ2wpKSB7CisrCWlmICgh
ZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5zdXJmYWNlLCBjdHgtPnN1cmZhY2UsIGVnbCkpIHsK
KyAJICAgIGZyZWUgKGN0eCk7CisgCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRl
X2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKyAJfQorQEAgLTIzOCw4ICsyNDAs
NTQgQEAgY2Fpcm9fZWdsX2RldmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0
IGVnbCkKKyAKKyAgICAgc3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFz
ZSk7CisgICAgIGlmICh1bmxpa2VseSAoc3RhdHVzKSkgeworLQlpZiAoY3R4LT5kdW1teV9zdXJm
YWNlICE9IEVHTF9OT19TVVJGQUNFKQorLQkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4
LT5kdW1teV9zdXJmYWNlKTsKKysJaWYgKGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkK
KysJICAgIGVnbERlc3Ryb3lTdXJmYWNlIChkcHksIGN0eC0+c3VyZmFjZSk7CisrCWZyZWUgKGN0
eCk7CisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7
CisrICAgIH0KKysKKysgICAgZWdsTWFrZUN1cnJlbnQgKGRweSwgRUdMX05PX1NVUkZBQ0UsIEVH
TF9OT19TVVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CisrCisrICAgIHJldHVybiAmY3R4LT5iYXNl
LmJhc2U7CisrfQorKworK2NhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0
ZV9mb3JfZWdsX3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3Vy
ZmFjZSBzdXJmYWNlKQorK3sKKysgICAgY2Fpcm9fZWdsX2NvbnRleHRfdCAqY3R4OworKyAgICBj
YWlyb19zdGF0dXNfdCBzdGF0dXM7CisrCisrICAgIGN0eCA9IGNhbGxvYyAoMSwgc2l6ZW9mIChj
YWlyb19lZ2xfY29udGV4dF90KSk7CisrICAgIGlmICh1bmxpa2VseSAoY3R4ID09IE5VTEwpKQor
KwlyZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRfY3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNf
Tk9fTUVNT1JZKTsKKysKKysgICAgY3R4LT5kaXNwbGF5ID0gZHB5OworKyAgICBjdHgtPmNvbnRl
eHQgPSBlZ2w7CisrICAgIGN0eC0+c3VyZmFjZSA9IHN1cmZhY2U7CisrCisrICAgIGN0eC0+YmFz
ZS5hY3F1aXJlID0gX2VnbF9hY3F1aXJlOworKyAgICBjdHgtPmJhc2UucmVsZWFzZSA9IF9lZ2xf
cmVsZWFzZTsKKysgICAgY3R4LT5iYXNlLm1ha2VfY3VycmVudCA9IF9lZ2xfbWFrZV9jdXJyZW50
OworKyAgICBjdHgtPmJhc2Uuc3dhcF9idWZmZXJzID0gX2VnbF9zd2FwX2J1ZmZlcnM7CisrICAg
IGN0eC0+YmFzZS5kZXN0cm95ID0gX2VnbF9kZXN0cm95OworKworKyAgICAvKiBXZSBhcmUgYWJv
dXQgdGhlIGNoYW5nZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBFR0wsIHNvIHdlIHNob3VsZAorKyAg
ICAgKiBxdWVyeSB0aGUgcHJlLWV4aXN0aW5nIHN1cmZhY2Ugbm93IGluc3RlYWQgb2YgbGF0ZXIu
ICovCisrICAgIF9lZ2xfcXVlcnlfY3VycmVudF9zdGF0ZSAoY3R4KTsKKysKKysJaWYgKCFlZ2xN
YWtlQ3VycmVudCAoZHB5LCBzdXJmYWNlLCBzdXJmYWNlLCBlZ2wpKSB7CisrCSAgICBmcmVlIChj
dHgpOworKwkgICAgcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoQ0FJ
Uk9fU1RBVFVTX05PX01FTU9SWSk7CisrCX0KKysKKysgICAgc3RhdHVzID0gX2NhaXJvX2dsX2Rp
c3BhdGNoX2luaXQgKCZjdHgtPmJhc2UuZGlzcGF0Y2gsIGVnbEdldFByb2NBZGRyZXNzKTsKKysg
ICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisrCWZyZWUgKGN0eCk7CisrCXJldHVybiBfY2Fp
cm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisrICAgIH0KKysKKysgICAg
c3RhdHVzID0gX2NhaXJvX2dsX2NvbnRleHRfaW5pdCAoJmN0eC0+YmFzZSk7CisrICAgIGlmICh1
bmxpa2VseSAoc3RhdHVzKSkgeworIAlmcmVlIChjdHgpOworIAlyZXR1cm4gX2NhaXJvX2dsX2Nv
bnRleHRfY3JlYXRlX2luX2Vycm9yIChzdGF0dXMpOworICAgICB9CitkaWZmIC0tZ2l0IGEvc3Jj
L2NhaXJvLWdsLmggYi9zcmMvY2Fpcm8tZ2wuaAoraW5kZXggOWZkNzYwOC4uYTk0ZjU4MSAxMDA2
NDQKKy0tLSBhL3NyYy9jYWlyby1nbC5oCisrKysgYi9zcmMvY2Fpcm8tZ2wuaAorQEAgLTEzMiw2
ICsxMzIsOSBAQCBjYWlyb19nbF9zdXJmYWNlX2NyZWF0ZV9mb3JfZGMgKGNhaXJvX2RldmljZV90
CQkqZGV2aWNlLAorIGNhaXJvX3B1YmxpYyBjYWlyb19kZXZpY2VfdCAqCisgY2Fpcm9fZWdsX2Rl
dmljZV9jcmVhdGUgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCk7CisgCisrY2Fpcm9f
cHVibGljIGNhaXJvX2RldmljZV90ICoKKytjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9mb3JfZWds
X3N1cmZhY2UgKEVHTERpc3BsYXkgZHB5LCBFR0xDb250ZXh0IGVnbCwgRUdMU3VyZmFjZSBzdXJm
YWNlKTsKKysKKyBjYWlyb19wdWJsaWMgY2Fpcm9fc3VyZmFjZV90ICoKKyBjYWlyb19nbF9zdXJm
YWNlX2NyZWF0ZV9mb3JfZWdsIChjYWlyb19kZXZpY2VfdAkqZGV2aWNlLAorIAkJCQkgRUdMU3Vy
ZmFjZQkgZWdsLApkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTEx
LXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3BhY2UtYmV0d2Vl
bi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi5iNGUwYTU0MWRiYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9w
YXRjaGVzL2ZvbnRjb25maWctQy0xMS1yZXF1aXJlcy1hLXNwYWNlLWJldHdlZW4tbGl0ZXJhbC1h
bmQtaWRlbnRpZmllci5wYXRjaApAQCAtMCwwICsxLDMwIEBACitGcm9tIDcwNjlkNzE3ZTk4MmFk
Y2Y4ZTFkMzAwY2JkMTBlZWM2MzIyYTY1YzkgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9t
OiBBa2lyYSBUQUdPSCA8YWtpcmFAdGFnb2gub3JnPgorRGF0ZTogU3VuLCAyMiBBcHIgMjAxMiAy
MTo0MDo0NCArMDkwMAorU3ViamVjdDogW1BBVENIXSBDKysxMSByZXF1aXJlcyBhIHNwYWNlIGJl
dHdlZW4gbGl0ZXJhbCBhbmQgaWRlbnRpZmllcgorCitSZXBvcnRlZCBieSBCdWdhbmluaQorLS0t
CisgZm9udGNvbmZpZy9mb250Y29uZmlnLmggfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAz
IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9mb250Y29uZmln
L2ZvbnRjb25maWcuaCBiL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oCitpbmRleCAwZTJjYTUwLi5i
MjdjY2I1IDEwMDY0NAorLS0tIGEvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKKysrKyBiL2ZvbnRj
b25maWcvZm9udGNvbmZpZy5oCitAQCAtMTEyLDkgKzExMiw5IEBAIHR5cGVkZWYgaW50CQlGY0Jv
b2w7CisgI2RlZmluZSBGQ19ERUNPUkFUSVZFCSAgICAiZGVjb3JhdGl2ZSIJLyogQm9vbCAtIHRy
dWUgaWYgc3R5bGUgaXMgYSBkZWNvcmF0aXZlIHZhcmlhbnQgKi8KKyAjZGVmaW5lIEZDX0xDRF9G
SUxURVIJICAgICJsY2RmaWx0ZXIiCQkvKiBJbnQgKi8KKyAKKy0jZGVmaW5lIEZDX0NBQ0hFX1NV
RkZJWAkJICAgICIuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX0RJUl9DQUNI
RV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIkZDX0NBQ0hFX1ZFUlNJT04KKy0jZGVmaW5lIEZDX1VT
RVJfQ0FDSEVfRklMRQkgICAgIi5mb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgorKyNkZWZp
bmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVm
aW5lIEZDX0RJUl9DQUNIRV9GSUxFCSAgICAiZm9udHMuY2FjaGUtIiBGQ19DQUNIRV9WRVJTSU9O
CisrI2RlZmluZSBGQ19VU0VSX0NBQ0hFX0ZJTEUJICAgICIuZm9udHMuY2FjaGUtIiBGQ19DQUNI
RV9WRVJTSU9OCisgCisgLyogQWRqdXN0IG91dGxpbmUgcmFzdGVyaXplciAqLworICNkZWZpbmUg
RkNfQ0hBUl9XSURUSAkgICAgImNoYXJ3aWR0aCIJLyogSW50ICovCistLSAKKzEuOC4zLjIKKwpk
aWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1m
b250LWhlaWdodC1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlwZTYtMi40LjEx
LXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMGZmZTc2YjRlZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUv
cGF0Y2hlcy9mcmVldHlwZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaApA
QCAtMCwwICsxLDM5IEBACitGcm9tIGUwNDY5MzcyYmUzODcwYTVhZDYwYjJjNDU4NmU5YzI4MTM1
N2JkMjggTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiBXZXJuZXIgTGVtYmVyZyA8d2xA
Z251Lm9yZz4KK0RhdGU6IFR1ZSwgMjIgSmFuIDIwMTMgMTA6MDc6MDcgKzAwMDAKK1N1YmplY3Q6
IFt0cnVldHlwZV0gRml4IGZvbnQgaGVpZ2h0LgorCisqIHNyYy90cnVldHlwZS90dG9ianMuYyAo
dHRfc2l6ZV9yZXNldCk6IFRoZSBXaW5kb3dzIHJlbmRlcmluZworZW5naW5lIHVzZXMgcm91bmRl
ZCB2YWx1ZXMgb2YgdGhlIGFzY2VuZGVyIGFuZCBkZXNjZW5kZXIgdG8gY29tcHV0ZQordGhlIFRy
dWVUeXBlIGZvbnQgaGVpZ2h0LgorLS0tCitkaWZmIC0tZ2l0IGEvc3JjL3RydWV0eXBlL3R0b2Jq
cy5jIGIvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCitpbmRleCBjNjFiMjE4Li41OTBiNjZjIDEwMDY0
NAorLS0tIGEvc3JjL3RydWV0eXBlL3R0b2Jqcy5jCisrKysgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpz
LmMKK0BAIC00LDcgKzQsNyBAQAorIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisgLyogICAgT2JqZWN0
cyBtYW5hZ2VyIChib2R5KS4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKi8KKyAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworLS8qICBDb3B5cmlnaHQgMTk5Ni0yMDEy
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCisr
LyogIENvcHlyaWdodCAxOTk2LTIwMTMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgRGF2aWQgVHVybmVyLCBSb2JlcnQgV2lsaGVsbSwg
YW5kIFdlcm5lciBMZW1iZXJnLiAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICovCisgLyogIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBGcmVlVHlwZSBwcm9qZWN0
LCBhbmQgbWF5IG9ubHkgYmUgdXNlZCwgICAgICAgKi8KK0BAIC0xMTc3LDExICsxMTc3LDEyIEBA
CisgICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5hc2NlbmRlciwg
bWV0cmljcy0+eV9zY2FsZSApICk7CisgICAgICAgbWV0cmljcy0+ZGVzY2VuZGVyID0KKyAgICAg
ICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmRlc2NlbmRlciwgbWV0cmlj
cy0+eV9zY2FsZSApICk7CistICAgICAgbWV0cmljcy0+aGVpZ2h0ID0KKy0gICAgICAgIEZUX1BJ
WF9ST1VORCggRlRfTXVsRml4KCBmYWNlLT5yb290LmhlaWdodCwgbWV0cmljcy0+eV9zY2FsZSAp
ICk7CisgICAgICAgbWV0cmljcy0+bWF4X2FkdmFuY2UgPQorICAgICAgICAgRlRfUElYX1JPVU5E
KCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QubWF4X2FkdmFuY2Vfd2lkdGgsCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbWV0cmljcy0+eF9zY2FsZSApICk7CisrCisrICAgICAgLyog
dGhlIGhlaWdodCBpcyBkZXJpdmVkIGZyb20gcm91bmRlZCB2YWx1ZXMgKi8KKysgICAgICBtZXRy
aWNzLT5oZWlnaHQgPSBtZXRyaWNzLT5hc2NlbmRlciAtIG1ldHJpY3MtPmRlc2NlbmRlcjsKKyAg
ICAgfQorIAorICAgICAvKiBjb21wdXRlIG5ldyB0cmFuc2Zvcm1hdGlvbiAqLworLS0KK2NnaXQg
djAuOS4wLjIKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dkYXRlLXN1cHByZXNzLXN0
cmluZy1mb3JtYXQtbGl0ZXJhbC13YXJuaW5nLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2Rh
dGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2gKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjkwY2I5NTFhMTljCi0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRl
cmFsLXdhcm5pbmcucGF0Y2gKQEAgLTAsMCArMSwyOSBAQAorRnJvbSAzYTdlZmQ1OThkMzkzNjZj
MmM5ZGUwZGVmMmZkZmIzNWU1ZTlmMmExIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTog
Y295cHUgPGNveXB1QHNkZi5vcmc+CitEYXRlOiBNb24sIDggRmViIDIwMTYgMDA6MDY6MDYgKzAy
MDAKK1N1YmplY3Q6IFtQQVRDSCAxLzFdIGdkYXRlOiBTdXBwcmVzcyBzdHJpbmcgZm9ybWF0IGxp
dGVyYWwgd2FybmluZworCitOZXdlciB2ZXJzaW9ucyBvZiBHQ0MgZW1pdCBhbiBlcnJvciBoZXJl
LCBidXQgd2Uga25vdyBpdCdzIHNhZmUuCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy83NjE1
NTAKKy0tLQorIGdsaWIvZ2RhdGUuYyB8IDMgKysrCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0
aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ2xpYi9nZGF0ZS5jIGIvZ2xpYi9nZGF0ZS5jCitpbmRl
eCA0YWVjZTAyLi5jZGM3MzVjIDEwMDY0NAorLS0tIGEvZ2xpYi9nZGF0ZS5jCisrKysgYi9nbGli
L2dkYXRlLmMKK0BAIC0yNDk0LDcgKzI0OTQsMTAgQEAgZ19kYXRlX3N0cmZ0aW1lIChnY2hhciAg
ICAgICAqcywKKyAgICAgICAgKiByZWNvZ25pemUgd2hldGhlciBzdHJmdGltZSBhY3R1YWxseSBm
YWlsZWQgb3IganVzdCByZXR1cm5lZCAiIi4KKyAgICAgICAgKi8KKyAgICAgICB0bXBidWZbMF0g
PSAnXDEnOworKyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcHVzaAorKyAgICAgICNwcmFn
bWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVdmb3JtYXQtbm9ubGl0ZXJhbCIKKyAgICAgICB0
bXBsZW4gPSBzdHJmdGltZSAodG1wYnVmLCB0bXBidWZzaXplLCBsb2NhbGVfZm9ybWF0LCAmdG0p
OworKyAgICAgICNwcmFnbWEgR0NDIGRpYWdub3N0aWMgcG9wCisgCisgICAgICAgaWYgKHRtcGxl
biA9PSAwICYmIHRtcGJ1ZlswXSAhPSAnXDAnKQorICAgICAgICAgeworLS0gCisyLjcuMAorCmRp
ZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoIGIvVG9v
bHMvd3BlL3BhdGNoZXMvZ2xpYi13YXJuaW5nLWZpeC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uOGZhZjRkMTFmMmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNoCkBAIC0wLDAgKzEsMzQgQEAKK0Zy
b20gOWY5MGVlNWVlY2NkNDdmMzljN2EwM2RjZDc4NmIxMjVhMTljMTk1ZCBNb24gU2VwIDE3IDAw
OjAwOjAwIDIwMDEKK0Zyb206IE1pY2hhZWwgQ2F0YW56YXJvIDxtY2F0YW56YXJvQGdub21lLm9y
Zz4KK0RhdGU6IFNhdCwgMTMgSnVuIDIwMTUgMjI6NTI6MzMgLTA1MDAKK1N1YmplY3Q6IFtQQVRD
SF0gZ2VubWFyc2hhbDogc2lsZW5jZSByZWdpc3RlciBzdG9yYWdlIGNsYXNzIHdhcm5pbmdzCisK
K1VzaW5nIHRoZSByZWdpc3RlciBrZXl3b3JkIHRyaWdnZXJzIHdhcm5pbmdzIG9uIG5vdGV3b3J0
aHkgY29tcGlsZXJzCisoY2xhbmcpLCBzaW5jZSBpdCdzIGRlcHJlY2F0ZWQgaW4gQysrIGFuZCBh
dCBkYW5nZXIgb2YgYmVpbmcgcmVtb3ZlZAorZnJvbSB0aGUgbGFuZ3VhZ2UuIFRoZXJlIGlzIG5v
IHJlYXNvbiB0byB1c2UgaXQgc2luY2UgaXQgaXNuJ3QgMTk4MAorYW55bW9yZS4KKworaHR0cHM6
Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1MDkxOAorLS0tCisgZ29iamVj
dC9nbGliLWdlbm1hcnNoYWwuYyB8IDYgKysrLS0tCisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0
aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dvYmplY3QvZ2xpYi1nZW5t
YXJzaGFsLmMgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitpbmRleCBiZTQxNTFhLi5jYTc4
YTZmIDEwMDY0NAorLS0tIGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYworKysrIGIvZ29iamVj
dC9nbGliLWdlbm1hcnNoYWwuYworQEAgLTQxMiw5ICs0MTIsOSBAQCBnZW5lcmF0ZV9tYXJzaGFs
IChjb25zdCBnY2hhciAqc2lnbmFtZSwKKyAgICAgICBnX2ZwcmludGYgKGZvdXQsICIlcyVzIGRh
dGEyKTtcbiIsIGluZGVudCAoaW5kKSwgcGFkICgiZ3BvaW50ZXIiKSk7CisgCisgICAgICAgLyog
Y2ZpbGUgbWFyc2hhbCB2YXJpYWJsZXMgKi8KKy0gICAgICBnX2ZwcmludGYgKGZvdXQsICIgIHJl
Z2lzdGVyIEdNYXJzaGFsRnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworLSAgICAgIGdf
ZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBj
bG9zdXJlO1xuIik7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBncG9pbnRl
ciBkYXRhMSwgZGF0YTI7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIEdNYXJzaGFs
RnVuY18lcyBjYWxsYmFjaztcbiIsIHNpZ25hbWUpOworKyAgICAgIGdfZnByaW50ZiAoZm91dCwg
IiAgR0NDbG9zdXJlICpjYyA9IChHQ0Nsb3N1cmUqKSBjbG9zdXJlO1xuIik7CisrICAgICAgZ19m
cHJpbnRmIChmb3V0LCAiICBncG9pbnRlciBkYXRhMSwgZGF0YTI7XG4iKTsKKyAgICAgICBpZiAo
c2lnLT5yYXJnLT5zZXR0ZXIpCisgCWdfZnByaW50ZiAoZm91dCwgIiAgJXMgdl9yZXR1cm47XG4i
LCBzaWctPnJhcmctPmN0eXBlKTsKKyAKKy0tIAorMi40LjIKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAw
MS1kdGxzLXBvcnQtdG8tT3BlblNTTC0xLjEuMC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ZDEwNjRlZDVlOQotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9y
dC10by1PcGVuU1NMLTEuMS4wLnBhdGNoCkBAIC0wLDAgKzEsMjM2IEBACitGcm9tIGU5Mzg5MzMx
NjdjNDk0Y2RjYTQ0MzMzNGY2NThiMDJhMDNjNDQ4NmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAx
CitGcm9tOiBEYWlraSBVZW5vIDxkdWVub0ByZWRoYXQuY29tPgorRGF0ZTogV2VkLCAyNiBPY3Qg
MjAxNiAxNDo1MTowMSArMDIwMAorU3ViamVjdDogW1BBVENIXSBkdGxzOiBwb3J0IHRvIE9wZW5T
U0wgMS4xLjAKKworQ2hhbmdlcyBhcmU6CisKKy0gVXNlIHRoZSB3cmFwcGVyIGZ1bmN0aW9ucyB0
byBhY2Nlc3Mgb3BhcXVlIGRhdGEgdHlwZXMuICBUbyBwcmVzZXJ2ZQorICBiYWNrd2FyZCBjb21w
YXRpYmlsaXR5LCBkZWZpbmUgZmFsbGJhY2sgZGVmaW5pdGlvbnMKKworLSBSZW1vdmUgdGhlIHVz
ZSBvZiBpZGlvbSAicHF1ZXVlX3NpemUoc3NsLT5kMS0+c2VudF9tZXNzYWdlcykiLCBzaW5jZQor
ICB0aGVyZSBpcyBubyByZXBsYWNlbWVudAorCistIFVzZSBSU0FfZ2VuZXJhdGVfa2V5X2V4IGlu
c3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQgUlNBX2dlbmVyYXRlX2tleQorCitodHRwczovL2J1Z3pp
bGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzczNTQwCistLS0KKyBleHQvZHRscy9nc3Rk
dGxzY2VydGlmaWNhdGUuYyB8IDE1ICsrKysrKysrCisgZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rp
b24uYyAgfCA4NyArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tCisg
MiBmaWxlcyBjaGFuZ2VkLCA5MyBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQorCitkaWZm
IC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxz
Y2VydGlmaWNhdGUuYworaW5kZXggOTVmYmI4My4uYzFjOTYwMiAxMDA2NDQKKy0tLSBhL2V4dC9k
dGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisrKysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNh
dGUuYworQEAgLTE5OSw3ICsxOTksMjIgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZp
Y2F0ZSAqIHNlbGYpCisgICAgIHByaXYtPnByaXZhdGVfa2V5ID0gTlVMTDsKKyAgICAgcmV0dXJu
OworICAgfQorKworKyAgLyogWFhYOiBSU0FfZ2VuZXJhdGVfa2V5IGlzIGFjdHVhbGx5IGRlcHJl
Y2F0ZWQgaW4gMC45LjggKi8KKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8IDB4MTAxMDAw
MDFMCisgICByc2EgPSBSU0FfZ2VuZXJhdGVfa2V5ICgyMDQ4LCBSU0FfRjQsIE5VTEwsIE5VTEwp
OworKyNlbHNlCisrICByc2EgPSBSU0FfbmV3ICgpOworKyAgaWYgKHJzYSAhPSBOVUxMKSB7Cisr
ICAgIEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKysgICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRf
d29yZCAoZSwgUlNBX0Y0KQorKyAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAy
MDQ4LCBlLCBOVUxMKSkgeworKyAgICAgIFJTQV9mcmVlIChyc2EpOworKyAgICAgIHJzYSA9IE5V
TEw7CisrICAgIH0KKysgICAgQk5fZnJlZSAoZSk7CisrICB9CisrI2VuZGlmCisgCisgICBpZiAo
IXJzYSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsICJmYWlsZWQgdG8gZ2VuZXJh
dGUgUlNBIik7CitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYyBiL2V4
dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK2luZGV4IDM2ZjZkNjMuLjcyOGY1YTcgMTAwNjQ0
CistLS0gYS9leHQvZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jCisrKysgYi9leHQvZHRscy9nc3Rk
dGxzY29ubmVjdGlvbi5jCitAQCAtNDIsNiArNDIsOCBAQAorICNpbmNsdWRlIDxvcGVuc3NsL2Vy
ci5oPgorICNpbmNsdWRlIDxvcGVuc3NsL3NzbC5oPgorIAorKyNpbmNsdWRlIDxzdHJpbmcuaD4K
KysKKyBHU1RfREVCVUdfQ0FURUdPUllfU1RBVElDIChnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVn
KTsKKyAjZGVmaW5lIEdTVF9DQVRfREVGQVVMVCBnc3RfZHRsc19jb25uZWN0aW9uX2RlYnVnCisg
R19ERUZJTkVfVFlQRV9XSVRIX0NPREUgKEdzdER0bHNDb25uZWN0aW9uLCBnc3RfZHRsc19jb25u
ZWN0aW9uLCBHX1RZUEVfT0JKRUNULAorQEAgLTIxNiw2ICsyMTgsMzggQEAgZ3N0X2R0bHNfY29u
bmVjdGlvbl9maW5hbGl6ZSAoR09iamVjdCAqIGdvYmplY3QpCisgICBHX09CSkVDVF9DTEFTUyAo
Z3N0X2R0bHNfY29ubmVjdGlvbl9wYXJlbnRfY2xhc3MpLT5maW5hbGl6ZSAoZ29iamVjdCk7Cisg
fQorIAorKyNpZiBPUEVOU1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKytzdGF0aWMg
dm9pZAorK0JJT19zZXRfZGF0YSAoQklPICogYmlvLCB2b2lkICpwdHIpCisreworKyAgYmlvLT5w
dHIgPSBwdHI7CisrfQorKworK3N0YXRpYyB2b2lkICoKKytCSU9fZ2V0X2RhdGEgKEJJTyAqIGJp
bykKKyt7CisrICByZXR1cm4gYmlvLT5wdHI7CisrfQorKworK3N0YXRpYyB2b2lkCisrQklPX3Nl
dF9zaHV0ZG93biAoQklPICogYmlvLCBpbnQgc2h1dGRvd24pCisreworKyAgYmlvLT5zaHV0ZG93
biA9IHNodXRkb3duOworK30KKysKKytzdGF0aWMgdm9pZAorK0JJT19zZXRfaW5pdCAoQklPICog
YmlvLCBpbnQgaW5pdCkKKyt7CisrICBiaW8tPmluaXQgPSBpbml0OworK30KKysKKytzdGF0aWMg
WDUwOSAqCisrWDUwOV9TVE9SRV9DVFhfZ2V0MF9jZXJ0IChYNTA5X1NUT1JFX0NUWCAqIGN0eCkK
Kyt7CisrICByZXR1cm4gY3R4LT5jZXJ0OworK30KKysjZW5kaWYKKysKKyBzdGF0aWMgdm9pZAor
IGdzdF9kdGxzX2Nvbm5lY3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWlu
dCBwcm9wX2lkLAorICAgICBjb25zdCBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHBzcGVj
KQorQEAgLTIzOSw3ICsyNzMsNyBAQCBnc3RfZHRsc19jb25uZWN0aW9uX3NldF9wcm9wZXJ0eSAo
R09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKyAgICAgICBwcml2LT5iaW8gPSBCSU9f
bmV3IChCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICgpKTsKKyAgICAgICBnX3JldHVybl9pZl9m
YWlsIChwcml2LT5iaW8pOworIAorLSAgICAgIHByaXYtPmJpby0+cHRyID0gc2VsZjsKKysgICAg
ICBCSU9fc2V0X2RhdGEgKHByaXYtPmJpbywgc2VsZik7CisgICAgICAgU1NMX3NldF9iaW8gKHBy
aXYtPnNzbCwgcHJpdi0+YmlvLCBwcml2LT5iaW8pOworIAorICAgICAgIFNTTF9zZXRfdmVyaWZ5
IChwcml2LT5zc2wsCitAQCAtNTczLDYgKzYwNyw3IEBAIGxvZ19zdGF0ZSAoR3N0RHRsc0Nvbm5l
Y3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgIHN0YXRlcyB8PSAoISAhU1NMX3dh
bnRfd3JpdGUgKHByaXYtPnNzbCkgPDwgMjApOworICAgc3RhdGVzIHw9ICghICFTU0xfd2FudF9y
ZWFkIChwcml2LT5zc2wpIDw8IDI0KTsKKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8
IDB4MTAxMDAwMDFMCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIiVzOiByb2xlPSVzIGJ1Zj0o
JWQsJXA6JWQvJWQpICV4fCV4ICVzIiwKKyAgICAgICBzdHIsCisgICAgICAgcHJpdi0+aXNfY2xp
ZW50ID8gImNsaWVudCIgOiAic2VydmVyIiwKK0BAIC01ODEsNiArNjE2LDE1IEBAIGxvZ19zdGF0
ZSAoR3N0RHRsc0Nvbm5lY3Rpb24gKiBzZWxmLCBjb25zdCBnY2hhciAqIHN0cikKKyAgICAgICBw
cml2LT5iaW9fYnVmZmVyX29mZnNldCwKKyAgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKyAg
ICAgICBzdGF0ZXMsIFNTTF9nZXRfc3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdf
bG9uZyAocHJpdi0+c3NsKSk7CisrI2Vsc2UKKysgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiJXM6
IHJvbGU9JXMgYnVmPSglcDolZC8lZCkgJXh8JXggJXMiLAorKyAgICAgIHN0ciwKKysgICAgICBw
cml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorKyAgICAgIHByaXYtPmJpb19i
dWZmZXIsCisrICAgICAgcHJpdi0+YmlvX2J1ZmZlcl9vZmZzZXQsCisrICAgICAgcHJpdi0+Ymlv
X2J1ZmZlcl9sZW4sCisrICAgICAgc3RhdGVzLCBTU0xfZ2V0X3N0YXRlIChwcml2LT5zc2wpLCBT
U0xfc3RhdGVfc3RyaW5nX2xvbmcgKHByaXYtPnNzbCkpOworKyNlbmRpZgorIH0KKyAKKyBzdGF0
aWMgdm9pZAorQEAgLTczNyw3ICs3ODEsNyBAQCBvcGVuc3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50
IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4NTA5X2N0eCkKKyAgIHNlbGYgPSBTU0xf
Z2V0X2V4X2RhdGEgKHNzbCwgY29ubmVjdGlvbl9leF9pbmRleCk7CisgICBnX3JldHVybl92YWxf
aWZfZmFpbCAoR1NUX0lTX0RUTFNfQ09OTkVDVElPTiAoc2VsZiksIEZBTFNFKTsKKyAKKy0gIHBl
bSA9IF9nc3RfZHRsc194NTA5X3RvX3BlbSAoeDUwOV9jdHgtPmNlcnQpOworKyAgcGVtID0gX2dz
dF9kdGxzX3g1MDlfdG9fcGVtIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSk7
CisgCisgICBpZiAoIXBlbSkgeworICAgICBHU1RfV0FSTklOR19PQkpFQ1QgKHNlbGYsCitAQCAt
NzQ5LDcgKzc5Myw4IEBAIG9wZW5zc2xfdmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29r
LCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlfY3R4KQorICAgICAgIGdpbnQgbGVuOworIAorICAgICAg
IGxlbiA9CistICAgICAgICAgIFg1MDlfTkFNRV9wcmludF9leCAoYmlvLCBYNTA5X2dldF9zdWJq
ZWN0X25hbWUgKHg1MDlfY3R4LT5jZXJ0KSwgMSwKKysgICAgICAgICAgWDUwOV9OQU1FX3ByaW50
X2V4IChiaW8sCisrICAgICAgICAgIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoWDUwOV9TVE9SRV9D
VFhfZ2V0MF9jZXJ0ICh4NTA5X2N0eCkpLCAxLAorICAgICAgICAgICBYTl9GTEFHX01VTFRJTElO
RSk7CisgICAgICAgQklPX3JlYWQgKGJpbywgYnVmZmVyLCBsZW4pOworICAgICAgIGJ1ZmZlclts
ZW5dID0gJ1wwJzsKK0BAIC03NzcsNiArODIyLDcgQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJhY2sg
KGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICMjIyMj
IyMjICAjIyMjICAjIyMjIyMjCisgKi8KKyAKKysjaWYgT1BFTlNTTF9WRVJTSU9OX05VTUJFUiA8
IDB4MTAxMDAwMDFMCisgc3RhdGljIEJJT19NRVRIT0QgY3VzdG9tX2Jpb19tZXRob2RzID0gewor
ICAgQklPX1RZUEVfQklPLAorICAgInN0cmVhbSIsCitAQCAtNzk1LDExICs4NDEsMzQgQEAgQklP
X3NfZ3N0X2R0bHNfY29ubmVjdGlvbiAodm9pZCkKKyB7CisgICByZXR1cm4gJmN1c3RvbV9iaW9f
bWV0aG9kczsKKyB9CisrI2Vsc2UKKytzdGF0aWMgQklPX01FVEhPRCAqY3VzdG9tX2Jpb19tZXRo
b2RzOworKworK3N0YXRpYyBCSU9fTUVUSE9EICoKKytCSU9fc19nc3RfZHRsc19jb25uZWN0aW9u
ICh2b2lkKQorK3sKKysgIGlmIChjdXN0b21fYmlvX21ldGhvZHMgIT0gTlVMTCkKKysgICAgcmV0
dXJuIGN1c3RvbV9iaW9fbWV0aG9kczsKKysKKysgIGN1c3RvbV9iaW9fbWV0aG9kcyA9IEJJT19t
ZXRoX25ldyAoQklPX1RZUEVfQklPLCAic3RyZWFtIik7CisrICBpZiAoY3VzdG9tX2Jpb19tZXRo
b2RzID09IE5VTEwKKysgICAgICB8fCAhQklPX21ldGhfc2V0X3dyaXRlIChjdXN0b21fYmlvX21l
dGhvZHMsIGJpb19tZXRob2Rfd3JpdGUpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9yZWFkIChj
dXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfcmVhZCkKKysgICAgICB8fCAhQklPX21ldGhf
c2V0X2N0cmwgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9jdHJsKQorKyAgICAgIHx8
ICFCSU9fbWV0aF9zZXRfY3JlYXRlIChjdXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfbmV3
KQorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfZGVzdHJveSAoY3VzdG9tX2Jpb19tZXRob2RzLCBi
aW9fbWV0aG9kX2ZyZWUpKSB7CisrICAgIEJJT19tZXRoX2ZyZWUgKGN1c3RvbV9iaW9fbWV0aG9k
cyk7CisrICAgIHJldHVybiBOVUxMOworKyAgfQorKworKyAgcmV0dXJuIGN1c3RvbV9iaW9fbWV0
aG9kczsKKyt9CisrI2VuZGlmCisgCisgc3RhdGljIGludAorIGJpb19tZXRob2Rfd3JpdGUgKEJJ
TyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nvbm5l
Y3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3REdGxz
Q29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAoYmlv
KSk7CisgCisgICBHU1RfTE9HX09CSkVDVCAoc2VsZiwgIkJJTzogd3JpdGluZyAlZCIsIHNpemUp
OworIAorQEAgLTgyNCw3ICs4OTMsNyBAQCBiaW9fbWV0aG9kX3dyaXRlIChCSU8gKiBiaW8sIGNv
bnN0IGNoYXIgKmRhdGEsIGludCBzaXplKQorIHN0YXRpYyBpbnQKKyBiaW9fbWV0aG9kX3JlYWQg
KEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50IHNpemUpCisgeworLSAgR3N0RHRsc0Nv
bm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7CisrICBHc3RE
dGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRfZGF0YSAo
YmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5wcml2Owor
ICAgZ3VpbnQgaW50ZXJuYWxfc2l6ZTsKKyAgIGdpbnQgY29weV9zaXplOworQEAgLTg2OCw3ICs5
MzcsNyBAQCBiaW9fbWV0aG9kX3JlYWQgKEJJTyAqIGJpbywgY2hhciAqb3V0X2J1ZmZlciwgaW50
IHNpemUpCisgc3RhdGljIGxvbmcKKyBiaW9fbWV0aG9kX2N0cmwgKEJJTyAqIGJpbywgaW50IGNt
ZCwgbG9uZyBhcmcxLCB2b2lkICphcmcyKQorIHsKKy0gIEdzdER0bHNDb25uZWN0aW9uICpzZWxm
ID0gR1NUX0RUTFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpOworKyAgR3N0RHRsc0Nvbm5lY3Rpb24g
KnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpOworICAgR3N0
RHRsc0Nvbm5lY3Rpb25Qcml2YXRlICpwcml2ID0gc2VsZi0+cHJpdjsKKyAKKyAgIHN3aXRjaCAo
Y21kKSB7CitAQCAtOTE2LDggKzk4NSw4IEBAIGJpb19tZXRob2RfbmV3IChCSU8gKiBiaW8pCisg
eworICAgR1NUX0xPR19PQkpFQ1QgKE5VTEwsICJCSU86IG5ldyIpOworIAorLSAgYmlvLT5zaHV0
ZG93biA9IDA7CistICBiaW8tPmluaXQgPSAxOworKyAgQklPX3NldF9zaHV0ZG93biAoYmlvLCAw
KTsKKysgIEJJT19zZXRfaW5pdCAoYmlvLCAxKTsKKyAKKyAgIHJldHVybiAxOworIH0KK0BAIC05
MzAsNiArOTk5LDYgQEAgYmlvX21ldGhvZF9mcmVlIChCSU8gKiBiaW8pCisgICAgIHJldHVybiAw
OworICAgfQorIAorLSAgR1NUX0xPR19PQkpFQ1QgKEdTVF9EVExTX0NPTk5FQ1RJT04gKGJpby0+
cHRyKSwgIkJJTyBmcmVlIik7CisrICBHU1RfTE9HX09CSkVDVCAoR1NUX0RUTFNfQ09OTkVDVElP
TiAoQklPX2dldF9kYXRhIChiaW8pKSwgIkJJTyBmcmVlIik7CisgICByZXR1cm4gMDsKKyB9Cist
LSAKKzIuMTAuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1i
YWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0
ZV9rLnBhdGNoIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDItZHRsc2Nl
cnRpZmljYXRlLUZpeC1lcnJvci1jaGVja2luZy1pbi1SU0FfZ2VuZXJhdGVfay5wYXRjaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYzY2ODc3MzcwYzYKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1iYWQtMDAwMi1kdGxzY2Vy
dGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9nZW5lcmF0ZV9rLnBhdGNoCkBAIC0w
LDAgKzEsMzcgQEAKK0Zyb20gM2EwNjkxOTNlMjUzNjRlYmRhY2FjODZmNGIwMzAyMmMxNTFlYTI5
YyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBE
cj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBjZW50cmljdWxhci5jb20+CitEYXRlOiBNb24sIDE0IE5v
diAyMDE2IDExOjMyOjE3ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIGR0bHNjZXJ0aWZpY2F0ZTog
Rml4IGVycm9yIGNoZWNraW5nIGluIFJTQV9nZW5lcmF0ZV9rZXlfZXgoKQorIHVzYWdlCisKK1dh
cyBicm9rZW4gZHVyaW5nIHRoZSBwb3J0IGZvciBPcGVuU1NMIDEuMS4KKworaHR0cHM6Ly9idWd6
aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc3NDMyOAorLS0tCisgZXh0L2R0bHMvZ3N0
ZHRsc2NlcnRpZmljYXRlLmMgfCA3ICsrKystLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBpbnNlcnRp
b25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvZXh0L2R0bHMvZ3N0ZHRsc2Nl
cnRpZmljYXRlLmMgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworaW5kZXggYzFjOTYw
Mi4uYzJkOWJiMiAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCisr
KysgYi9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYworQEAgLTIwNywxMiArMjA3LDEzIEBA
IGluaXRfZ2VuZXJhdGVkIChHc3REdGxzQ2VydGlmaWNhdGUgKiBzZWxmKQorICAgcnNhID0gUlNB
X25ldyAoKTsKKyAgIGlmIChyc2EgIT0gTlVMTCkgeworICAgICBCSUdOVU0gKmUgPSBCTl9uZXcg
KCk7CistICAgIGlmIChlICE9IE5VTEwgJiYgQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKy0gICAg
ICAgICYmIFJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVMTCkpIHsKKysgICAg
aWYgKGUgPT0gTlVMTCB8fCAhQk5fc2V0X3dvcmQgKGUsIFJTQV9GNCkKKysgICAgICAgIHx8ICFS
U0FfZ2VuZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisgICAgICAgUlNBX2Zy
ZWUgKHJzYSk7CisgICAgICAgcnNhID0gTlVMTDsKKyAgICAgfQorLSAgICBCTl9mcmVlIChlKTsK
KysgICAgaWYgKGUpCisrICAgICAgQk5fZnJlZSAoZSk7CisgICB9CisgI2VuZGlmCisgCistLSAK
KzIuMTAuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29k
LVJldmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0
Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJldmVydC1xdGRlbXV4LWV4
cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjNhNjBkYjQ3NzJiCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtZ29vZC1SZXZlcnQtcXRkZW11eC1leHBvc2Ut
c3RyZWFtcy13aXRoLWZpcnN0LW1vb2YtZm9yLWZyLnBhdGNoCkBAIC0wLDAgKzEsMTMzIEBACitG
cm9tIDFhODFiZDkwZDRhM2U1OWQ2NjY5YTBiYmZhNDU2ZjFlZDRlNWRiNDggTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBYYWJpZXIgUm9kcmlndWV6IENhbHZhciA8Y2FsdmFyaXNAaWdh
bGlhLmNvbT4KK0RhdGU6IFRodSwgNyBBcHIgMjAxNiAxMzo1NzoxNiArMDIwMAorU3ViamVjdDog
W1BBVENIXSBSZXZlcnQgInF0ZGVtdXg6IGV4cG9zZSBzdHJlYW1zIHdpdGggZmlyc3QgbW9vZiBm
b3IKKyBmcmFnbWVudGVkIGZvcm1hdCIKKworVGhpcyByZXZlcnRzIGNvbW1pdCBkOGJiNjY4N2Vh
MjUxNTcwYzMzMTAzODI3OWE0M2Q0NDgxNjdkNmFkLgorLS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4
LmMgfCA1NCArKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSAtCisgMiBmaWxlcyBjaGFuZ2VkLCAxNiBp
bnNlcnRpb25zKCspLCAzOSBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQv
cXRkZW11eC5jIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmMKK2luZGV4IDM5YmUxNjMuLjk2MzZiNGIg
MTAwNjQ0CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguYworKysrIGIvZ3N0L2lzb21wNC9xdGRl
bXV4LmMKK0BAIC02MDksNyArNjA5LDYgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAoR3N0UVREZW11eCAq
IHF0ZGVtdXgpCisgICBxdGRlbXV4LT5zdGF0ZSA9IFFUREVNVVhfU1RBVEVfSU5JVElBTDsKKyAg
IHF0ZGVtdXgtPnB1bGxiYXNlZCA9IEZBTFNFOworICAgcXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0
ID0gRkFMU0U7CistICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgcXRk
ZW11eC0+bmVlZGVkYnl0ZXMgPSAxNjsKKyAgIHF0ZGVtdXgtPnRvZHJvcCA9IDA7CisgICBxdGRl
bXV4LT5hZGFwdGVyID0gZ3N0X2FkYXB0ZXJfbmV3ICgpOworQEAgLTIwNDksNyArMjA0OCw2IEBA
IGdzdF9xdGRlbXV4X3Jlc2V0IChHc3RRVERlbXV4ICogcXRkZW11eCwgZ2Jvb2xlYW4gaGFyZCkK
KyAgICAgZ3N0X2NhcHNfcmVwbGFjZSAoJnF0ZGVtdXgtPm1lZGlhX2NhcHMsIE5VTEwpOworICAg
ICBxdGRlbXV4LT50aW1lc2NhbGUgPSAwOworICAgICBxdGRlbXV4LT5nb3RfbW9vdiA9IEZBTFNF
OworLSAgICBxdGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworICAgfSBlbHNlIGlm
IChxdGRlbXV4LT5tc3NfbW9kZSkgeworICAgICBnc3RfZmxvd19jb21iaW5lcl9yZXNldCAocXRk
ZW11eC0+Zmxvd2NvbWJpbmVyKTsKKyAgICAgZm9yIChuID0gMDsgbiA8IHF0ZGVtdXgtPm5fc3Ry
ZWFtczsgbisrKQorQEAgLTYxMDQsNyArNjEwMiw2IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRh
cHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9vbGVhbiBmb3JjZSkKKyAgICAgICAgICAgICAm
Zm91cmNjKTsKKyAgICAgICAgIGlmIChmb3VyY2MgPT0gRk9VUkNDX21vb3YpIHsKKyAgICAgICAg
ICAgZ2ludCBuOworLSAgICAgICAgICBnYm9vbGVhbiBnb3Rfc2FtcGxlcyA9IEZBTFNFOworIAor
ICAgICAgICAgICAvKiBpbiB1c3VhbCBmcmFnbWVudGVkIHNldHVwIHdlIGNvdWxkIHRyeSB0byBz
Y2FuIGZvciBtb3JlCisgICAgICAgICAgICAqIGFuZCBlbmQgdXAgYXQgdGhlIHRoZSBtb292IChh
ZnRlciBtZGF0KSBhZ2FpbiAqLworQEAgLTYxMzYsMjcgKzYxMzMsMTkgQEAgZ3N0X3F0ZGVtdXhf
cHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAg
ICAgICAgICAgIHF0ZGVtdXhfbm9kZV9kdW1wIChkZW11eCwgZGVtdXgtPm1vb3Zfbm9kZSk7Cisg
ICAgICAgICAgICAgcXRkZW11eF9wYXJzZV90cmVlIChkZW11eCk7CisgICAgICAgICAgICAgcXRk
ZW11eF9wcmVwYXJlX3N0cmVhbXMgKGRlbXV4KTsKKysgICAgICAgICAgICBpZiAoIWRlbXV4LT5n
b3RfbW9vdikKKysgICAgICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsK
KysgICAgICAgICAgICBlbHNlIHsKKyAKKy0gICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVt
dXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJl
YW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKy0gICAgICAgICAgICAgIGdvdF9zYW1wbGVzIHw9IHN0
cmVhbS0+c3RibF9pbmRleCA+PSAwOworLSAgICAgICAgICAgIH0KKy0gICAgICAgICAgICBpZiAo
IWRlbXV4LT5mcmFnbWVudGVkIHx8IGdvdF9zYW1wbGVzKSB7CistICAgICAgICAgICAgICBpZiAo
IWRlbXV4LT5nb3RfbW9vdikgeworLSAgICAgICAgICAgICAgICBxdGRlbXV4X2V4cG9zZV9zdHJl
YW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAgICAgICAgICAgICAgICBm
b3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7CistICAgICAgICAgICAgICAg
ICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNbbl07CistICAgICAgICAg
ICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7Cist
ICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+
bl9zdHJlYW1zOyBuKyspIHsKKysgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFt
ID0gZGVtdXgtPnN0cmVhbXNbbl07CisrCisrICAgICAgICAgICAgICAgIGdzdF9xdGRlbXV4X2Nv
bmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworICAgICAgICAgICAgICAgfQorLSAgICAg
ICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hlY2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsK
Ky0gICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IEZBTFNFOworLSAgICAg
ICAgICAgIH0gZWxzZSB7CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUg
PSBUUlVFOworICAgICAgICAgICAgIH0KKyAKKyAgICAgICAgICAgICBkZW11eC0+Z290X21vb3Yg
PSBUUlVFOworKyAgICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdt
ZW50IChkZW11eCk7CisgCisgICAgICAgICAgICAgLyogZnJhZ21lbnRlZCBzdHJlYW1zIGhlYWRl
cnMgc2hvdWxkbid0IGNvbnRhaW4gZWR0cyBhdG9tcyAqLworICAgICAgICAgICAgIGlmICghZGVt
dXgtPmZyYWdtZW50ZWQpIHsKK0BAIC02MTc1LDcgKzYxNjQsNiBAQCBnc3RfcXRkZW11eF9wcm9j
ZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4gZm9yY2UpCisgICAgICAg
ICAgICAgZ3VpbnQ2NCBkaXN0ID0gMDsKKyAgICAgICAgICAgICBHc3RDbG9ja1RpbWUgcHJldl9w
dHM7CisgICAgICAgICAgICAgZ3VpbnQ2NCBwcmV2X29mZnNldDsKKy0gICAgICAgICAgICBnaW50
IG47CisgCisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJQYXJzaW5nIFtt
b29mXSIpOworIAorQEAgLTYyMDksMjUgKzYxOTcsMTUgQEAgZ3N0X3F0ZGVtdXhfcHJvY2Vzc19h
ZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZvcmNlKQorICAgICAgICAgICAg
ICAgcmV0ID0gR1NUX0ZMT1dfRVJST1I7CisgICAgICAgICAgICAgICBnb3RvIGRvbmU7CisgICAg
ICAgICAgICAgfQorLSAgICAgICAgICAgIC8qIGluIE1TUyB3ZSBuZWVkIHRvIGV4cG9zZSB0aGUg
cGFkcyBhZnRlciB0aGUgZmlyc3QgbW9vZiBhcyB3ZSB3b24ndCBnZXQgYSBtb292IAorLSAgICAg
ICAgICAgICAqIEFsc28sIGZyYWdtZW50ZWQgZm9ybWF0IG5lZWQgdG8gYmUgZXhwb3NlZCBpZiBh
IG1vb3YgaGF2ZSBubyB2YWxpZCBzYW1wbGUgZGF0YSAqLworLSAgICAgICAgICAgIGlmIChkZW11
eC0+bXNzX21vZGUgfHwgZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlKSB7CistICAgICAgICAgICAg
ICBpZiAoIWRlbXV4LT5leHBvc2VkKSB7CistICAgICAgICAgICAgICAgIGlmICghZGVtdXgtPnBl
bmRpbmdfbmV3c2VnbWVudCkgeworLSAgICAgICAgICAgICAgICAgIEdzdFNlZ21lbnQgc2VnbWVu
dDsKKy0gICAgICAgICAgICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZP
Uk1BVF9USU1FKTsKKy0gICAgICAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNUIChkZW11eCwg
Im5ldyBwZW5kaW5nX25ld3NlZ21lbnQiKTsKKy0gICAgICAgICAgICAgICAgICBkZW11eC0+cGVu
ZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50ICgmc2VnbWVudCk7CistICAg
ICAgICAgICAgICAgIH0KKy0gICAgICAgICAgICAgICAgcXRkZW11eF9leHBvc2Vfc3RyZWFtcyAo
ZGVtdXgpOworLSAgICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgICAgZm9yIChu
ID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworLSAgICAgICAgICAgICAgICAgIFF0
RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAgICAg
ICAgIGdzdF9xdGRlbXV4X2NvbmZpZ3VyZV9zdHJlYW0gKGRlbXV4LCBzdHJlYW0pOworLSAgICAg
ICAgICAgICAgICB9CisrICAgICAgICAgICAgLyogaW4gTVNTIHdlIG5lZWQgdG8gZXhwb3NlIHRo
ZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0IGdldCBhIG1vb3YgKi8KKysg
ICAgICAgICAgICBpZiAoZGVtdXgtPm1zc19tb2RlICYmICFkZW11eC0+ZXhwb3NlZCkgeworKyAg
ICAgICAgICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CisrICAgICAgICAg
ICAgICAgIEdzdFNlZ21lbnQgc2VnbWVudDsKKysgICAgICAgICAgICAgICAgZ3N0X3NlZ21lbnRf
aW5pdCAoJnNlZ21lbnQsIEdTVF9GT1JNQVRfVElNRSk7CisrICAgICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworKyAgICAgICAg
ICAgICAgICBkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50ID0gZ3N0X2V2ZW50X25ld19zZWdtZW50
ICgmc2VnbWVudCk7CisgICAgICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11
eF9jaGVja19zZW5kX3BlbmRpbmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVt
dXgtPnBlbmRpbmdfY29uZmlndXJlID0gRkFMU0U7CisrICAgICAgICAgICAgICBxdGRlbXV4X2V4
cG9zZV9zdHJlYW1zIChkZW11eCk7CisgICAgICAgICAgICAgfQorICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgIEdTVF9ERUJVR19PQkpFQ1QgKGRlbXV4LCAiRGlzY2FyZGluZyBbbW9v
Zl0iKTsKK2RpZmYgLS1naXQgYS9nc3QvaXNvbXA0L3F0ZGVtdXguaCBiL2dzdC9pc29tcDQvcXRk
ZW11eC5oCitpbmRleCA2MDYxMjE1Li5lY2YwYzYzIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmgKKysrKyBiL2dzdC9pc29tcDQvcXRkZW11eC5oCitAQCAtODksNyArODksNiBAQCBz
dHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ2Jvb2xlYW4gcG9zdGVkX3JlZGlyZWN0OworIAorICAg
LyogcHVzaCBiYXNlZCB2YXJpYWJsZXMgKi8KKy0gIGdib29sZWFuIHBlbmRpbmdfY29uZmlndXJl
OworICAgZ3VpbnQgbmVlZGVkYnl0ZXM7CisgICBndWludCB0b2Ryb3A7CisgICBHc3RBZGFwdGVy
ICphZGFwdGVyOworLS0gCisyLjguMC5yYzMKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNo
ZXMvZ3N0LXBsdWdpbnMtZ29vZC11c2UtdGhlLXRmZHQtZGVjb2RlLXRpbWUucGF0Y2ggYi9Ub29s
cy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNvZGUtdGltZS5w
YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMWU5ZGQ5N2Y3OTEK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVz
ZS10aGUtdGZkdC1kZWNvZGUtdGltZS5wYXRjaApAQCAtMCwwICsxLDE0NiBAQAorRnJvbSA0NmQz
ZTBmYWE5MjI2NDMwOTRhNWU0NmEzMmU0ZjgyZjc3NGFlNzcyIE1vbiBTZXAgMTcgMDA6MDA6MDAg
MjAwMQorRnJvbTogPT9VVEYtOD9xP0VucmlxdWU9MjBPY2E9QzM9QjFhPTIwR29uej1DMz1BMWxl
ej89IDxlb2NhbmhhQGlnYWxpYS5jb20+CitEYXRlOiBUdWUsIDEwIE5vdiAyMDE1IDEzOjA5OjAw
ICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSB0aGUgdGZkdCBkZWNvZGUgdGltZSB3aGVuIGl0
J3Mgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQKKyB0aGFuIHRoZSB0aW1lIGluIHRoZSBsYXN0IHNh
bXBsZSBpZiBhbHdheXMtaG9ub3ItdGZkdCBpcyBlbmFibGVkCisKK2h0dHBzOi8vYnVnemlsbGEu
Z25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NTQyMzAKKy0tLQorIGdzdC9pc29tcDQvcXRkZW11
eC5jIHwgNzIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKworIGdzdC9pc29tcDQvcXRkZW11eC5oIHwgIDEgKworIDIgZmlsZXMgY2hhbmdlZCwgNzMg
aW5zZXJ0aW9ucygrKQorCitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3Qv
aXNvbXA0L3F0ZGVtdXguYworaW5kZXggODgwNTk1ZS4uZDhiNTRmMCAxMDA2NDQKKy0tLSBhL2dz
dC9pc29tcDQvcXRkZW11eC5jCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTUzNSw2
ICs1MzUsMTEgQEAgc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfYXBwZW5kX3Byb3RlY3Rpb25fc3lz
dGVtX2lkIChHc3RRVERlbXV4ICogcXRkZW11eCwKKyAgICAgY29uc3QgZ2NoYXIgKiBpZCk7Cisg
c3RhdGljIHZvaWQgcXRkZW11eF9nc3Rfc3RydWN0dXJlX2ZyZWUgKEdzdFN0cnVjdHVyZSAqIGdz
dHN0cnVjdHVyZSk7CisgCisrc3RhdGljIHZvaWQgZ3N0X3F0ZGVtdXhfc2V0X3Byb3BlcnR5IChH
T2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorKyAgICBjb25zdCBHVmFsdWUgKiB2YWx1
ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworK3N0YXRpYyB2b2lkIGdzdF9xdGRlbXV4X2dldF9wcm9w
ZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgR1ZhbHVlICogdmFs
dWUsIEdQYXJhbVNwZWMgKiBzcGVjKTsKKysKKyBzdGF0aWMgdm9pZAorIGdzdF9xdGRlbXV4X2Ns
YXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIHsKK0BAIC01NDYsOCArNTUxLDIx
IEBAIGdzdF9xdGRlbXV4X2NsYXNzX2luaXQgKEdzdFFURGVtdXhDbGFzcyAqIGtsYXNzKQorIAor
ICAgcGFyZW50X2NsYXNzID0gZ190eXBlX2NsYXNzX3BlZWtfcGFyZW50IChrbGFzcyk7CisgCisr
ICBnb2JqZWN0X2NsYXNzLT5zZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9zZXRfcHJvcGVydHk7
CisrICBnb2JqZWN0X2NsYXNzLT5nZXRfcHJvcGVydHkgPSBnc3RfcXRkZW11eF9nZXRfcHJvcGVy
dHk7CisrCisgICBnb2JqZWN0X2NsYXNzLT5kaXNwb3NlID0gZ3N0X3F0ZGVtdXhfZGlzcG9zZTsK
KyAKKysgLyoqCisrICAgKiBHc3RRdERlbXV4OjphbHdheXMtaG9ub3ItdGZkdDoKKysgICAqCisr
ICAgKiBSZXF1ZXN0cyB0aGUgZGVtdXhlciB0byByZXNwZWN0IHdoYXQgdGhlIFRGRFQgYXRvbSBz
YXlzIGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMuIERlZmF1bHRz
IHRvIEZBTFNFLgorKyAgICovCisrICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5IChn
b2JqZWN0X2NsYXNzLCBQUk9QX0FMV0FZU19IT05PUl9URkRULAorKyAgICAgIGdfcGFyYW1fc3Bl
Y19ib29sZWFuICgiYWx3YXlzLWhvbm9yLXRmZHQiLCAiQWx3YXlzIGhvbm9yIFRGRFQiLAorKyAg
ICAgICAgICAiV2hlbiBlbmFibGVkLCBURkRUIGF0b20gd2lsbCBhbHdheXMgYmUgcmVzcGVjdGVk
IGluIG9yZGVyIHRvIHByb2R1Y2UgcHJlc2VudGF0aW9uIHRpbWVzdGFtcHMiLAorKyAgICAgICAg
ICBGQUxTRSwgR19QQVJBTV9SRUFEV1JJVEUgfCBHX1BBUkFNX1NUQVRJQ19TVFJJTkdTKSk7Cisr
CisgICBnc3RlbGVtZW50X2NsYXNzLT5jaGFuZ2Vfc3RhdGUgPSBHU1RfREVCVUdfRlVOQ1BUUiAo
Z3N0X3F0ZGVtdXhfY2hhbmdlX3N0YXRlKTsKKyAjaWYgMAorICAgZ3N0ZWxlbWVudF9jbGFzcy0+
c2V0X2luZGV4ID0gR1NUX0RFQlVHX0ZVTkNQVFIgKGdzdF9xdGRlbXV4X3NldF9pbmRleCk7CitA
QCAtNjExLDYgKzYyOSw3IEBAIGdzdF9xdGRlbXV4X2luaXQgKEdzdFFURGVtdXggKiBxdGRlbXV4
KQorICAgcXRkZW11eC0+Y2VuY19hdXhfaW5mb19zaXplcyA9IE5VTEw7CisgICBxdGRlbXV4LT5j
ZW5jX2F1eF9zYW1wbGVfY291bnQgPSAwOworICAgcXRkZW11eC0+cHJvdGVjdGlvbl9zeXN0ZW1f
aWRzID0gTlVMTDsKKysgIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0ID0gRkFMU0U7CisgICBn
X3F1ZXVlX2luaXQgKCZxdGRlbXV4LT5wcm90ZWN0aW9uX2V2ZW50X3F1ZXVlKTsKKyAgIGdzdF9z
ZWdtZW50X2luaXQgKCZxdGRlbXV4LT5zZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworICAgcXRk
ZW11eC0+Zmxvd2NvbWJpbmVyID0gZ3N0X2Zsb3dfY29tYmluZXJfbmV3ICgpOworQEAgLTYzOSw2
ICs2NTgsNDIgQEAgZ3N0X3F0ZGVtdXhfZGlzcG9zZSAoR09iamVjdCAqIG9iamVjdCkKKyB9Cisg
Cisgc3RhdGljIHZvaWQKKytnc3RfcXRkZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmpl
Y3QsIGd1aW50IHByb3BfaWQsCisrICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVj
ICogcHNwZWMpCisreworKyAgR3N0UVREZW11eCAqcXRkZW11eCA9IEdTVF9RVERFTVVYIChvYmpl
Y3QpOworKworKyAgc3dpdGNoIChwcm9wX2lkKSB7CisrICAgIGNhc2UgUFJPUF9BTFdBWVNfSE9O
T1JfVEZEVDoKKysgICAgICBHU1RfT0JKRUNUX0xPQ0sgKHF0ZGVtdXgpOworKyAgICAgIHF0ZGVt
dXgtPmFsd2F5c19ob25vcl90ZmR0ID0gZ192YWx1ZV9nZXRfYm9vbGVhbiAodmFsdWUpOworKyAg
ICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVm
YXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwg
cHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9p
ZAorK2dzdF9xdGRlbXV4X2dldF9wcm9wZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJv
cF9pZCwgR1ZhbHVlICogdmFsdWUsCisrICAgIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBH
c3RRVERlbXV4ICpxdGRlbXV4ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2gg
KHByb3BfaWQpIHsKKysgICAgY2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdT
VF9PQkpFQ1RfTE9DSyAocXRkZW11eCk7CisrICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbiAodmFs
dWUsIHF0ZGVtdXgtPmFsd2F5c19ob25vcl90ZmR0KTsKKysgICAgICBHU1RfT0JKRUNUX1VOTE9D
SyAocXRkZW11eCk7CisrICAgICAgYnJlYWs7CisrICAgIGRlZmF1bHQ6CisrICAgICAgR19PQkpF
Q1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEIChvYmplY3QsIHByb3BfaWQsIHBzcGVjKTsKKysg
ICAgICBicmVhazsKKysgIH0KKyt9CisrCisrc3RhdGljIHZvaWQKKyBnc3RfcXRkZW11eF9wb3N0
X25vX3BsYXlhYmxlX3N0cmVhbV9lcnJvciAoR3N0UVREZW11eCAqIHF0ZGVtdXgpCisgeworICAg
aWYgKHF0ZGVtdXgtPnBvc3RlZF9yZWRpcmVjdCkgeworQEAgLTI5OTUsNiArMzA1MCwxNiBAQCBx
dGRlbXV4X3BhcnNlX3RydW4gKEdzdFFURGVtdXggKiBxdGRlbXV4LCBHc3RCeXRlUmVhZGVyICog
dHJ1biwKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVzIC0gMV0u
dGltZXN0YW1wICsKKyAgICAgICAgICAgc3RyZWFtLT5zYW1wbGVzW3N0cmVhbS0+bl9zYW1wbGVz
IC0gMV0uZHVyYXRpb247CisgCisrICAgICAgLyogSWYgd2UncmUgYWx3YXlzIGhvbm9yaW5nIFRG
RFQgYW5kIHRoZXJlJ3MgYSBzaWduaWZpY2F0aXZlIGRpZmZlcmVuY2UKKysgICAgICAgKiBiZXR3
ZWVuIHRoZSBkZWNvZGVfdHMgYW5kIHRoZSB0aW1lc3RhbXAsIHByZWZlciBkZWNvZGVfdHMgKi8K
KysgICAgICBpZiAocXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPT0gVFJVRQorKyAgICAgICAg
ICAmJiBhYnMgKGRlY29kZV90cyAtIHRpbWVzdGFtcCkgPgorKyAgICAgICAgICBzdHJlYW0tPnNh
bXBsZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbikgeworKyAgICAgICAgR1NUX0lO
Rk9fT0JKRUNUIChxdGRlbXV4LAorKyAgICAgICAgICAgICJkZWNvZGVfdHMgaXMgc2lnbmlmaWNh
bnRseSBkaWZmZXJlbnQgZnJvbSB0aW1lc3RhbXAsIHVzaW5nIGRlY29kZV90cyIpOworKyAgICAg
ICAgdGltZXN0YW1wID0gZGVjb2RlX3RzOworKyAgICAgIH0KKysKKyAgICAgICBnc3RfdHMgPSBR
VFNUUkVBTVRJTUVfVE9fR1NUVElNRSAoc3RyZWFtLCB0aW1lc3RhbXApOworICAgICAgIEdTVF9J
TkZPX09CSkVDVCAocXRkZW11eCwgImZpcnN0IHNhbXBsZSB0cyAlIiBHU1RfVElNRV9GT1JNQVQK
KyAgICAgICAgICAgIiAoZXh0ZW5kcyBwcmV2aW91cyBzYW1wbGVzKSIsIEdTVF9USU1FX0FSR1Mg
KGdzdF90cykpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11eC5oIGIvZ3N0L2lzb21w
NC9xdGRlbXV4LmgKK2luZGV4IDUzYmQwNzEuLmVjZjBjNjMgMTAwNjQ0CistLS0gYS9nc3QvaXNv
bXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK0BAIC0xNTQsMTIgKzE1
NCwyMCBAQCBzdHJ1Y3QgX0dzdFFURGVtdXggeworICAgZ3VpbnQ4ICpjZW5jX2F1eF9pbmZvX3Np
emVzOworICAgZ3VpbnQzMiBjZW5jX2F1eF9zYW1wbGVfY291bnQ7CisgCisrICBnYm9vbGVhbiBh
bHdheXNfaG9ub3JfdGZkdDsKKyB9OworIAorIHN0cnVjdCBfR3N0UVREZW11eENsYXNzIHsKKyAg
IEdzdEVsZW1lbnRDbGFzcyBwYXJlbnRfY2xhc3M7CisgfTsKKyAKKysvKiBwcm9wcyAqLworK2Vu
dW0KKyt7CisrICBQUk9QXzAsCisrICBQUk9QX0FMV0FZU19IT05PUl9URkRUCisrfTsKKysKKyBH
VHlwZSBnc3RfcXRkZW11eF9nZXRfdHlwZSAodm9pZCk7CisgCisgR19FTkRfREVDTFMKKy0tIAor
Mi42LjEKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5k
LU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoIGIvVG9vbHMv
d3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZlbnQtZG93
bnN0cmVhbS1pZi10aGUtLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi5iNDQ2YmQ1NDRjMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dz
dHJlYW1lci10eXBlZmluZC1Pbmx5LXB1c2gtYS1DQVBTLWV2ZW50LWRvd25zdHJlYW0taWYtdGhl
LS5wYXRjaApAQCAtMCwwICsxLDMyIEBACitGcm9tIDVlNDNlZTU5ODlkN2I1MWRjYjMxNDViZDk5
NzUyNTI0N2EzZDYyZGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/
U2ViYXN0aWFuPTIwRHI9QzM9QjZnZT89IDxzZWJhc3RpYW5AY2VudHJpY3VsYXIuY29tPgorRGF0
ZTogV2VkLCAxMSBNYXkgMjAxNiAxNTowNjozOSArMDMwMAorU3ViamVjdDogW1BBVENIXSB0eXBl
ZmluZDogT25seSBwdXNoIGEgQ0FQUyBldmVudCBkb3duc3RyZWFtIGlmIHRoZSBzaW5rcGFkIGlz
Cisgbm90IGluIFBVTEwgbW9kZQorCitUaGUgb3RoZXIgc2lnbmFsIGhhbmRsZXJzIG9mIHRoZSB0
eXBlLWZvdW5kIHNpZ25hbCBtaWdodCBoYXZlIHJlYWN0aXZhdGVkCit0eXBlZmluZCBpbiBQVUxM
IG1vZGUgYWxyZWFkeSwgcHVzaGluZyBhIENBUFMgZXZlbnQgYXQgdGhhdCBwb2ludCB3b3VsZCBj
YXVzZQorZGVhZGxvY2tzIGFuZCBpcyBpbiBnZW5lcmFsIHVuZXhwZWN0ZWQgYnkgZWxlbWVudHMg
dGhhdCBhcmUgaW4gUFVMTCBtb2RlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzY1OTA2CistLS0KKyBwbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxl
bWVudC5jIHwgNCArKysrCisgMSBmaWxlIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKQorCitkaWZm
IC0tZ2l0IGEvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYyBiL3BsdWdpbnMv
ZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMKK2luZGV4IGM2ODY0MTIuLjQ1M2ZmNzUgMTAw
NjQ0CistLS0gYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCisrKysgYi9w
bHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5kZWxlbWVudC5jCitAQCAtMTc5LDYgKzE3OSwxMCBA
QCBnc3RfdHlwZV9maW5kX2VsZW1lbnRfaGF2ZV90eXBlIChHc3RUeXBlRmluZEVsZW1lbnQgKiB0
eXBlZmluZCwKKyAgIEdTVF9JTkZPX09CSkVDVCAodHlwZWZpbmQsICJmb3VuZCBjYXBzICUiIEdT
VF9QVFJfRk9STUFUICIsIHByb2JhYmlsaXR5PSV1IiwKKyAgICAgICBjYXBzLCBwcm9iYWJpbGl0
eSk7CisgCisrICAvKiBEbyBub3RoaW5nIGlmIGRvd25zdHJlYW0gaXMgcHVsbGluZyBmcm9tIHVz
ICovCisrICBpZiAoR1NUX1BBRF9NT0RFICh0eXBlZmluZC0+c3JjKSA9PSBHU1RfUEFEX01PREVf
UFVMTCkKKysgICAgcmV0dXJuOworKworICAgR1NUX09CSkVDVF9MT0NLICh0eXBlZmluZCk7Cisg
CisgICAvKiBOb3cgYWN0dWFsbHkgc2VuZCB0aGUgQ0FQUyBldmVudCBkb3duc3RyZWFtLgorLS0g
CisyLjguMQo=
</data>
<flag name="commit-queue"
          id="328969"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>307738</attachid>
            <date>2017-04-21 09:24:48 -0700</date>
            <delta_ts>2017-04-27 13:41:37 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews105 for mac-elcapitan-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>928098</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
T5KmH6Yrf3NdmpPLfnzYs5s2NU55ax703U1Zs0fnoClfvN1y39v5b+Ne48oPZSeLh812Iz4vnUGr
GwbW6zWzlOvKtKTz6PbkZJ3VsVO66fS5Jk7bYbbKh5tJ/JZH8+e8MM6bGQ8d7vRGu+7pfW2fD0/e
ILuuR+fnYfasOq7VHh2n8XIqPy+MWrY6dI/t5uKkXp90fr40ms10y8KRl52mU//9FEe7NCpePSn0
bpYYhMPl9eQrK7WznR/2ryytGePnVD/Mrk/vVludNdaHl6g9Tfbtw3Bul8rqli43ZqBYu2mrPWxH
pRSNeq496Ntuc7kvJLNX60yOejyTJ9nhdrHc60xYdsOfbA+sqzC/PTOuptIzpqPtU2o4VulZVtSz
N++OvXGxLbBytXY/8Oyh5Vphu4ElbVlslLp5OLbtfrJqmw15vrwmTk+xztt1cFmo80455Uu7TYvb
g8Crha71lP/J+ODN97ZRtodeHNgr2sCzynKQ8rfFy8Q+1aaT/iaWO8XLpL9O5P57ngeeevZKp5y6
b33p1bZwi9z3AjuoouuEYRBYu5bjnFpWOGrW7BI/Peh7S8G5CO3Dsuf3Cs+/Pa2n62nYeWFv83HW
ub5FDd+4vr5KtW3gOWEQ5nOltSsPhXxcjfy1GRljY72LraSzDJS5LyUbbrjubdV6n/fH+UjTRF8N
HClrrWoj11/m3np/SG77YZJLqiEW/WJWLsLGRdsLcekIPwzLyTmXFtv27tVjt74cKG156A46Z/W1
liy6zZQ3L+POwWjurHhfeMk490IxNeavb1PlfSw2iWDued9w58ee7u+DlSpv3H40u3luqtVk1g9X
L0+NFxZKbNKbjCzV0JX82h7t+zv9thlw2ZmGx9h5LqKnfX5JN0zrR53ZyBiMW+VqVrNvp+s2fht0
grVjqcnxbTGSG2+y5TzP01txbl3YKrk0DryjiI5bzC/SOH36YCiv6/7OT/8FUEsDBBQAAgAIAIVC
lUoKXsxj5wkAADsSAAAVABwAX3dwdF9jZXJ0cy8wNEU2RTIucGVtVVQJAAMpI/pYKSP6WHV4CwAB
BPUBAAAEFAAAAJ1X2XKrSBJ911focTrct13sUBH9AAhJaEELkmX5rYACgdAGSEj6+snk9rjltu5M
xBAOh6GqcjmZdU7a5kWVxmnIKk5bbXg6rGI//8LnjRdletjTttT+F7mKv30u+LxIWd72zruAF7As
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
zdJex73WdVy/LyQvQELxj8OaSnTxNp8PnVDsZAePQOtWQSUskhXf3PgwsFdfecPb1KSUavMlkejO
a32WYOu89YNZJ4UO/eH893V+oRTHrbk4cDleDKqJwqtHpIU8mdhYGHajQ3LYAobGqbuSyMNqpPmS
j20L+QcqLOvBTXl2F8gC9UiPblK2dIWW7oxTxvL+7bSwtGjJprL8gTpEPpeGWrcqrt329/AJUEsD
BAoAAAAAAI9ClUoAAAAAAAAAAAAAAAAHABwAY3J5cHRvL1VUCQADPiP6WDMm+lh1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAj0KVSgAAAAAAAAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQADPiP6
WDMm+lh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAj0KVSiXg0wgsAAAALAAAAD4AHABjcnlwdG8v
c3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVU
CQADPiP6WD4j+lh1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwg
c3RhdHVzIC00MzA0ClBLAwQUAAIACACPQpVKMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUv
cnNhLWltcG9ydC1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQADPiP6WD4j
+lh1eAsAAQT1AQAABBQAAABty7ENgDAMRNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuks
MQhRdXpUOaBCgaShBtFHa5E0XdaP44w3skgFZ6Cln9Z/hgdQSwMECgAAAAAAjkKVSgAAAAAAAAAA
AAAAAA8AHABjcnlwdG8vd29ya2Vycy9VVAkAAzwj+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoA
AAAAAI5ClUoAAAAAAAAAAAAAAAAWABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQADPCP6WDMm
+lh1eAsAAQT1AQAABBQAAABQSwMECgACAAAAjkKVSiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29y
a2Vycy9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQJAAM8I/pYPCP6WHV4CwAB
BPUBAAAEFAAAAENvdWxkIG5vdCBnZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsD
BAoAAAAAAJJClUoAAAAAAAAAAAAAAAANABwAZGlzcGxheWxpc3RzL1VUCQADQyP6WDMm+lh1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAkkKVSqNX/ehQAAAAjgAAADIAHABkaXNwbGF5bGlzdHMvZXh0
ZW50LWluY2x1ZGVzLXRyYW5zZm9ybXMtc3RkZXJyLnR4dFVUCQADQyP6WEMj+lh1eAsAAQT1AQAA
BBQAAABzL0osyMhMLnbOzytJrSixskpPLXEO8dXQVMgsVsjLL1GoTC1RSM7PLUgsyUzKSVUozyzJ
UChKTc4vSsnMSwfKgLUV63G5oxtUjGYQMYYAAFBLAwQUAAIACACSQpVK8paV1UcAAABJAAAAKQAc
AGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXktbGlzdC1zdGRlcnIudHh0VVQJAANDI/pYQyP6WHV4
CwABBPUBAAAEFAAAAHMvSizIyEwuds7PK0mtKLGySk8tcQ7x1dBUyCxWyMsvUahMLVFIzs8tSCzJ
TMpJVSjPLMlQKEpNzi9KycxLB8qAtRXrcQEAUEsDBAoAAAAAAMRClUoAAAAAAAAAAAAAAAAIABwA
ZWRpdGluZy9VVAkAA58j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAMRClUoAAAAAAAAA
AAAAAAARABwAZWRpdGluZy9kZWxldGluZy9VVAkAA58j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMRClUp8cUh/ywEAAAAUAAAoABwAZWRpdGluZy9kZWxldGluZy9kZWxldGUtZW1vamkt
c3RkZXJyLnR4dFVUCQADnyP6WJ8j+lh1eAsAAQT1AQAABBQAAADtl81qrDAUx9f1KYLLYUaSqInK
7cDtlFIodNGZ0kXpIupxrjB+oJkybRFKX6Drvsl9nvsCfYUmnX5dGLibi3URN5pj8s/x/+N4lGLC
J9ibUIJwEFEcecwJaYCSqnBEXa/AuYD4JJf6NKtKCaV0DuEaVlVdqOtLxjxPrSNeiN0rNKsaWMBG
Rmg0GqHzslASkCL7z9P98+9HG/2YLY6USITwhmeQxC6nNEvx9K4UBaB9NF/Mq3Ip88liNjmD5Xol
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
SXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQKAAAAAAC2
QpVKAAAAAAAAAAAAAAAADAAcAGZhc3QvbG9hZGVyL1VUCQADhyP6WDMm+lh1eAsAAQT1AQAABBQA
AABQSwMEFAACAAgAsEKVStsI00I7AAAAPwAAAFIAHABmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdl
LXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0
VVQJAAN7I/pYeyP6WHV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARK
KJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBBQAAgAIALFClUrbCNNCOwAAAD8AAABT
ABwAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1j
YW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAkAA30j+lh9I/pYdXgLAAEE9QEAAAQUAAAA
cywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0
uABQSwMEFAACAAgAtkKVStsI00I7AAAAPwAAAC0AHABmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5
LWRlbGVnYXRlLXN0ZGVyci50eHRVVAkAA4cj+liHI/pYdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEo
yVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAA
AAAAvEKVSgAAAAAAAAAAAAAAAA0AHABmYXN0L3JlZ2lvbnMvVVQJAAOTI/pYMyb6WHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAAC8QpVKAAAAAAAAAAAAAAAAFwAcAGZhc3QvcmVnaW9ucy9zY3JvbGxp
bmcvVVQJAAOUI/pYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAC8QpVKOQHL3UAAAAB6AAAA
NQAcAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0
VVQJAAOTI/pYkyP6WHV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32
BeLU4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAvEKVSjkBy91AAAAA
egAAAC4AHABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQJ
AAOTI/pYkyP6WHV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU
4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAvEKVSuSKx0M8AAAAPQAA
AEAAHABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lv
bi1zdGRlcnIudHh0VVQJAAOUI/pYlCP6WHV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0
skrOzyvJzCvNLy32BeLU4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuAFBLAwQKAAAAAADEQpVK
AAAAAAAAAAAAAAAACgAcAGZhc3QvdGV4dC9VVAkAA58j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMRClUrE6lTjjQEAAAUKAAAjABwAZmFzdC90ZXh0L2Vtb2ppLWdlbmRlci0yLXN0ZGVy
ci50eHRVVAkAA58j+lifI/pYdXgLAAEE9QEAAAQUAAAA7ZVNSsNAGIbX5hRDliUN85dMGrSgKUUQ
urARF6WLSTKpgeaHZCrVEvAGrr2J5/ECXsGZthaFgrvaRbNJ5pvJ+73z8jCDIWJdSLsYAej5GPuQ
2Qg7IC5zm1fVXNj3IrrJpH4FZSFFIe2BeBTzssrV98R1HYf4mECC8BQEZS1CsZQ+6HQ64K7IlYRI
gPnx9vL5/mqC8yAcKhEfwCVLI5owBAUisL8qeC7ABRiH47KYyawbBt1bMVvMeW2BJnvWcwhCG64f
C+Rc1tlSFeFSjRLRxHVWybJWlW2Lwa62a0ZdmHg91YxL9Xe0kKJZrx9e8SaLr3nz8GNlhDAEEz1O
U8aQ61AKp/2VfKq0l3wheTQXIMliaamsFoXUDi1DRVJnWrdvnGHga/WxqhQzsJVyMIlZuk863qSr
PZmjsd7DSIVy+e3VbDdmf8sxhCn1/pLbE6vZGq3Rb1sD7wPAwQcCAMfYJekJgGMDwEUHAoASGhPn
BMCxAcDcQ10BLuKeOAFwbAD0yKFOAAd58HQC/CcAX1BLAwQKAAAAAADEQpVKAAAAAAAAAAAAAAAA
CQAcAGZhc3QveHNsL1VUCQADnyP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAw0KVSk77
IPiIAAAA5wAAACUAHABmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQJAAOd
I/pYnSP6WHV4CwABBPUBAAAEFAAAAKWOsQ7CMAxE936Ff6B4YMsME2wgOrutKyI5ceU4Uvl7AuUP
WE4n38nvJk1rFPKoGdhMLcAShb8SEPGhUhMXPJETnocbDjxeouOVXlr9zsULLlQctyJoXLTa1Orb
0/pZp0O7gsTMcAQWTpwdYlrVvGtJ2C0EqJnGBnUFUZp/8P/Q/f6c58+G7g1QSwMEFAACAAgAw0KV
Sv2iLmSPAAAA7gAAACcAHABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRV
VAkAA54j+lidI/pYdXgLAAEE9QEAAAQUAAAAnY4xDsIwDEX3nsIXKB7YMsMEG4jObuuKSE5cOY5U
bk+gnIDly/9/23qTpjUKedQMbKYWYInCXwmI+FCpiQueyAnPww0HHi/R8UovrX7n4gUXKo5bETQu
Wm1q6815P9Lcx7SqeV8tHloGEjPDEVg4cXbY2641YR8hQM00NgBXEKX5B/InRtZSp+fnRbsT6d5Q
SwMEFAACAAgAw0KVSs+PZg5QAAAAoAAAACQAHABmYXN0L3hzbC94c2x0LWNvbnRlbnRUeXBlLXN0
ZGVyci50eHRVVAkAA54j+lieI/pYdXgLAAEE9QEAAAQUAAAArcyxDcAgDAXRnin+BlHabIPACEs2
RpaJMn7IDmmuu1dMJ0sOtgFyN7/QWAgQHoQTJKQ0ArZirkg87ixcsbsIzRxK0a3uyyyVv7Cnh8rx
kS9QSwMEFAACAAgAxEKVSoFKd61LAAAArAAAADQAHABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10
by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0VVQJAAOfI/pYnyP6WHV4CwABBPUBAAAEFAAAALXM
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
jrVO0gxnNDwuVfAwkobtdvO0eUyKl/IQH0AWNSwXfigScu/fz3AsNHxm7BCE4YLQK2NQJ8kqr4vb
+AJQSwMEFAACAAgAI0OVSrM9PVhHAQAAiAIAAGIAHABodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1kaWZmLnR4dFVUCQADUST6WFEk+lh1eAsAAQT1AQAABBQAAADNUEFuwjAQvOcVK/XS
KjW+AKp6CiWJiooAkbacTbyUVR07ijdAf18buFRV7714ZO94ZnaEECDfnekb9DJXrGSxqeQGty/E
V3jqyWi5RoPKozTqy/UsGD2LDn1v2Ms9cyvji5fGKU32Q4aR67sa5+FesWLyTLWX1lnRdnhQBu35
/5kkjsT7qNp77ARZxk7VTIGLpxZrRj3gEydpmv7nrAF6Zc5JswzE8H4E6fD+AbIsgUaRhV2nGgQB
mnRJlvw+d3XYxXI0Ll1Xxvlv7rOy2uDSxrjFIdD939yL7g89sZpUFUyd+yQE6xh0aCdWmqQ3q1kO
b4t1Ua2Wi2r2XgSR2jUD1bYGB5dGI0xdWNPyIMcDGtfGyHDbkobxePQwukvScjKbP8IrNaghdANH
RRyahZ3roiXtvnJnEdjBFqFWxqBOIPgXy/J6fgNQSwMEFAACAAgAI0OVSkap58OhAAAAOwEAAGYA
HABodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50
LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlvbi1leHBlY3RlZC50eHRVVAkAA1Ek+lhR
JPpYdXgLAAEE9QEAAAQUAAAAfc5BCsJADEbhfU+RC+gB3IlaFERLq7geOr8YnEkgk/b8Vlyp6P7j
8XJgoauFDJpR5Nh5MG9MRy6sEtJeQ6zV6qeo8gdeac7sf0mLHjzixJ6woBOKF7qq0UFl1hjGkCBO
LYoO1oMu7DcdnM4FRjtxWOh9Gvnq1ixcbmvthzwF/i5sg8SEo6QJbcZJl5/0VX2rNcuuo5XqnUGi
ThEJjjivqgdQSwMEFAACAAgAI0OVShe9IP1OCAAAMR0AAGoAHABodHRwL3Rlc3RzL2xvYWRpbmcv
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
OPYBKRBOV2BgWDi+l1RwX3rqyyfchyDJrPswxMoixO/hXlIZ4QBG7gPEXEkPiEJxuHYS9NHQ98Oq
JZSFq5ou3Zi5cCkR9cRegDvDphe1j0jXxyPqcN/3XB76HZ5AFx61psgTj9P4WKQ+qoIA2xnqM8Gh
97hejiDmML5szAI2eHkOKPr1MoVdHN09uVCL0YZkhCcrYC5JcDJ+G1Zs5LhZAzILBv/XZo/PMHt8
vtn6I87HTAJgvZPU978xe3KG2ZNvjfapKKtL3egaHVwvzfCxa+dhUJ+tX8Rgbd7J4Px4RnD+mAU8
X/RH6NObhwfnnrFHgkERhDz3Y+i3vRfj0vQM2P9lt8ykkz6dsJed4bzy6erTu5Xz9w8/rx8+ffzw
8O6XNSQfaNhDeU6xp2lOXu61ansrvMOU5arD+FMOOjWZjKfjP38Tkn9f56b9zm3evHs/dz6TFA5F
QKLOEwKhBjmTX1kggSR+XoGwy/4kgL4EpBRH3xXjvxfPTs8I06w/TN/V5++P/uHgBPzXHzf/R+wO
h99m2rdkpnVRvQ60CupfSv8DUEsDBBQAAgAIACNDlUpnSuqNWQAAAF4AAABkABwAaHR0cC90ZXN0
cy9sb2FkaW5nL3Jlc291cmNlTG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13
aXRob3V0LXVzZXItaW50ZXJhY3Rpb24tc3RkZXJyLnR4dFVUCQADUST6WFEk+lh1eAsAAQT1AQAA
BBQAAAAVxr0OQFAMBtDdU3yJVe5GLCY/i8Fo9lNJE7dtKIm3x3TOOLFDBaLO29OoEJwjrdDLM9ih
C50nFo1hMtspjDT37D+1ipN4aOimXS1+h/GKCkWRl3naDl3yAlBLAwQKAAAAAADOQpVKAAAAAAAA
AAAAAAAAEQAcAGh0dHAvdGVzdHMvbWVkaWEvVVQJAAOzI/pYMyb6WHV4CwABBPUBAAAEFAAAAFBL
AwQKAAAAAADOQpVKAAAAAAAAAAAAAAAAFQAcAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUCQADsyP6
WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAzkKVSg56yobiAAAAcAEAADwAHABodHRwL3Rl
c3RzL21lZGlhL2hscy92aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmlsaXR5LXN0ZGVyci50eHRVVAkA
A7Mj+lizI/pYdXgLAAEE9QEAAAQUAAAAtY9LbsMgFEXnXQUbiOABD8zQ4aNK7SiK2rGNSWzVgRSc
rL/OInqHRzrSuWFY1jSRrZBY07AlMg91IuuSf8illhuhz6HSS1mnVBvVmTbFI4cZ5R2lWeM945MB
v0W275rpmX6n8WPZzqltp0fOu3XA38936agd4pzo106WkgkAPa5lbNRZK6U0QQOyznqltbDImRYA
WhnhOHZBSetfif8Yc0qx1KnRV4D3aBko1R0ZasMN97IHbpjpvfIIIKXrd6GVR42JgnNBGo1WdIwF
7S140aEWSoME1nvGIFij7GHc/779AVBLAwQKAAAAAAD1QpVKAAAAAAAAAAAAAAAAEAAcAGh0dHAv
dGVzdHMvbWlzYy9VVAkAA/0j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAPVClUoVNTWS
egAAALwAAAAqABwAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRlcnIudHh0VVQJ
AAP9I/pY/SP6WHV4CwABBPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZjIyR+vwS5QPV
XlY7h9kspREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PSRM0NpXVuwFQR
noCMBavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAANNClUoAAAAAAAAAAAAA
AAAWABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUCQADviP6WDMm+lh1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAz0KVStsI00I7AAAAPwAAADcAHABodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJh
Y2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQJAAO1I/pYtSP6WHV4CwABBPUBAAAEFAAAAHMs
KUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgA
UEsDBBQAAgAIANNClUqWEbM5aAAAAGsAAAAtABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Qt
Z29iYWNrMi1zdGRlcnIudHh0VVQJAAO+I/pYviP6WHV4CwABBPUBAAAEFAAAADMyMDTXNTDRNTJU
MLCwMjKyMrbQMzW3UEjOz9VLLCjISdULT03yziwBUc75eSWpeSV6LqllqTn5BblAdrSZmamBCVCf
iZmZWayCX7BTaUlJfp5jXmZuYklmfl6xa15iUk5qiq2fPxcAUEsDBAoAAAAAAPNClUoAAAAAAAAA
AAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA/kj+lgzJvpYdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAPhClUoAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kvVVQJAAMEJPpYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADUQpVK
0qv8VnEAAAB0AAAAVwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L2Nvbm5lY3Qtc3JjLXN0YXItd2Vic29ja2V0LWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADvyP6WL8j
+lh1eAsAAQT1AQAABBQAAAAzMjA01zUw0TUyVDCwsDIysjK21DMxN1BIzs/VSywoyEnVC09N8s4s
0fNLLSnPL8rOzEvXc0ktS83JL8hNzSuJNjMzMTG3MjI0sTQwilVwdoMqUwgO9vFIzEspzkjMTlVI
S8zMSU1R0NC1tDAw1+QCAFBLAwQUAAIACADUQpVKfFjzQHEAAAB0AAAAXgAcAGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L2RlZmF1bHQtc3JjLXN0YXItc2VjdXJlLXdl
YnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA78j+li/I/pYdXgLAAEE9QEAAAQUAAAAMzIw
NNc1MNE1MlQwsLAyMrIyttSzNDFXSM7P1UssKMhJ1QtPTfLOLNHzSy0pzy/KzsxL13NJLUvNyS/I
Tc0riTYzMzExtzIyNLE0MIpVcHaDKlMIDvbxSMxLKc5IzE5VSEvMzElNUdDQtbQwMNfkAgBQSwME
FAACAAgA+EKVSmOqrGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAMDJPpYAyT6WHV4CwABBPUBAAAE
FAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHe
UgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwn
ksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAACAAgA+EKVSmOqrGyCAAAAqAAAAFIAHABodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHls
ZS1zcmMtMi1zdGRlcnIudHh0VVQJAAMEJPpYBCT6WHV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mF
XhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW
7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxq
TdTxmr5QSwMECgAAAAAA0EKVSgAAAAAAAAAAAAAAACEAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9VVAkAA7gj+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANBClUoAAAAA
AAAAAAAAAAArABwAaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvd2Vic29ja2V0L1VU
CQADuCP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA0EKVSpZ/YhThAAAAcAEAAFIAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC93ZWJzb2NrZXQvaW5zZWN1cmUtd2Vic29j
a2V0LWluLWlmcmFtZS1zdGRlcnIudHh0VVQJAAO4I/pYuCP6WHV4CwABBPUBAAAEFAAAALWPS27D
IBRF510FG4j4PjBDflaldhRF7djGpLbqQApO1l+6iJ7hlY507jhte1rQUVCsaToSWqe6oH3L3+ha
yw3h51TxtexLqg2rjJtkkdEVxB2E3uM9w5NQdouk85XxBX+m+W07Lqkd50fO3TrBz/ur8NhNcU34
oy9byYhSbPcyNwyeS8UFDJ4JTzwDzkkQbgQuLLXaezs6TRT/S/zHmHOKpS4NB6lUCOAIlXKwBJRm
mgVhKNNEmyADUCqEN11o5VFjwhKk5g6UMW6QjogA3tBxMFbYwbIwOtpxNpzm/vflF1BLAwQUAAIA
CADzQpVKYEtmEJEAAAD7AQAARQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wt
ZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4tc3RkZXJyLnR4dFVUCQAD+SP6WPkj+lh1eAsAAQT1AQAA
BBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06AzJk9
LJEQVtXire36S+vOdf7qnLOCoXLUw+4iZhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPghQPQg
lBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMjSC0ls+LchH/oj0PfUEsDBBQAAgAIABxElUpbBFgOogUA
AE0QAAAKABwAaHR0cGQuY29uZlVUCQADJyb6WC8m+lh1eAsAAQT1AQAABBQAAACtV21v2zYQ/q5f
QbgwsBWTnLhx5xVBANdxlixJnVlOAyxJDVqiJNYSqZFUYnvrfvuOlOUXyVEDbA4QicfnuTsdj8ej
S8QTESPOFWq0MikalnWdKTJHAY3Jh5ZK0tYdmV5SZd1Q/wxkANsIW5FSqe+k1G9YrscF+cixeBEm
NWKqEWBlTBPCM4XeHRxYl4SkvZg+ETRk1jWer8cj8mdGpJLocBtVUA874CxlbooFcc13AFDzdyQd
y1VYqB3ASu8dFzMj6xxoaZ8zRjxFOZM3RPQjGvvaMPws64pj/5r7GXwZzhSnzCfzSZILYjolc+K1
cIq9iLRbIJ6sQY7k2+SM0blfRzSAEgl7HpFy4vEkxarW6jawrCRTEZvoJfiO3yvUHvryVfTly/SI
S/V9ukaV6JR5cebXml5BSsSYh+AOC2hYx92gSvSIYB8ypI67gpSIUsZ1JJguERJI6jqGni/HVNJa
z/R8ieKFtI4B0yUCIyFXFOtNUUfcgmkFb7aXLsEhSXBau3YrTCXvzWasz3gDKRNjiutpGlAiCfIs
qKpdhBWkREyjtFOwVr8yGcYapYlWXok+4YSgw/bPzgH8HVrW8SkVUHy4WKDWiaV1DFPzaehClxEi
0RmPY/7sLpIrymYSXWexop8peZZoAKb6v14A0mwBaeg9jR6CJUF9oke5UgHJCvGBuZ98whYbKAoE
T/SMddxa+3JiWT1TU3RNNy47kcqrDLishRL9gxpfHpwf7s+jx/uxevz7/tR/vHfl40T/+7Fx8rLd
U3jZmNUSF1JIBgvj7nHL6AcXbiXpY8YZ9XBsnIBj4hyKBIP3K85nWSrRMAh0lQ6vyBOJ0TMWzLIG
QnABst3DiGip3vKOmquGIZ1xkWA4AZsRasaomaGmQg+NpnhooOaJRM2pHv01IgERRHyjINZjcEvY
vZAwpUUNBGV3ShnxX6exeWoYCWc7+I0VZJ+g5m0D8tIIdlHGNs5tN5B5KTLLpSHDKhMmTNbxRVBU
mHXeeycQ3EJ+UsaYSuPly9bz/SvMwgwMIB8jx59VxCxGDosrYsKQQ1hVrEBMKuJAICcQVZOQb34V
DQvskKrJSGfnGt2PsJBg7sId2t1u5xe7ixwqef5a4VLwC5qcsvgrfPNXvE9l+6Ddtn+7gWkqK7QZ
fM5MvEi7HBlX7Fn1ixmEjVXDxjiIeUWcQiBS/uIXt3MzaTVUKXxuqvaI7anQM/CoTMZqiZw4q8g9
iJGHq4skYZGqoZFPyJFPVSWA9kC/V2WIDDmianYZ2eM75MBDPZcj8JGGnaIUI6cYOVN4KUPvLj6d
Du9c+7DdOQTzqXkpg/o33ffv1/q8FEYvBl2bMmHf+FxgLocXXXtUqJlx2rUrSXLbd2HdCkzmyfY+
xNE24qiCGJ9Btq8RKuhaBrK7z7fP7NV2178iwDeCcjjsFnonw9aHbQ6aYZ/6Zv/BfoG9AXkOmQlZ
CPmU5w4sls4TyAlYf1jr1drslJuVt+NFCid1msZQ1rUTrbkNjTpyVLhcYwbM4z5lIZrbuqkVcO4g
5489s+GSpsgJl7v0c8z8GM4d6Gts6Qmq0x7eIcPjXTfgxqNvKQnsJ6kfZQXSVFY71fH1C0wVxHwb
S5tK05rV1VjTDGxq7J5QmCuTDThwNkpfB5xi9RqgLXkmPGIUy32Z4VOxnRHrbsB0Iii/1phg5a+F
f5VFholJEOPQdOHm2JWIs90pGXGhJjwlbKJgCNM1YSv6r5Vzo3w4YCEcu/q02xLCZc5HcJoOfr8d
uOPJ9WB8Pjz9hr6MR73+YBs40sqdt8hG92ePJeOfqVAZjnWvgd5+6B4dvcsN723hzIR7tfHmuLXF
B3VvrDeoB0tCbJkSjwbUM7dsuZCKJCgVXOW3TweQq96qIaTw/o8Waqu91A2b8/bBeXB0/+QHcAn+
Lxa2esV/AVBLAwQKAAAAAADuQpVKAAAAAAAAAAAAAAAACQAcAGltcG9ydGVkL1VUCQAD8CP6WDMm
+lh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAJ0OVSgAAAAAAAAAAAAAAAA8AHABpbXBvcnRlZC9i
bGluay9VVAkAA1kk+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANxClUoAAAAAAAAAAAAA
AAAUABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9VVAkAA88j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAANtClUoAAAAAAAAAAAAAAAAaABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9VVAkA
A80j+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANpClUoAAAAAAAAAAAAAAAAhABwAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9idXR0b24vVVQJAAPMI/pYMyb6WHV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACADaQpVKxyHv2zcAAABAAAAARwAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMv
YnV0dG9uL2J1dHRvbi1yZXNldC1mb2N1cy1ieS1tb3VzZS1zdGRlcnIudHh0VVQJAAPMI/pYzCP6
WHV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUS
SxQsDAz0DMBAB8bgAgBQSwMECgAAAAAA2kKVSgAAAAAAAAAAAAAAACAAHABpbXBvcnRlZC9ibGlu
ay9mYXN0L2Zvcm1zL3JhbmdlL1VUCQADzCP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
2kKVSsch79s3AAAAQAAAAD8AHABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3JhbmdlL3Jhbmdl
LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAkAA8wj+ljMI/pYdXgLAAEE9QEAAAQUAAAAy80v
LU71zS9LDclXSEvMzElNUSgBsjLzUhQSFUoSi9JTSxTKMlPLFRJLFCwMDPQMwEAHxuACAFBLAwQK
AAAAAADbQpVKAAAAAAAAAAAAAAAAIQAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvc3VibWl0
L1VUCQADzSP6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA20KVSsch79s3AAAAQAAAAEEA
HABpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9zdWJtaXQtZm9jdXMtYnktbW91c2Ut
c3RkZXJyLnR4dFVUCQADzSP6WM0j+lh1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1R
KAGyMvNSFBIVShKL0lNLFMoyU8sVEksULAwM9AzAQAfG4AIAUEsDBAoAAAAAANxClUoAAAAAAAAA
AAAAAAAdABwAaW1wb3J0ZWQvYmxpbmsvZmFzdC9yZXBsYWNlZC9VVAkAA88j+lgzJvpYdXgLAAEE
9QEAAAQUAAAAUEsDBBQAAgAIANxClUoHa2Mw4QAAAHABAABDABwAaW1wb3J0ZWQvYmxpbmsvZmFz
dC9yZXBsYWNlZC9pbWFnZS1tYXAtYWx0LWNvbnRlbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADzyP6
WM8j+lh1eAsAAQT1AQAABBQAAAC1j01uwyAUhPc9BReIHo/yuwSDValdRVG7djCJrTqQgpPzlx6i
sxzNJ30zTuuWZrIXEmua9kSWqc5kW/M3udRyI/CcKlzKNqfaQGVokkWGi+B3wc0W71k8KbJbpD3X
DCf4Suf3dT+lth8fOXfqIH4+3riHYYpLgs/erCUTRHBbOTeQbtTB46t0WqlRmyA1R/SWBS2V9Q49
95Ii/in+o8wxxVLnBkEqFYIYKEqpHRXKMMMCt8gMNTbIIBA597YDrTxqTMCtsjgoYUOfCDuiYCao
gJppTakZBToxOK4P5/735RdQSwMECgAAAAAAJ0OVSgAAAAAAAAAAAAAAABcAHABpbXBvcnRlZC9i
bGluay9zdG9yYWdlL1VUCQADWST6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAJ0OVSgAA
AAAAAAAAAAAAACEAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9VVAkAA1kk+lgz
JvpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACdDlUo2GZqefQAAAIcAAABGABwAaW1wb3J0ZWQv
Ymxpbmsvc3RvcmFnZS9pbmRleGVkZGIvYmxvYi1kZWxldGUtb2JqZWN0c3RvcmUtZGItYWN0dWFs
LnR4dFVUCQADWST6WFkk+lh1eAsAAQT1AQAABBQAAAAlxrsKwkAQRuE+T/FDGi1MI2xhJ+4GFiUJ
xkudy0QGNjuLjIpvr2JzvpM33uJcHV3b1FXrLw4rDDIXXUqBiiv1e9YfO4lKUQtLTwqS5u9jkXiE
MWtjllm59YcNTjzTCHkoXh0rxxsmuSOK8vS2Egkq6AlDFwKNWZa7uvznA1BLAwQUAAIACAAnQ5VK
tUWPuC8CAACyBAAARAAcAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVs
ZXRlLW9iamVjdHN0b3JlLWRiLWRpZmYudHh0VVQJAANZJPpYWST6WHV4CwABBPUBAAAEFAAAAMVT
wU7jMBC95ytG5dBWqZN20faAhNRCglQtSyvShbMTT8GLY2djZ9v+PeOkRaAtXFeREmf85s174zFj
DOIHo5oSbZxwx+P0MYsfMf8h3eFz1Ugl4ntUyC3Giu9N45hD61iNtlHOxrKsTO1QxLmS+iW2ztT8
CWOpBe5QiJziJmeCGBwyk//GwnkMMpEz3FX0iyJyOxeEYfh/1fDCNVy1WmYzYJPR+RjCyeg7zGYB
W1MVcM/cQZss9RNwDR0DtBT0L4CDIOU5yYPCaMel9khf1IIwaHXfQVFz+xwF4dlqkcCvu/s0Wy3v
ssVDCoySyohXlcKoc+w/10SE2kUJ/kVlqpLWMKikgOn0fDodBuHNfHF7AWtZogDqCGy5bAVuTA3a
OLnZJ0YjOAM5yeJKoQggYEsNtikKtHYE1EnYSqXAIhmhdy3RgtlAbzXPsh7QmVhqJCE3RimzpUr5
HnrrNFvD9fLn6jZdp70oYP4RueYlwiX0Pm929OxK1QvY4WCSq6iDJYfuDTqS4XuEqVAf4iOY0FZL
NqZCxFfUyB0u2yKZjw/63Xb/CJx8DZy8AcdR1biB1z4fwQvuh95SVChDsobeYI2tlOGFX/5p/GRc
wic6v7UZnbn3RX0ysf678U42IaRITqa6mmvbGWqXNLvS6DcrI+iTTbGtpcMPDWjBkfnC/eTN/dUp
96cMf3Z0x0h3ZeiaB8xP03HqNo1S+xWvLQ2TtCStQe/5w0xRIDxLlzeH9ytQSwMEFAACAAgAJ0OV
Svc6kclcAQAA3wIAAEgAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLWRl
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
4Bl+QqH2/ardZa7a3+mawgzRr4eRo9PelyCdpwXpHFKQzt4s4sYr+U5F8cdTdEfXB8Lb3UvmgeOQ
gOA8EMbea03bnX0wXUJ1png/OQzEwV4gwhkUzijnqCG9dQ9k+eGrtfw+SM5QWzFJHcoJRvuJ8m3A
L0QP49fqB919EBdhZPpSrtDdB0HpW39DtPrV/MRsi2JPkX4AFZOHhEl6QA/pdvdZQGihXPHi1UO3
tzcp8urh8oDVQ7f/+quH7qEI8AUPJt198GCG1FwyUnKYs393H8SoLjSy249gxfn6Rv1GK0EshdBc
0cMAH71ajtkH+5Uufw4Cs9c+gAJf3a11f8et9ezr9f/xynnwY8h+5D618tA/PPrQMr96/jdQSwME
FAACAAgAJ0OVShNKLp1ZAAAAXgAAAEYAHABpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRk
Yi9ibG9iLWRlbGV0ZS1vYmplY3RzdG9yZS1kYi1zdGRlcnIudHh0VVQJAANZJPpYWST6WHV4CwAB
BPUBAAAEFAAAABXGOwqAQAwFwN5TPLCVbYTtrPw0FpbWfiIE3CRoFLy9Ws2MEztUIOq8PY0KwTnR
Cr28gB260Hli0RQms53CSHPP/lOrOImHhm7a1dJ3GK+oEGMZY94OXfYCUEsDBAoAAAAAAC1DlUoA
AAAAAAAAAAAAAAANABwAaW1wb3J0ZWQvdzNjL1VUCQADZST6WDMm+lh1eAsAAQT1AQAABBQAAABQ
SwMECgAAAAAALUOVSgAAAAAAAAAAAAAAACgAHABpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvVVQJAANlJPpYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAtQ5VKwtse
nH4AAACHAAAAQwAcAGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJm
YWN0b3J5X29wZW45LWFjdHVhbC50eHRVVAkAA2Uk+lhlJPpYdXgLAAEE9QEAAAQUAAAAJca9CsIw
FIbhvVfxQRcdLA5SwU1MC0Fpi/VnTptTCSQ5QY6Kd6/i8j5v3mmFc3Os+q5ten2psMDIoTApeSqu
NOyd/NhxFIpSKHqS5xS+j1lyFmW5Wi/nWb3Vhw1OLpAFPwQv48TFGya+I7K46a04EoQxEEbjPdks
y6u2/ucDUEsDBBQAAgAIAC1DlUpEYn9pnAEAAPkGAABBABwAaW1wb3J0ZWQvdzNjL0luZGV4ZWRE
Qi1wcml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktZGlmZi50eHRVVAkAA2Uk+lhlJPpY
dXgLAAEE9QEAAAQUAAAAxdRBb5swFAfwO5/iqbskosbQJc2yU9pCpWhTGpWuPU4GPxpPxkbmkYRv
P6ettMsuVS31wsMS/Pgj2X/GGPBHq4cWe54LErx4KvkTVj8UvY3rQWnJ71Gj6JFrMdqBGGFPzGE/
aOq5ajvrCCU/fK352kg8osyvWefUXhCyytlDr8wzV7JqRE3Wjb9th2bJ8Nhh7V9M6EhRHMefGMUv
BqFfgqxWwLLzixTi7HwOq1UUf9muc/i1uS/K7d2mXD8WwKC2bSK6TmPymu00bqwhNJTkuEdtu9bf
w6RTEi4vZ4t0GsW3V+uf3+FBtSjBZ4eDUOTjQGMdGEuqGXNrEMhChVALrVFGELHtVVnCjV+enj3l
nUzhoGgHe3S9sgaEex5evsYy6Hd20BJo5/8VHsYOC+esS97HpMk8CJSGUUKlSb4FcZZpusiWy4v5
bDFL/QyCbsQmiLM2jTKKxjAbIah21lh7FkQyg9ZBoEboHoNItvrjyywkNemxtkZOg5q0Uy4Qmf07
lr68Xq0PHaTsg9zgC99vV1+u/3N8jxd3t2/Xv1BLAwQUAAIACAAtQ5VKkO4IK7oAAAA2BQAARQAc
AGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45
LWV4cGVjdGVkLnR4dFVUCQADZST6WGUk+lh1eAsAAQT1AQAABBQAAACt07EOgkAQBNCer9hQQSE5
DAQpjbGwISb4AwgLnDl3yXFI+HtJLGxsDFtN9zLFjHc9liWcKmM0dcADUhDCrF0PL7SjZoLKdtMT
ycEuhrHnyTTgessz3JYBz9ayjcD7Q1FRKuEoEUSoS3SQYHKlsjjP92mSJWpNCbOoCgnmQq0m7RaR
BUhifsvsS0A0GSPhtJUZUQLi+wNrJygFI9ZMTShJul5bGTH+XpHYfagt74m3aRM1uK4Um1+M9wZQ
SwMEFAACAAgALUOVSg1UGeXMCAAAayoAAEkAHABpbXBvcnRlZC93M2MvSW5kZXhlZERCLXByaXZh
dGUtYnJvd3NpbmcvaWRiZmFjdG9yeV9vcGVuOS1wcmV0dHktZGlmZi5odG1sVVQJAANlJPpYZST6
WHV4CwABBPUBAAAEFAAAAMVaa3OjOBb9nl9BJbWT7qkAdmwnfqSz1R07tamZzXRNemc+TgkQQR2B
GEnEdu/sf98rJDBgcNJVu6RTHUDPe+7zSJWrSMb0+ugqwiiAR4wlsvwIcYHlh9NMhvb0FJqF3FJ8
fTSnJHk6s+bPRBCJA+vfRxb8k3gj7QD7jCNJWDK3EpbgRd7lMR5gbntMShbPrWG6sQJ4x8Hi6D9H
ejmziM8o43PrZDCa5X3OLaF4ScLQ9HvIf3rkLEsCuxgaTtVPdSO9g2CUBNZJEAS6L2SJtEMUE7qd
WzFLmEiRbwSMEX8kIPIQx9ZAN6UMwOU4OKaA6BnnAkXDhqSj0ahlfYESYQvMSVjpFOQbzveobmpT
HMq5NXAmRXtAREoRLEIS0IyRcE0CGcHkweBvRj4UBCR5LGdq2Yxp1FvdOkZckkQglCyHR+wZ8wai
yWSy6FI2xloNjrLJz7CXMJNDyhDA4OQxknXLqVE3AB8BlmIrBqonEiAOGpAl8ii2fUxpDaWdr1vT
0joCdHZuQ+Vqa47SnWQP2Fe263SafHLdZZruYny20Ds41CDd6B1WmxTMC+sDNHxmOerRRNgpniAB
9rbqt5WL+oky/+kz4tIBqPOQcCFtPyI06FSs2u4B5p8dWozjGEx79sJ+Zo9C/drhbE8NqbndpPA6
8BZJfERtRMkjxIZkLbA4Vp7+D5QEFBfqMOsoFarvCGuD7vzZz7hQplFiNyMQeWCdrLAY7Fk6jg6e
XLxDUtT8fN8dHjneLhqO6UxespdWseVI9qKanZCzuKFskx/VHkrr91nsYQ7ehKvepVsLwffTqPHa
2ayWAItwaUuDRSSPx+PWdFO1fplj1EITHQI6DMqEb/zAuGebi2hxa+40MgmrAjyH2JpwdJHoVMuB
JJVyFZ1KTKPAIpsYrymA1GIVJtk6WvMu0Gf+CTg4Rk+2atACkRg94ppl5tZ5qXCPIqVFNdCH1AAy
gCjmzWri3lllOp515t4Qh7sEoNwKVizLYyWaW6YGYVCfCsYW3cNneLY4VNPLlUyWqcphoqK7XAfB
3gJWgGn3DDx7URr3R+shS1PGJVRabjwZlBrHOJHC+tGF/VAmI6b1rauxIjPg9RL81C8slU/Ix3TU
/3KMEgaBS+SDi3R2UTi2SjeI0ptCgtbR57qWxWhjN8p7DLzANJ0PyrrT3Br0fnCfMrLLkK5t0yan
w1Ksy6a9xt4TkbbkKuy0JrTglnMuFhUYYwP6REgkM/Ep86CGl/XQUdHTKo6aIhmjHuL1/mLrkOI8
QncdMftWtpbJaaTj2PAo9VqwBfXeTQm7MsdBKrdzi5BssF7H5ONBHZKDcg6iw2y/iq8J5ALecLVy
zW82SQK8gSR1ANquEFZEaMNlklGtvE1NFkuUmCZgW0sT7OexzYuCXuwEHWonLoqQ/sqFNe9lBTOf
pcAlM6ttTUKOYi1hI07qNKISIzcdmXZfN1vgmmxtaj2mQByBM7+iMF3MbnfuZWpyR2euiHpfSSOD
fXpcJ8dmDa2+fR/upARBkWf1Nh+LpFAcdQbV3i9FjWycSS4ui4S2L+aBIKmcdkSMNJev5tyEcWhe
dGQZg19RMNG2ucZRxPWgbQhFHqZzFEKEne1N1+35InlBTgDqsfWXdbw4KgtxpXw3Z1MEDJ2Fttym
uHWp406JzMDGETfCNE+QJRlFiox21KiTGAtREI9OPbeZpRIdD3mifk0phBIDhOiZsEzclC1AZr/h
5KZSLNvqfEE5miWmWlxULgevzT2hyO3m23iiSSKjoga+ShrjGsBxsFQxUSsXhvZ1kL5qnfUyiKqk
mneK+h6Q53nIfKNDlkmVL6rh59EsrySmC/wlBFmggg0LINVima8CHOZLhPVOrqm0jyC/wiCZJaHP
06ONqwnrmSCVk+U/jU+AsB5nazA4MIEIwVxDioh0FAkqcYwvDIsvqYj5LrKDIrLq/6BeRIsrnSbH
j0kApywNTBlIFIfvlooCPIwJ9Ay6Bw3gRl2pnvT2Sp09dEaaMu0uP4rq32KDk+VyWQnpk+nt8nZy
25qfgFy2e/FqtWqTeo7jFDJUzfiGpjVGOvAKktYifzWbDqYmb/kUI/5HTg+Ko4BqyY9NkRpy5Zpb
tyvhc5KCTbn/4TiSMhVz10Vf0cZ5ZOwRJqVEKNfN21xKPOF+/TPDfOsOnbFzbj4coJbOV3F8Devm
611b9ZV9FmBb2RCvYdzfwdLKmB/G08oUEMpcFHos2MID4gHkRkJ8OC1OAuq+MBpeu7+BPSFnuUsk
kbv6/cH9HXs/EWkenzJCA/dXqLtIYBc8BdRpSwwZFo7vGZXCJbHyYBy465Hv3imugYPlJzvl5BnU
a+f+Dgp2SeCFQGUY3/6hOOzMho8MUUduJEg7rAtZuSM63e/Jz+5d7epMb4H7NfrVacaqXwSZQZBi
kmJUfg2w4xan1z8knkgXoFgYdF0bCiFfHThsHQNl+/T65PPd0vrX/a+rh8+/3D/c/baybHX0cVCa
UuxoPavHjU4bzhI/Y8rSPMW9SyFQLi7Gl4P3ZgOwLcDqF9x5N7jbj3c/z60vJAZWBr5hrRFkCogn
dcxLmCThdgmZRSVIDxIjxDIOmkDyRxVOJeZOr033PujXeYKI4Lj1sjO8qKvhK9Q06lZTr5j1of3l
ANiNOwj9/BXQD7hSjv/zx4cH6wbMr3xDxf+791DrZGSZ/GVBXctyj7eHYDOW0QAqJOQO6wvQuBXn
jDvW90XAK9GN+kUHpLlffONe8Q36BTfpF1zftrvoGd60X3iXvcKbDQaXw9nsfDK+HA/g2S/Waa9Y
79F9v/BmvcK7S0KSqCuIXjEOB/2WijdCOewV5Q9/ZkwuQsb0S89Y+6U2SUZpzwD7ZTchogL3jLBf
fsO8r3As7Rni5C0gvhPYZ0nwvmesF2+CVUaE9w61X/oz3JFXOJdrjP8vZNO3JHbD3mD2S3qyJMBA
CHDQF77z/wXfefHi460v7sYHLu5Wv9y+4a3b5Psk+54rpcYjvyW+cvXfmP4XUEsDBBQAAgAIAC1D
lUqjq8XnXAAAAF4AAABDABwAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5n
L2lkYmZhY3Rvcnlfb3Blbjktc3RkZXJyLnR4dFVUCQADZST6WGUk+lh1eAsAAQT1AQAABBQAAAAL
T8wsUcjPU8jLL8lMq3TJz0tVKMnMTU1RyC8t0VEoKMpPTi0uVkjOz9VLLCjISdULT03yziwBUc75
eSWpeSV6LqllqTn5BblAtkJBZoqCrYKZmYm5gbKrvxsXAFBLAwQKAAAAAAD9QpVKAAAAAAAAAAAA
AAAAIAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQJAAMNJPpYMyb6WHV4CwAB
BPUBAAAEFAAAAFBLAwQKAAAAAAAIQ5VKAAAAAAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL1VUCQADICT6WDMm+lh1eAsAAQT1AQAABBQAAABQSwME
FAACAAgA+EKVSnX8Bk5rAAAAegAAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9hYm9ydC1pbi1pbml0aWFsLXVwZ3JhZGVuZWVkZWQtYWN0dWFsLnR4dFVUCQAD
BCT6WAQk+lh1eAsAAQT1AQAABBQAAAANyDEOwjAMBdDdp/gjSAxcgLFSGWgllB7AbawSERxku5yf
TE96NLKpuGMwa4ZTuj+GeUnnCz59eRfcoEetRNOcnsuEJB6IFwdYwWuzQNEe0ilRuOL47sZZVCRL
hks4fmJemmLl7Y1ouILoD1BLAwQUAAIACAD4QpVKTa1dHvUAAAARAgAAUQAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5l
ZWRlZC1kaWZmLnR4dFVUCQADBCT6WAUk+lh1eAsAAQT1AQAABBQAAADNkMFqwzAQRO/+ij22yKoa
Qo8FJ8TQUJqU2GnOa2ubisqSkVaN+/cVJpfeeygMLAzDm2GllKDevE0DRbVBRlWfGnWi7tnw9ayT
sVodyBJGUha/fWLJFFkGislyVGYYfWDS6rLs1YU6OVrkdx+GORbV1mmaSG/WCrsclMZlGTZoZRrP
ATU5Ik1a0jRSn0F3PHEhhPhH07DnhHYeVlUgF+USxKJ8gKoqoJCvq6aBNhOBP5ABHcw4MC4bBFck
/EJCJI7wRSEa76DD/hPYwz0U4gmDoxihDsEHuGm3L/X+2N6WkD8R8UzwCC5Zm4vFbt8ejru/qy5+
AFBLAwQUAAIACAD4QpVK4gbLVEkAAABPAAAAVQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRpYWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50
eHRVVAkAAwQk+lgEJPpYdXgLAAEE9QEAAAQUAAAADcjRCYAwDAXA/07xRnAFNxDqAql9aKik0kTn
t18Hl7Y1Z+z0QFwSEIOUPgJqMzjRULnxPueQSiMrK5zh+Dhcu6HI0RAdC1L6AVBLAwQUAAIACAD5
QpVKCq1rAxYIAADlGwAAWQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
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
D5LffUwwoFRBOQJ/AU0AzmYFuTQnNdwhSR5BndNgFquNAumnXaGDb0bHuyPmLj/Wr+/4SJZQdOe9
KfqCgzrfhsw3VOBbP8N8FdiWGseLKZgYxhedWRD8b88BAj9euBFwD4jhH6FIAdr0bDPs5v7HOtur
25s6B/P2qn76DtV/X6dydb1Hf7hHLn769vERPYFa8G46ACZByyZGWInToBeQE86hdXdFuBuiQcsg
LWgz1AGdTt4SuRgy+UWn8glyK95yV9fgkPPetrabtNfUe8zI3+ETa2og18V3WICh9JtpAgsFLXQv
RNDkYQP94en7H+5//OXpjydhr61twh3RDQqadRM0GHONrwn6/1agz95h/dn/SaB/fdydjWv+6cen
n3/5hJ4gqININjVObWokl/zfG4ddO35FHc//N97tPQw/A9+Z3+79G1BLAwQUAAIACAAIQ5VKSMFw
FXoAAAAdAQAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Jp
bmRpbmdzLWluamVjdC1rZXktYWN0dWFsLnR4dFVUCQADICT6WCAk+lh1eAsAAQT1AQAABBQAAADF
zDsKAjEURuE+q/hLBbdgOaCFCBIXEGcuM8FMbrgPIbt3Ciuxtz0HvnBKUkkVgwgLdvF8Ga73uD9g
3WqaCUdULyWEz8GNzKXmOuNJXWEMHSU3gy7sZcKjt7R5TdjYeiMomZEoIqnB8koT2O2H90rF6T/i
uKRcv73wBlBLAwQUAAIACAAIQ5VK++8eNw4BAAAUAwAARgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpbmRpbmdzLWluamVjdC1rZXktZGlmZi50eHRVVAkAAyAk
+lggJPpYdXgLAAEE9QEAAAQUAAAAxVHBSgMxEL3vV8xR2Y2hiHgS1tIFi4jSrvac3YxtNJuEzMR2
/95Qe1IvFtHTDLx5j/feCCFAPnmbBiQ5U6xks1rKFXa3hg9jmozVcoEWFaG0avSJBSOxiEjJMkkz
BB8Ztdye93KLnQhW8bOPw/6M5Nxp3KGeTWVnnDZuTcK4F+xZvOIocBfyivqMd1yUZfnfflTPSdm9
m7oGMakuoJxUl1DXBRTi4Xq5hAVyii4TIRMI2AP10QQG2vhkNXRjUEQQomfPY0AgZMZIX/lvyib8
G4V+o4yDorxR0WFGmhh9hJN2ftfcP7anFeTKSa0RrsAla3PY8oAdn7fNfQObATXkL30n+OMCflHy
o5HPgsU7UEsDBBQAAgAIAAhDlUpvUmONTwAAAMEAAABKABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0LWtleS1leHBlY3RlZC50eHRVVAkA
AyAk+lggJPpYdXgLAAEE9QEAAAQUAAAAvczRDYAgDAXA/07xVnEDoxMgNkIktGmLCdv77wAOcEfr
su/YOIb12i/cPB0h8GxVA15ktBPH1OQONQmJqQznCDYHffiT2uBfglxS7SB6AVBLAwQUAAIACAAI
Q5VKLUENPwsIAACDHgAATgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2JpbmRpbmdzLWluamVjdC1rZXktcHJldHR5LWRpZmYuaHRtbFVUCQADICT6WCAk+lh1eAsA
AQT1AQAABBQAAADNWWtz47YV/e5fwbGndZMxScmSHEtau5P1Y5JJ02Zit/nYAUlQxBokWAC0pG37
33vxokiKlLydTbLZyUoiXvdx7jkX3HeZzOntybsMowQ+ciyRF2eICyxvziuZ+tfn8FjILcW3JwtK
ipcLb/FKBJE48f594sF/Em+kn+CYcSQJKxZewQq81EMR4wnmfsSkZPnCG5cbL4HvOFme/PfEbGc3
iRllfOGdjSZzPRY8EorvSZra8QjFLyvOqiLx3dT0Wv1pHmROEIySxDtLksSMpayQfopyQrcLL2cF
EyWKrYE54isCJo9x7o3Mo5KBc9oPjil49Iq1Qdm4Y+lkMunZX6BC+AJzkjYGBfmI9RnNQ32KU7nw
RsHMPU+IKCmCTUgBkbEWrkkiM1g8Gv3B2oeShBSreqWxzaZGfWtnx5pLigyMkvX0jL1i3vFoNpst
h4KNsQlDoHLyFzhL2MUpZQjc4GSVyXbm1Kw7cB+BL+4oBqEnElwcdVyWKKLYjzGlLS99vW8rSusM
vPN1DhXU1hyVO8uecKxyNwgavbgNmS5cLGZd3AFQo3JjTnjYlJBe2B9cwxdeoD66Hg6aJ0iCo636
29OmvqcsfvkJcRmAq4uUcCH9OCM0GQysOu4J1l8c2ozjHFJ7ceQ8e4YLvwGcH6kpLdjNHOoALZLE
iPqIkhXUhmQ9bnGskP4dKhKKXTjsPiqE6neGTUJ3eI4rLlRqlNndCkQRZKdyGYMza+CY4tHmHbKi
hfN9OKw43i47wAxmx/JlQuwFkh0Nc5BylneCbflRnaGi/tcqjzAHNOEmusxTZ/g+jVrUzuctAnTl
0keDrpKn02kv3TSzX3OM2mhmSsCUQU34FgcWnn0QMea24DSxhNVwXLvYSzhGJAbDcoCkSq6qU5lp
A+jYxKLGOdKqVVjkm2rVQxBP/RP84Bi9+OqBMYjkaIVbmVl4l3XAI4pUFNXEGKgBbABT7Dev6/cu
K9fT+SD3pjjdEYCCFexYy2OjmnuWJmnSXgrJFsPT53i+PKTp9U6WZZp22KoYlusk2dvASzAdXoHn
R60Jv/aeqrJkXILScotkCGqe40IK7+sQzkOVzJiJt1Fj1cwA6iXgNHaZ0gv0nAH9r+coYxBAQk92
dHblgK3oBlF65yzonX1ptCxHG78j7zn0BfbR5ajWne7REPeD59SVXZd065g+OwNWYiOb/hpHL0T6
kquyM5EwhnvBpVg23Jhap8+ERLIS76sINLzWw0BVT685aolkjEaIt8fd0SnFukJ3Azn7WD+tyWli
6tj2Ueqr6xbU9+GWcIg5DrZyO1ikZIPNPpaPR22XAqR7EFNm+yq+JsAFvAO1es+PPikSvAGSOuDa
TggbJvT5ZcmoJW/XlsUKZaYt2F5pgvMitjlq6NXO0LEBsRMh80sba7/XCmZ/1gbXnVnraJJylBsL
O3XSbiMaNXI3wLT7sdlCr8nWVusxhcYReuY3CNPV/HEHL6vJA4M6EO2xuo1M9tvjdnNs9zDh28fw
YEuQOJ41x3zrSMFddUbN0WenkZ07ydU3jtD2zTxQJI3bjsiR6eWbnFswDo+XAyxj/VctmOg73Pjh
6nrUN4WiCNMFSqHCLvaWm+d6Ey3IBbh66v3HO12e1ELckO/uaoqgQ2epL7cl7t3qdNAiO7Fzxc0w
1QRZN6NINaMDGnWWYyFc4zEY5760NKrjSRP1W6QQJAYaolfCKnFXP4Fm9iMu7hpi2afzruXoSkxT
XBSXA2o1Ehy3298WiZZEJk4D32SNhQb0OFiqmmjJhW37Bpq+ps5GFVRV0eQdp+8JeV2kLLYxZJVU
fNEsv4hWWknsEOAlBVtAwcbOkaZY6l2gh3nOsDkptEq7AvuVD5J5EsYiM9tCTXivBClOlj9aTICx
EWdrSDh0AhmCtbYpIjJQTVDtx/TKdvF1K2J/O3ZQjaz6f9QWUfdKp9vj5ySBW5ZxTCVIuMt3j6JA
H8YEeoXYQwRwR1eaN709qfPHwcS0TLuXH079e3Jwdn9/3yjps+vH+8fZYy8/QXPZj+KHh4c+qxc4
L4GhWsm3bVpnZgBfwdJW5T/Mr0fXlrdiihH/p24P3FVAPdHXpkxNeRfat27vRMxJCTnl8c1pJmUp
FmGIPqBNsGJsBYtKIhR09bOQkkiEH/5VYb4Nx8E0uLQ/Amgtgw/i9Bb21fvdeu2dY5ZgX+UQr2He
nyHTKpk30+vGEjDKviiMWLKFD6gHsBsJcXPubgLqfWE2vg3/AfkEzgrvkUThwy9P4S84+oFI+/G+
IjQJfwbdRQKHgBQIpy8xMCxc3ysqRUhyhWCchOtJHAJt+IAnCU1+rqeJ8HvVfuDk/n0YQScCoRbQ
kXwAGfdf8NaH5qZCNJAbCSaP25Y2XhSd74/oC/zQc3Wx90QGnXbSmaJuNV7rhZB+cQoi62boVwG7
/uL8dgxxhfHb1iyo+ONzQLXPb+0I5ATMcB9NkxoQU7P1sJ37yT6b+9pRnxvzDrp++QbX/1hEolwO
+//Tt09P3s9YVrxQhQZZF4ovHaYzVlHg420JS4DnmWRKuBWrSkWT3eh9Frcmn9+tVwSK8rs7Nv0d
HYszMNU7ivY2XkEnjoPVTjro+QGv2BsgrT3/DvEClNp74Jxx70/P3//48Le/P3914bme7sYrKkp/
04L+XCQ2e0NoJl8Iif32oJgOe25R8P8z2DPIoCdJDtdWEM9PK/vP6uTsU5z8ZD77Yty8+lXcNOz2
xTj5za9Tqp0P3T1CY6b/7fl/UEsDBAoAAAAAAO5ClUoAAAAAAAAAAAAAAAAtABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvVVQJAAPwI/pYMyb6WHV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAAAKQ5VKAAAAAAAAAAAAAAAAOQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L1VUCQADIyT6WDMm+lh1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgA7kKVSo80GnBEAAAAoAkAAFwAHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9mYWlsdXJlc19SU0EtT0FFUC53
b3JrZXItc3RkZXJyLnR4dFVUCQAD8CP6WPAj+lh1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/N
Sy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIeVTuqdlTtqNpRtaNqR9WOqh1VS3O1AFBL
AwQUAAIACADxQpVKVALJsjYAAADAAgAAZQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81Lndv
cmtlci1zdGRlcnIudHh0VVQJAAP1I/pY9SP6WHV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81L
LUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2kKkFAFBLAwQUAAIACAAIQ5VKjzQa
cEQAAACgCQAAWgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJ
L2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBLU9BRVAtc3RkZXJyLnR4dFVUCQADICT6WCAk
+lh1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1
MTYw4XIeVTuqdlTtqNpRtaNqR9WOqh1VS3O1AFBLAwQUAAIACAAKQ5VKVALJsjYAAADAAgAAYwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5
L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUtc3RkZXJyLnR4dFVUCQADIyT6WCMk+lh1
eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw
4XIeVTuqdpCpBQBQSwMECgAAAAAA/UKVSgAAAAAAAAAAAAAAACYAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL1VUCQADDST6WDMm+lh1eAsAAQT1AQAABBQAAABQSwMECgAA
AAAAD0OVSgAAAAAAAAAAAAAAACoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9VVAkAAy4k+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAA9DlUoAAAAAAAAA
AAAAAAAwABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMv
VVQJAAMuJPpYMyb6WHV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAAPQ5VKzW7KwJEAAACdAAAARwAc
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtbm8t
Y29ycy1zdGRlcnIudHh0VVQJAAMuJPpYLiT6WHV4CwABBPUBAAAEFAAAAB3LuwrCMBQA0N2vuKOC
jWlS+lpbRbAUMRUHcYjtVULzKGnQ37c4nuEwGmcRTSIWA81LlpSckixh0DtD5DRpJDd8nlQgLYav
86Oyb1LjB7WbDNpwT7N0SYwXPKYPaMX10gicZ+Xs7o/KWYt9WAzHrjuDdnKAl1QaB1iP1UEEj9Ls
vXe+dkYqK0SzhajIY75Z/QBQSwMEFAACAAgAD0OVSlh9lnuRAAAAnQAAAE4AHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtd29ya2Vy
LXN0ZGVyci50eHRVVAkAAy4k+lguJPpYdXgLAAEE9QEAAAQUAAAAHcu7CsIwFADQ3a+4o4KNaVL6
WltFsBQxFQdxiO1VQvMoadDftzie4TAaZxFNIhYDzUuWlJySNCmgd4bIadJIbvg8qUBaDF/nR2Xf
pMYPajcZtOGeZumSGC94TB/QiuulETjPytndH5WzFvuwGI5ddwbt5AAvqTQOsB6rgwgepdl773zt
jFRWiGYLUZHHfLP6AVBLAwQKAAAAAAAMQ5VKAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvVVQJAAMnJPpYMyb6WHV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACAD9QpVKJ5EDvq0AAACuAwAASAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy5hbnktc3RkZXJyLnR4dFVUCQADDST6
WA0k+lh1eAsAAQT1AQAABBQAAADN0cEKgjAcgPF7T7FjQa5tLqdetQgSiVZ0iA5L/8VQN5mjXr/o
3APs+N1+8DFCRUR4xCgiac7ifC0wJQQ1dsBqHHvAF7jvtcc1+Ld1nTZPXMILejsOYPw1SThlOaNx
IrIbquX5WEmYJm3N6heFNQYa/220O50OqLeqRQ+le2jRvCu20jtQw8Y560o7KG2krJYoylIaL2bs
H46LgHEZDRfH0jRcXMyTcHGcBLL1A1BLAwQUAAIACAD9QpVKjkW/Nq4AAACuAwAATwAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy5hbnku
d29ya2VyLXN0ZGVyci50eHRVVAkAAw4k+lgOJPpYdXgLAAEE9QEAAAQUAAAAzdC7CsIwGEDh3afI
qGBjLrVpuraKYCliFAdxiO2vBNukxKCvrzj7ABnP9nEYoSIhacIoInnBeLEUWKQpat2A9Tj2gE9w
3ZqAGwhv5x/G3nEFL+jdOIAN5yxLKSsY5ZmQF9So475W8HwaZxe/KJ210IZvo83hsEO90x26adND
h6aPcq2CBz2svHe+coM2Vql6jhKZUz6bsH84yePF5VzGi5PLaM/lmBARMU6QOHAfUEsDBBQAAgAI
AABDlUqFoGChmgAAADoBAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9hcGkvY29ycy9jb3JzLW5vLXByZWZsaWdodC5hbnktc3RkZXJyLnR4dFVUCQADDyT6WA8k+lh1
eAsAAQT1AQAABBQAAADNzrsKwjAUANDdr8ioYGMefa+tIliKGMVBHGJ7ldA8Shr09xVnP8DxbIcR
mkUkjhhFJC8ZL5MCxyRDnTNYjqMGfIbbTgXcQng5Pyj7wDU8QbvRgA2XNI0pKxnlaVZcUStOh0bA
NClnV19UzlrowsdoezzukXayR3epNPRoPlQbETxIs/be+doZqawQzRJFRU75YsZ+5RL+H7k3UEsD
BBQAAgAIAABDlUoZhL5/mwAAADoBAABWABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLW5vLXByZWZsaWdodC5hbnkud29ya2VyLXN0ZGVyci50eHRV
VAkAAw8k+lgPJPpYdXgLAAEE9QEAAAQUAAAAzc49DoIwGADQ3VN01EQqLdgCK2hMJMRYjINxqPBp
GvpDSqPX1zh7AMe3PRoTHsVpRAmKs4ImxTrHnHHUOYPlOGrAZ7jtVcANhJfzg7IPXMETtBsN2HBh
LCW0oCRhPL+iRpyOtYBpUs6uviidtdCFj9GubQ9IO9mju1QaejQfyq0IHqTZeO985YxUVoh6iaI8
I8liRn/kMvInuTdQSwMEFAACAAgAAEOVSlfl1gBHAgAARQwAAEkAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRlcnIudHh0
VVQJAAMQJPpYECT6WHV4CwABBPUBAAAEFAAAAO2WXWvbMBSG7/crdNOywWTr+yMQRkjSdqxrytyy
izGKLMmJqWMZR13Xfz8lZYWUwVpKWUqHfWHZ5ryvH17rnPHspJgdT8HnaVGMDqcDMOvred2CRYzd
IM+bYE2zCKs4UAohUK9AGyIwTROuvQPlDRhZ61crOA5t7EMDR+sn8LZG9mZ8v/iBj3YBRqcfgTXt
ulITjPuthYnMUDrwRiuv1u/mpqvz3q/CVZ908q73VVPPFzHrbj7EcOnbobSGIE84tF4ryFBFoOI2
XXHvNZXIamz2l+bnhZn7IdoPG2vDteQeHe2Rg3TeCac7a+n9zfddLH1cBLcaHk7PsufF8u+Yb2nh
hzJ3iiljsYNeWAIZMxyWJRFQKGkkFlxIZ//C/E74ljl+Rcy3cv5g5pYw4V3lIHZSQyY4gopgAzn2
0iGiGNf4cTl/duYEYQkRgwQDpAaEDVDSpgzYsMxM1zU+++rLT3XMTny8Dv1l3c6zif/hm9AtfRu/
CcEwGRBMhdTfwUlx/uW4SGp1aPPNIqm23sa0BkdnZ6e3kCtTN8nb28vxQRF7b5bTvg/9JCxN3RbF
8XsAtcL03Z/Nabm75gjdZXOK74a58UvvZ5XCrqJCQEqdTf0MU6gc1VAjjgzTApnH/uf3+9nprHgl
m+vDhwiiNPLcQCJMCZktFTSEeVilqGNSVkYh+jToR9PRJHtxXJDk1mqVkGifwkhwajqlwlCWMvUP
S4yg+olhPP+fxW3muJQlc0SngZZXKYtpKzCVpml/k0hzjbQSfMcG2l9QSwMEFAACAAgAAEOVSuTE
cXGiAAAAdAIAAFAAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9j
b3JzL2NvcnMtb3JpZ2luLmFueS53b3JrZXItc3RkZXJyLnR4dFVUCQADECT6WBAk+lh1eAsAAQT1
AQAABBQAAADNzrsKwjAUANDdr8ioYGMeJX2srSJYihjFQRxie5XQJilp0N+3OPsBHc92GKFJROKI
UUTSnMU5IVhMaJzBahh6wFd4HHTANYSP8522L1zCG3o3GLDhJkRMWc4oF0l2R7W8nCoJ46id3fxQ
OGuhCZPR/nw+ot6pFj2V7qFFy67YyeBBma33zpfOKG2lrNYoylLKVwv2L5dm880lXMw4l/J55L5Q
SwMEFAACAAgAAUOVSrrYAZDbAgAAmBIAAFMAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LXN0YXR1cy5hbnktc3RkZXJyLnR4dFVU
CQADEiT6WBIk+lh1eAsAAQT1AQAABBQAAADNl89qHDkQh+/7FH3yrTz6U5JKBhNCcJaF3U3AD2BK
qlJsMvEMnjGbvH1qsmzOC4Ig+tLdNI0+SvrqV+8+/H3/4c+77a+7+/u3v9/dbO/13B+3tx//2Do/
Px/O2/7Asj2ez8eb3c6Hcu3s8jdEzu3G5dsdH592L3o6vL50Pe2OLzr2T58ez9fHb2/Oh8/6fEtd
A6pT8L0GwKEKzbkGqecWxQk1kqsv/PWBP+mtu+L9/vDPw6Oy6Mvp9iuMg/0Yfv736ufdw+nM59fT
bXTuevv439vN1nI8PJ90ezptF4DTa7eFncbr/rd3v4C2KesIoUMhKYCpVOBeGIQKlSYhUe1ztH4h
2tgK5todeK8VkIKDOnQAu8iFQ8ZWJ2sbFqJldIMSKhQWDyhWVuqMkEIevgoG73mONi5EG0KolWRc
yiqAWQRqoQQlcdIoPKrGOVpciBZJEL0rUCmbpbQx1FYHuOhy4VR77GmONq1EG6rjQQOGuxTYlQIk
2SyllZxEHFnCHG1eiNY5zxqz6ZhNVVjYahvskbPjMIY1oebmaMtKtBIzt9igNEXANjow9g46MEbf
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
AAAiRJVKAAAAAAAAAAAAAAAADwAcAHJldHJpZXMvd2VicnRjL1VUCQADLyb6WDMm+lh1eAsAAQT1
AQAABBQAAABQSwMECgAAAAAAIkSVSgAAAAAAAAAAAAAAABsAHAByZXRyaWVzL3dlYnJ0Yy9kYXRh
Y2hhbm5lbC9VVAkAAy8m+lgzJvpYdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIACJElUpiqwoIbQAA
AKMAAABAABwAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJl
c2hvbGQtYWN0dWFsLnR4dFVUCQADLyb6WC8m+lh1eAsAAQT1AQAABBQAAABlyksKwjAUBdB5VnH3
4EDorGhw0lohK4jNTROIL5AP3b6IiIOOz7ksd7NMGrM2ZrzpASkKcT4NWIMVYUKlOMSKFkreo2xK
PUZjcKW3PTU8u/csH2UNOTl8ebJl4xEL7Rr4SzNd7K/jktz+U70BUEsDBBQAAgAIACJElUqLilAF
zwAAAKgBAAA+ABwAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dU
aHJlc2hvbGQtZGlmZi50eHRVVAkAAy8m+lgvJvpYdXgLAAEE9QEAAAQUAAAAxY/BTsMwEETv/oq9
p2ZVtRJSTwltxKGFIozo2Yk3xNLWRvZaKX9PoP0CLpzmMHqjN1prwPfI5UwZd1YstieDJ+r2Xm7x
UDw7fCUmmwnZfsUiWiiLTpQLS8ZEkvzMT9Ql6dHNM/1oQyDGrgwDJXLNOZYghzi9jTM1RnaaLp/U
C7k7uYiqquq/PGwvxfKvRV2DXi7WUC0XK6hrpbfHZ3M8tPDUGtM8thtgHwjuVxu4DUOm4MBnkDHF
yYcPBX9hFLw0xsCOBjs/gavtT391BPUNUEsDBBQAAgAIACJElUqrucb0cwAAANYAAABCABwAcmV0
cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZXhwZWN0
ZWQudHh0VVQJAAMvJvpYLyb6WHV4CwABBPUBAAAEFAAAAJXLOwrDMBBF0V6rmD2kCLgzjkhjx4FZ
gWw9WQJlBPrg7YcQTApXqe+5w/zgedQ0aeb+rjuKQUDXS0erNyKIVCCWQqHqc9qDbGr4f1HPnplu
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
lkOVSgAAAAAAAAAAAAAAABMAHAB3ZWJydGMvZGF0YWNoYW5uZWwvVVQJAAMsJfpYMyb6WHV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACACWQ5VKYqsKCG0AAACjAAAAOAAcAHdlYnJ0Yy9kYXRhY2hhbm5l
bC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZC1hY3R1YWwudHh0VVQJAAMrJfpYKyX6WHV4CwAB
BPUBAAAEFAAAAGXKSwrCMBQF0HlWcffgQOisaHDSWiEriM1NE4gvkA/dvoiIg47PuSx3s0waszZm
vOkBKQpxPg1YgxVhQqU4xIoWSt6jbEo9RmNwpbc9NTy79ywfZQ05OXx5smXjEQvtGvhLM13sr+OS
3P5TvQFQSwMEFAACAAgAlkOVSn/Ph4fIAAAAmAEAADYAHAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZGlmZi50eHRVVAkAAysl+lgsJfpYdXgLAAEE9QEAAAQU
AAAAvU+9bsIwEN79FLcH94RAqsSUFCIGoFR1VWYnvhBLh43is0LfvmnhCTp0+obvX2sN+Bk5Xyjh
xorF+mTwRM3OywNesmeH78RkEyHbr5hFCyXRA6XMknCkZpAW3WRvexsCMTa562ggV11iDrKP40c/
qfvITtPtSq2Qe5KbqKIo/rvftpIt/7aXJej5bAnFfLaAslR6fXw1x30Nh9qYaluvgH0geF6s4BEM
iYIDn0D6IY4+nBX8xaPgrTIGNtTZ6QHc1/7w942gvgFQSwMEFAACAAgAlkOVSqu5xvRzAAAA1gAA
ADoAHAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZXhwZWN0
ZWQudHh0VVQJAAMrJfpYKyX6WHV4CwABBPUBAAAEFAAAAJXLOwrDMBBF0V6rmD2kCLgzjkhjx4FZ
gWw9WQJlBPrg7YcQTApXqe+5w/zgedQ0aeb+rjuKQUDXS0erNyKIVCCWQqHqc9qDbGr4f1HPnplu
cKbFSktzDvlTUXyKlr55NHnDOWaY1eNAE2xor7OSVH9SvQFQSwMEFAACAAgAlkOVSt9njtWbBwAA
nxgAAD4AHAB3ZWJydGMvZGF0YWNoYW5uZWwvYnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtcHJl
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
LmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTY2NDcwLXNhbXBsZS50eHRVVAUA
Azkk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAALQ5VKdGuAt7A/AAAY6QAAOAAYAAAAAAAB
AAAApIEGNAMAY29tLmFwcGxlLldlYktpdC5XZWJDb250ZW50LkRldmVsb3BtZW50LTY2NTg1LXNh
bXBsZS50eHRVVAUAAyYk+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACPQpVKAAAAAAAAAAAA
AAAABwAYAAAAAAAAABAA7UEodAMAY3J5cHRvL1VUBQADPiP6WHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAI9ClUoAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQWl0AwBjcnlwdG8vc3VidGxlL1VU
BQADPiP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAI9ClUol4NMILAAAACwAAAA+ABgAAAAA
AAEAAACkgbF0AwBjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktbWFsZm9ybWVkLXBhcmFt
ZXRlcnMtc3RkZXJyLnR4dFVUBQADPiP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAI9ClUow
O7ixSwAAAGgAAAA8ABgAAAAAAAEAAACkgVV1AwBjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5
LW1hbGZvcm1lZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAUAAz4j+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACOQpVKAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UEWdgMAY3J5cHRvL3dvcmtl
cnMvVVQFAAM8I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAjkKVSgAAAAAAAAAAAAAAABYA
GAAAAAAAAAAQAO1BX3YDAGNyeXB0by93b3JrZXJzL3N1YnRsZS9VVAUAAzwj+lh1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAIAAACOQpVKJeDTCCwAAAAsAAAAMQAYAAAAAAABAAAApIGvdgMAY3J5cHRv
L3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3RkZXJyLnR4dFVUBQADPCP6WHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAJJClUoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQUZ3AwBk
aXNwbGF5bGlzdHMvVVQFAANDI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkkKVSqNX/ehQ
AAAAjgAAADIAGAAAAAAAAQAAAKSBjXcDAGRpc3BsYXlsaXN0cy9leHRlbnQtaW5jbHVkZXMtdHJh
bnNmb3Jtcy1zdGRlcnIudHh0VVQFAANDI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAkkKV
SvKWldVHAAAASQAAACkAGAAAAAAAAQAAAKSBSXgDAGRpc3BsYXlsaXN0cy9sYXllci1kaXNwYXkt
bGlzdC1zdGRlcnIudHh0VVQFAANDI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAxEKVSgAA
AAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B83gDAGVkaXRpbmcvVVQFAAOfI/pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAxEKVSgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BNXkDAGVkaXRpbmcv
ZGVsZXRpbmcvVVQFAAOfI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAxEKVSnxxSH/LAQAA
ABQAACgAGAAAAAAAAQAAAKSBgHkDAGVkaXRpbmcvZGVsZXRpbmcvZGVsZXRlLWVtb2ppLXN0ZGVy
ci50eHRVVAUAA58j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACWQpVKAAAAAAAAAAAAAAAA
FAAYAAAAAAAAABAA7UGtewMAZWRpdGluZy9leGVjQ29tbWFuZC9VVAUAA0wj+lh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACWQpVK3SHD7UIAAACGAAAAQQAYAAAAAAABAAAApIH7ewMAZWRpdGlu
Zy9leGVjQ29tbWFuZC9jbGlwYm9hcmQtYWNjZXNzLXdpdGgtdXNlci1nZXN0dXJlLXN0ZGVyci50
eHRVVAUAA0wj+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiRJVKwDLNFFALAAADRQAADQAY
AAAAAAABAAAApIG4fAMAZXJyb3JfbG9nLnR4dFVUBQADLyb6WHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAMRClUoAAAAAAAAAAAAAAAAFABgAAAAAAAAAEADtQU+IAwBmYXN0L1VUBQADnyP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAKlClUoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQY6I
AwBmYXN0L2NhbnZhcy9VVAUAA20j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACpQpVKsrYu
N44AAAA0AQAAJgAYAAAAAAABAAAApIHUiAMAZmFzdC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0
ZGVyci50eHRVVAUAA20j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACqQpVKAAAAAAAAAAAA
AAAACQAYAAAAAAAAABAA7UHCiQMAZmFzdC9jc3MvVVQFAANvI/pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAqkKVStsI00I7AAAAPwAAACkAGAAAAAAAAQAAAKSBBYoDAGZhc3QvY3NzL2NvbXBh
cmUtY29udGVudC1zdHlsZS1zdGRlcnIudHh0VVQFAANvI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAuUKVSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1Bo4oDAGZhc3QvZXZlbnRzL1VUBQAD
jiP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALBClUpYKmd1OQAAAEMAAAAyABgAAAAAAAEA
AACkgemKAwBmYXN0L2V2ZW50cy9kaXNwbGF5LW5vbmUtb24tZm9jdXMtY3Jhc2gtc3RkZXJyLnR4
dFVUBQADfCP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALlClUowtW3jOQAAAEMAAAArABgA
AAAAAAEAAACkgY6LAwBmYXN0L2V2ZW50cy9tb3VzZS1mb2N1cy1pbWFnZW1hcC1zdGRlcnIudHh0
VVQFAAOOI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAsUKVSgAAAAAAAAAAAAAAAAsAGAAA
AAAAAAAQAO1BLIwDAGZhc3QvZm9ybXMvVVQFAAN9I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAr0KVSjd5jHtoAAAAawAAADsAGAAAAAAAAQAAAKSBcYwDAGZhc3QvZm9ybXMvY2hlY2tib3gt
YXBwZWFyYW5jZS1jaGFuZ2UtYnktY2hlY2tlZC1zdGRlcnIudHh0VVQFAAN5I/pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAsUKVSjswPIKrAAAA6QAAADMAGAAAAAAAAQAAAKSBTo0DAGZhc3Qv
Zm9ybXMvZm9ybS1hc3NvY2lhdGVkLWVsZW1lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADfSP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALFClUoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQWaO
AwBmYXN0L2ZyYW1lcy9VVAUAA30j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACxQpVK2wjT
QjsAAAA/AAAALwAYAAAAAAABAAAApIGsjgMAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25l
LWZvY3VzLXN0ZGVyci50eHRVVAUAA30j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC4QpVK
AAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFQjwMAZmFzdC9pbWFnZXMvVVQFAAOLI/pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAuEKVSiGPvTgyAAAAMwAAACwAGAAAAAAAAQAAAKSBlo8DAGZh
c3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQFAAOLI/pYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAtkKVSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BLpADAGZh
c3QvbG9hZGVyL1VUBQADhyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALBClUrbCNNCOwAA
AD8AAABSABgAAAAAAAEAAACkgXSQAwBmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdlLXVuc2V0LWNh
bi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQFAAN7I/pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsUKVStsI00I7AAAAPwAAAFMAGAAAAAAAAQAAAKSB
O5EDAGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQt
Y2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQFAAN9I/pYdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAtkKVStsI00I7AAAAPwAAAC0AGAAAAAAAAQAAAKSBA5IDAGZhc3QvbG9hZGVyL3Jl
bG9hZC1wb2xpY3ktZGVsZWdhdGUtc3RkZXJyLnR4dFVUBQADhyP6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAALxClUoAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQaWSAwBmYXN0L3JlZ2lvbnMv
VVQFAAOTI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAvEKVSgAAAAAAAAAAAAAAABcAGAAA
AAAAAAAQAO1B7JIDAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvVVQFAAOUI/pYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAvEKVSjkBy91AAAAAegAAADUAGAAAAAAAAQAAAKSBPZMDAGZhc3QvcmVn
aW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0VVQFAAOTI/pYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAvEKVSjkBy91AAAAAegAAAC4AGAAAAAAAAQAAAKSB7JMD
AGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLXN0ZGVyci50eHRVVAUAA5Mj+lh1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC8QpVK5IrHQzwAAAA9AAAAQAAYAAAAAAABAAAApIGU
lAMAZmFzdC9yZWdpb25zL3Njcm9sbGluZy93aGVlbC1zY3JvbGxhYmxlLXNpbmdsZS1yZWdpb24t
c3RkZXJyLnR4dFVUBQADlCP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMRClUoAAAAAAAAA
AAAAAAAKABgAAAAAAAAAEADtQUqVAwBmYXN0L3RleHQvVVQFAAOfI/pYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAxEKVSsTqVOONAQAABQoAACMAGAAAAAAAAQAAAKSBjpUDAGZhc3QvdGV4dC9l
bW9qaS1nZW5kZXItMi1zdGRlcnIudHh0VVQFAAOfI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAxEKVSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1BeJcDAGZhc3QveHNsL1VUBQADnyP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMNClUpO+yD4iAAAAOcAAAAlABgAAAAAAAEAAACkgbuX
AwBmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0VVQFAAOdI/pYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAw0KVSv2iLmSPAAAA7gAAACcAGAAAAAAAAQAAAKSBopgDAGZhc3Qv
eHNsL3hzbHQtYmFkLWltcG9ydC11cmktc3RkZXJyLnR4dFVUBQADniP6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAMNClUrPj2YOUAAAAKAAAAAkABgAAAAAAAEAAACkgZKZAwBmYXN0L3hzbC94
c2x0LWNvbnRlbnRUeXBlLXN0ZGVyci50eHRVVAUAA54j+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADEQpVKgUp3rUsAAACsAAAANAAYAAAAAAABAAAApIFAmgMAZmFzdC94c2wveHNsdC10cmFu
c2Zvcm0tdG8tZnJhZ21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUBQADnyP6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACNElUomLYbYZgIAAI4FAAARABgAAAAAAAEAAACkgfmaAwBmdWxsX3Jlc3Vs
dHMuanNvblVUBQADMSb6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMxClUoAAAAAAAAAAAAA
AAAFABgAAAAAAAAAEADtQaqdAwBodHRwL1VUBQADryP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAACNDlUoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQemdAwBodHRwL3Rlc3RzL1VUBQADUST6
WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMxClUoAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADt
QS6eAwBodHRwL3Rlc3RzL2luc3BlY3Rvci9VVAUAA68j+lh1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAADMQpVKAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UF9ngMAaHR0cC90ZXN0cy9pbnNwZWN0
b3IvbmV0d29yay9VVAUAA68j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADMQpVKMX5OWYoB
AACtBAAAQQAYAAAAAAABAAAApIHUngMAaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29yay9yZXNv
dXJjZS1zaXplcy1kaXNrLWNhY2hlLWFjdHVhbC50eHRVVAUAA68j+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADMQpVKf92RjX0BAAABBgAAPwAYAAAAAAABAAAApIHZoAMAaHR0cC90ZXN0cy9p
bnNwZWN0b3IvbmV0d29yay9yZXNvdXJjZS1zaXplcy1kaXNrLWNhY2hlLWRpZmYudHh0VVQFAAOv
I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzEKVSifcCa1QAQAAsAMAAEMAGAAAAAAAAQAA
AKSBz6IDAGh0dHAvdGVzdHMvaW5zcGVjdG9yL25ldHdvcmsvcmVzb3VyY2Utc2l6ZXMtZGlzay1j
YWNoZS1leHBlY3RlZC50eHRVVAUAA68j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADMQpVK
zLPYguwIAADuLQAARwAYAAAAAAABAAAApIGcpAMAaHR0cC90ZXN0cy9pbnNwZWN0b3IvbmV0d29y
ay9yZXNvdXJjZS1zaXplcy1kaXNrLWNhY2hlLXByZXR0eS1kaWZmLmh0bWxVVAUAA68j+lh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAAAjQ5VKAAAAAAAAAAAAAAAAEwAYAAAAAAAAABAA7UEJrgMA
aHR0cC90ZXN0cy9sb2FkaW5nL1VUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACND
lUoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQVauAwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9VVAUAA1Ek+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjQ5VK
CvU4ivMAAACoAQAAZAAYAAAAAAABAAAApIG6rgMAaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNl
TG9hZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJh
Y3Rpb24tYWN0dWFsLnR4dFVUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNDlUqz
PT1YRwEAAIgCAABiABgAAAAAAAEAAACkgUuwAwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFj
dGlvbi1kaWZmLnR4dFVUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACNDlUpGqefD
oQAAADsBAABmABgAAAAAAAEAAACkgS6yAwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRlcmFjdGlv
bi1leHBlY3RlZC50eHRVVAUAA1Ek+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjQ5VKF70g
/U4IAAAxHQAAagAYAAAAAAABAAAApIFvswMAaHR0cC90ZXN0cy9sb2FkaW5nL3Jlc291cmNlTG9h
ZFN0YXRpc3RpY3Mvbm9uLXByZXZhbGVudC1yZXNvdXJjZS13aXRob3V0LXVzZXItaW50ZXJhY3Rp
b24tcHJldHR5LWRpZmYuaHRtbFVUBQADUST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACND
lUpnSuqNWQAAAF4AAABkABgAAAAAAAEAAACkgWG8AwBodHRwL3Rlc3RzL2xvYWRpbmcvcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy9ub24tcHJldmFsZW50LXJlc291cmNlLXdpdGhvdXQtdXNlci1pbnRl
cmFjdGlvbi1zdGRlcnIudHh0VVQFAANRJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzkKV
SgAAAAAAAAAAAAAAABEAGAAAAAAAAAAQAO1BWL0DAGh0dHAvdGVzdHMvbWVkaWEvVVQFAAOzI/pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzkKVSgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1B
o70DAGh0dHAvdGVzdHMvbWVkaWEvaGxzL1VUBQADsyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAM5ClUoOesqG4gAAAHABAAA8ABgAAAAAAAEAAACkgfK9AwBodHRwL3Rlc3RzL21lZGlhL2hs
cy92aWRlby1kdXJhdGlvbi1hY2Nlc3NpYmlsaXR5LXN0ZGVyci50eHRVVAUAA7Mj+lh1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAD1QpVKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UFKvwMAaHR0
cC90ZXN0cy9taXNjL1VUBQAD/SP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPVClUoVNTWS
egAAALwAAAAqABgAAAAAAAEAAACkgZS/AwBodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0
LXN0ZGVyci50eHRVVAUAA/0j+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADTQpVKAAAAAAAA
AAAAAAAAFgAYAAAAAAAAABAA7UFywAMAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUBQADviP6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9ClUrbCNNCOwAAAD8AAAA3ABgAAAAAAAEAAACkgcLA
AwBodHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0
VVQFAAO1I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA00KVSpYRszloAAAAawAAAC0AGAAA
AAAAAQAAAKSBbsEDAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWdvYmFjazItc3RkZXJyLnR4
dFVUBQADviP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPNClUoAAAAAAAAAAAAAAAAUABgA
AAAAAAAAEADtQT3CAwBodHRwL3Rlc3RzL3NlY3VyaXR5L1VUBQAD+SP6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAPhClUoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQYvCAwBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAUAAwQk+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADUQpVK0qv8VnEAAAB0AAAAVwAYAAAAAAABAAAApIHvwgMAaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvY29ubmVjdC1zcmMtc3Rhci13ZWJzb2NrZXQt
YWxsb3dlZC1zdGRlcnIudHh0VVQFAAO/I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA1EKV
SnxY80BxAAAAdAAAAF4AGAAAAAAAAQAAAKSB8cMDAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L2RlZmF1bHQtc3JjLXN0YXItc2VjdXJlLXdlYnNvY2tldC1hbGxvd2Vk
LXN0ZGVyci50eHRVVAUAA78j+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4QpVKY6qsbIIA
AACoAAAAQAAYAAAAAAABAAAApIH6xAMAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADAyT6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAPhClUpjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgfbFAwBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMt
Mi1zdGRlcnIudHh0VVQFAAMEJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0EKVSgAAAAAA
AAAAAAAAACEAGAAAAAAAAAAQAO1BBMcDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L1VUBQADuCP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANBClUoAAAAAAAAAAAAAAAArABgA
AAAAAAAAEADtQV/HAwBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC93ZWJzb2NrZXQv
VVQFAAO4I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0EKVSpZ/YhThAAAAcAEAAFIAGAAA
AAAAAQAAAKSBxMcDAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3dlYnNvY2tldC9p
bnNlY3VyZS13ZWJzb2NrZXQtaW4taWZyYW1lLXN0ZGVyci50eHRVVAUAA7gj+lh1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADzQpVKYEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIExyQMAaHR0cC90
ZXN0cy9zZWN1cml0eS94c3MtREVOSUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRl
cnIudHh0VVQFAAP5I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAHESVSlsEWA6iBQAATRAA
AAoAGAAAAAAAAQAAAKSBQcoDAGh0dHBkLmNvbmZVVAUAAycm+lh1eAsAAQT1AQAABBQAAABQSwEC
HgMKAAAAAADuQpVKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEn0AMAaW1wb3J0ZWQvVVQFAAPw
I/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ0OVSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQ
AO1BatADAGltcG9ydGVkL2JsaW5rL1VUBQADWST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ANxClUoAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQbPQAwBpbXBvcnRlZC9ibGluay9mYXN0L1VU
BQADzyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANtClUoAAAAAAAAAAAAAAAAaABgAAAAA
AAAAEADtQQHRAwBpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL1VUBQADzSP6WHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAANpClUoAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQVXRAwBpbXBvcnRl
ZC9ibGluay9mYXN0L2Zvcm1zL2J1dHRvbi9VVAUAA8wj+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADaQpVKxyHv2zcAAABAAAAARwAYAAAAAAABAAAApIGw0QMAaW1wb3J0ZWQvYmxpbmsvZmFz
dC9mb3Jtcy9idXR0b24vYnV0dG9uLXJlc2V0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAUA
A8wj+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADaQpVKAAAAAAAAAAAAAAAAIAAYAAAAAAAA
ABAA7UFo0gMAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9VVAUAA8wj+lh1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADaQpVKxyHv2zcAAABAAAAAPwAYAAAAAAABAAAApIHC0gMAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9yYW5nZS9yYW5nZS1mb2N1cy1ieS1tb3VzZS1zdGRlcnIu
dHh0VVQFAAPMI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA20KVSgAAAAAAAAAAAAAAACEA
GAAAAAAAAAAQAO1BctMDAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvc3VibWl0L1VUBQADzSP6
WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANtClUrHIe/bNwAAAEAAAABBABgAAAAAAAEAAACk
gc3TAwBpbXBvcnRlZC9ibGluay9mYXN0L2Zvcm1zL3N1Ym1pdC9zdWJtaXQtZm9jdXMtYnktbW91
c2Utc3RkZXJyLnR4dFVUBQADzSP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANxClUoAAAAA
AAAAAAAAAAAdABgAAAAAAAAAEADtQX/UAwBpbXBvcnRlZC9ibGluay9mYXN0L3JlcGxhY2VkL1VU
BQADzyP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANxClUoHa2Mw4QAAAHABAABDABgAAAAA
AAEAAACkgdbUAwBpbXBvcnRlZC9ibGluay9mYXN0L3JlcGxhY2VkL2ltYWdlLW1hcC1hbHQtY29u
dGVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAPPI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
J0OVSgAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1BNNYDAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2Uv
VVQFAANZJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAJ0OVSgAAAAAAAAAAAAAAACEAGAAA
AAAAAAAQAO1BhdYDAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL1VUBQADWST6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACdDlUo2GZqefQAAAIcAAABGABgAAAAAAAEAAACkgeDW
AwBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9ibG9iLWRlbGV0ZS1vYmplY3RzdG9y
ZS1kYi1hY3R1YWwudHh0VVQFAANZJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAJ0OVSrVF
j7gvAgAAsgQAAEQAGAAAAAAAAQAAAKSB3dcDAGltcG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhl
ZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLWRpZmYudHh0VVQFAANZJPpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAJ0OVSvc6kclcAQAA3wIAAEgAGAAAAAAAAQAAAKSBitoDAGltcG9y
dGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRiLWV4
cGVjdGVkLnR4dFVUBQADWST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACdDlUp4d/1NqwkA
AIIuAABMABgAAAAAAAEAAACkgWjcAwBpbXBvcnRlZC9ibGluay9zdG9yYWdlL2luZGV4ZWRkYi9i
bG9iLWRlbGV0ZS1vYmplY3RzdG9yZS1kYi1wcmV0dHktZGlmZi5odG1sVVQFAANZJPpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAJ0OVShNKLp1ZAAAAXgAAAEYAGAAAAAAAAQAAAKSBmeYDAGlt
cG9ydGVkL2JsaW5rL3N0b3JhZ2UvaW5kZXhlZGRiL2Jsb2ItZGVsZXRlLW9iamVjdHN0b3JlLWRi
LXN0ZGVyci50eHRVVAUAA1kk+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAtQ5VKAAAAAAAA
AAAAAAAADQAYAAAAAAAAABAA7UFy5wMAaW1wb3J0ZWQvdzNjL1VUBQADZST6WHV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAC1DlUoAAAAAAAAAAAAAAAAoABgAAAAAAAAAEADtQbnnAwBpbXBvcnRl
ZC93M2MvSW5kZXhlZERCLXByaXZhdGUtYnJvd3NpbmcvVVQFAANlJPpYdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgALUOVSsLbHpx+AAAAhwAAAEMAGAAAAAAAAQAAAKSBG+gDAGltcG9ydGVkL3cz
Yy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45LWFjdHVhbC50eHRV
VAUAA2Uk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtQ5VKRGJ/aZwBAAD5BgAAQQAYAAAA
AAABAAAApIEW6QMAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2YXRlLWJyb3dzaW5nL2lkYmZh
Y3Rvcnlfb3BlbjktZGlmZi50eHRVVAUAA2Uk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAt
Q5VKkO4IK7oAAAA2BQAARQAYAAAAAAABAAAApIEt6wMAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1w
cml2YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3BlbjktZXhwZWN0ZWQudHh0VVQFAANlJPpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALUOVSg1UGeXMCAAAayoAAEkAGAAAAAAAAQAAAKSBZuwD
AGltcG9ydGVkL3czYy9JbmRleGVkREItcHJpdmF0ZS1icm93c2luZy9pZGJmYWN0b3J5X29wZW45
LXByZXR0eS1kaWZmLmh0bWxVVAUAA2Uk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAtQ5VK
o6vF51wAAABeAAAAQwAYAAAAAAABAAAApIG19QMAaW1wb3J0ZWQvdzNjL0luZGV4ZWREQi1wcml2
YXRlLWJyb3dzaW5nL2lkYmZhY3Rvcnlfb3Blbjktc3RkZXJyLnR4dFVUBQADZST6WHV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAP1ClUoAAAAAAAAAAAAAAAAgABgAAAAAAAAAEADtQY72AwBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1VUBQADDST6WHV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAAhDlUoAAAAAAAAAAAAAAAAqABgAAAAAAAAAEADtQej2AwBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9VVAUAAyAk+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAD4QpVKdfwGTmsAAAB6AAAAUwAYAAAAAAABAAAApIFM9wMAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWFj
dHVhbC50eHRVVAUAAwQk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAD4QpVKTa1dHvUAAAAR
AgAAUQAYAAAAAAABAAAApIFE+AMAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRl
eGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVkLWRpZmYudHh0VVQFAAMEJPpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+EKVSuIGy1RJAAAATwAAAFUAGAAAAAAAAQAAAKSBxPkD
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2Fib3J0LWluLWluaXRp
YWwtdXBncmFkZW5lZWRlZC1leHBlY3RlZC50eHRVVAUAAwQk+lh1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACAD5QpVKCq1rAxYIAADlGwAAWQAYAAAAAAABAAAApIGc+gMAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYWJvcnQtaW4taW5pdGlhbC11cGdyYWRlbmVlZGVk
LXByZXR0eS1kaWZmLmh0bWxVVAUAAwUk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAIQ5VK
SMFwFXoAAAAdAQAASAAYAAAAAAABAAAApIFFAwQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0LWtleS1hY3R1YWwudHh0VVQFAAMgJPpYdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACEOVSvvvHjcOAQAAFAMAAEYAGAAAAAAAAQAAAKSBQQQE
AGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2JpbmRpbmdzLWluamVj
dC1rZXktZGlmZi50eHRVVAUAAyAk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAIQ5VKb1Jj
jU8AAADBAAAASgAYAAAAAAABAAAApIHPBQQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0LWtleS1leHBlY3RlZC50eHRVVAUAAyAk+lh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAIQ5VKLUENPwsIAACDHgAATgAYAAAAAAABAAAApIGiBgQA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvYmluZGluZ3MtaW5qZWN0
LWtleS1wcmV0dHktZGlmZi5odG1sVVQFAAMgJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
7kKVSgAAAAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1BNQ8EAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvV2ViQ3J5cHRvQVBJL1VUBQAD8CP6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AApDlUoAAAAAAAAAAAAAAAA5ABgAAAAAAAAAEADtQZwPBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAUAAyMk+lh1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADuQpVKjzQacEQAAACgCQAAXAAYAAAAAAABAAAApIEPEAQAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNf
UlNBLU9BRVAud29ya2VyLXN0ZGVyci50eHRVVAUAA/Aj+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADxQpVKVALJsjYAAADAAgAAZQAYAAAAAAABAAAApIHpEAQAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNfUlNBU1NBLVBL
Q1MxLXYxXzUud29ya2VyLXN0ZGVyci50eHRVVAUAA/Uj+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAAIQ5VKjzQacEQAAACgCQAAWgAYAAAAAAABAAAApIG+EQQAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlc19SU0Et
T0FFUC1zdGRlcnIudHh0VVQFAAMgJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgACkOVSlQC
ybI2AAAAwAIAAGMAGAAAAAAAAQAAAKSBlhIEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYx
XzUtc3RkZXJyLnR4dFVUBQADIyT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAP1ClUoAAAAA
AAAAAAAAAAAmABgAAAAAAAAAEADtQWkTBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL1VUBQADDST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAA9DlUoAAAAAAAAAAAAA
AAAqABgAAAAAAAAAEADtQckTBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9VVAUAAy4k+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAPQ5VKAAAAAAAAAAAAAAAA
MAAYAAAAAAAAABAA7UEtFAQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9h
cGkvYmFzaWMvVVQFAAMuJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAD0OVSs1uysCRAAAA
nQAAAEcAGAAAAAAAAQAAAKSBlxQEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0
Y2gvYXBpL2Jhc2ljL21vZGUtbm8tY29ycy1zdGRlcnIudHh0VVQFAAMuJPpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAD0OVSlh9lnuRAAAAnQAAAE4AGAAAAAAAAQAAAKSBqRUEAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtbm8tY29ycy13b3Jr
ZXItc3RkZXJyLnR4dFVUBQADLiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAAxDlUoAAAAA
AAAAAAAAAAAvABgAAAAAAAAAEADtQcIWBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2ZldGNoL2FwaS9jb3JzL1VUBQADJyT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAP1ClUon
kQO+rQAAAK4DAABIABgAAAAAAAEAAACkgSsXBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtYmFzaWMuYW55LXN0ZGVyci50eHRVVAUAAw0k+lh1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAD9QpVKjkW/Nq4AAACuAwAATwAYAAAAAAABAAAApIFaGAQA
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2lj
LmFueS53b3JrZXItc3RkZXJyLnR4dFVUBQADDiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AABDlUqFoGChmgAAADoBAABPABgAAAAAAAEAAACkgZEZBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbm8tcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0
VVQFAAMPJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAAEOVShmEvn+bAAAAOgEAAFYAGAAA
AAAAAQAAAKSBtBoEAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1uby1wcmVmbGlnaHQuYW55Lndvcmtlci1zdGRlcnIudHh0VVQFAAMPJPpYdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAAEOVSlfl1gBHAgAARQwAAEkAGAAAAAAAAQAAAKSB3xsEAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4u
YW55LXN0ZGVyci50eHRVVAUAAxAk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAAQ5VK5MRx
caIAAAB0AgAAUAAYAAAAAAABAAAApIGpHgQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9mZXRjaC9hcGkvY29ycy9jb3JzLW9yaWdpbi5hbnkud29ya2VyLXN0ZGVyci50eHRVVAUAAxAk
+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAABQ5VKutgBkNsCAACYEgAAUwAYAAAAAAABAAAA
pIHVHwQAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3Jz
LXByZWZsaWdodC1zdGF0dXMuYW55LXN0ZGVyci50eHRVVAUAAxIk+lh1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAACQ5VK23tCLZcBAADeBQAATAAYAAAAAAABAAAApIE9IwQAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXByZWZsaWdodC5hbnktc3Rk
ZXJyLnR4dFVUBQADEyT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAxDlUoFQcNXzwIAAL8T
AABVABgAAAAAAAEAAACkgVolBABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9jb3JzL2NvcnMtcmVkaXJlY3QtcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0VVQFAAMnJPpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAXEOVSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B
uCgEAHBsdWdpbnMvVVQFAAPAJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXEOVSu5dckWG
AAAA9gAAADsAGAAAAAAAAQAAAKSB+igEAHBsdWdpbnMvbnBwLXNldC13aW5kb3ctY2FsbGVkLWR1
cmluZy1kZXN0cnVjdGlvbi1zdGRlcnIudHh0VVQFAAPAJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA6UKVSn1u4UvQAgAADjQAABoAGAAAAAAAAQAAAKSB9SkEAHB5d2Vic29ja2V0LndzLmxv
Zy1lcnIudHh0VVQFAAPlI/pYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA2EKVSoJXzWkIAQAA
jwIAABoAGAAAAAAAAQAAAKSBGS0EAHB5d2Vic29ja2V0LndzLmxvZy1vdXQudHh0VVQFAAPHI/pY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAhEKVSgAAAAAAAAAAAAAAABsAGAAAAAAAAAAAAKSB
dS4EAHB5d2Vic29ja2V0Lndzcy5sb2ctZXJyLnR4dFVUBQADKCP6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAIRClUoAAAAAAAAAAAAAAAAbABgAAAAAAAAAAACkgcouBABweXdlYnNvY2tldC53
c3MubG9nLW91dC50eHRVVAUAAygj+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAjRJVKRSYd
OdEnAADLqgAADAAYAAAAAAABAAAApIEfLwQAcmVzdWx0cy5odG1sVVQFAAMxJvpYdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAIkSVSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BNlcEAHJldHJp
ZXMvVVQFAAMvJvpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAIkSVSgAAAAAAAAAAAAAAAA8A
GAAAAAAAAAAQAO1BeFcEAHJldHJpZXMvd2VicnRjL1VUBQADLyb6WHV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAACJElUoAAAAAAAAAAAAAAAAbABgAAAAAAAAAEADtQcFXBAByZXRyaWVzL3dlYnJ0
Yy9kYXRhY2hhbm5lbC9VVAUAAy8m+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiRJVKYqsK
CG0AAACjAAAAQAAYAAAAAAABAAAApIEWWAQAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwvYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtYWN0dWFsLnR4dFVUBQADLyb6WHV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIACJElUqLilAFzwAAAKgBAAA+ABgAAAAAAAEAAACkgf1YBAByZXRyaWVzL3dl
YnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZC1kaWZmLnR4dFVUBQAD
Lyb6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIACJElUqrucb0cwAAANYAAABCABgAAAAAAAEA
AACkgURaBAByZXRyaWVzL3dlYnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVz
aG9sZC1leHBlY3RlZC50eHRVVAUAAy8m+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAiRJVK
PAsBIaAHAACnGAAARgAYAAAAAAABAAAApIEzWwQAcmV0cmllcy93ZWJydGMvZGF0YWNoYW5uZWwv
YnVmZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtcHJldHR5LWRpZmYuaHRtbFVUBQADLyb6WHV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAF1DlUoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQVNjBABz
Y3JvbGxiYXJzL1VUBQADwiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAF1DlUpuvSNhOQAA
AEIAAAA7ABgAAAAAAAEAAACkgZhjBABzY3JvbGxiYXJzL3Njcm9sbGV2ZW50LWlmcmFtZS1uby1z
Y3JvbGxpbmctd2hlZWwtc3RkZXJyLnR4dFVUBQADwiT6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIACNElUrkNQtFJEYJAAL+MAAKABgAAAAAAAEAAACkgUZkBABzdGF0cy5qc29uVVQFAAMxJvpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAbUOVSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1B
rqoNAHN0b3JhZ2UvVVQFAAPdJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAbUOVSgAAAAAA
AAAAAAAAABMAGAAAAAAAAAAQAO1B8KoNAHN0b3JhZ2UvZG9tc3RvcmFnZS9VVAUAA90k+lh1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAABtQ5VKAAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UE9qw0A
c3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9VVAUAA90k+lh1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACABtQ5VK93TDYTADAADmDwAANwAYAAAAAAABAAAApIGRqw0Ac3RvcmFnZS9kb21zdG9yYWdl
L2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1dGUtYWN0dWFsLnR4dFVUBQAD3ST6WHV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAG1DlUqgOYu3ogIAAJMMAAA1ABgAAAAAAAEAAACkgTKvDQBzdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1kaWZmLnR4dFVUBQAD3ST6WHV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAG1DlUoDDKqWGwIAABcNAAA5ABgAAAAAAAEAAACkgUOy
DQBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL2Jhc2ljLXNldGF0dHJpYnV0ZS1leHBlY3RlZC50
eHRVVAUAA90k+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABtQ5VKRoXt9JALAAALVAAAPQAY
AAAAAAABAAAApIHRtA0Ac3RvcmFnZS9kb21zdG9yYWdlL2V2ZW50cy9iYXNpYy1zZXRhdHRyaWJ1
dGUtcHJldHR5LWRpZmYuaHRtbFVUBQAD3ST6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHRD
lUoAAAAAAAAAAAAAAAAEABgAAAAAAAAAEADtQdjADQBzdmcvVVQFAAPrJPpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAdEOVSgAAAAAAAAAAAAAAAA0AGAAAAAAAAAAQAO1BFsENAHN2Zy9hcy1p
bWFnZS9VVAUAA+sk+lh1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB0Q5VK2wjTQjsAAAA/AAAA
PwAYAAAAAAABAAAApIFdwQ0Ac3ZnL2FzLWltYWdlL3N2Zy1pbWFnZS13aXRoLWRhdGEtdXJpLWlt
YWdlcy1kaXNhYmxlZC1zdGRlcnIudHh0VVQFAAPrJPpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAhkOVSgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BEcINAHdlYmFyY2hpdmUvVVQFAAMMJfpY
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAhkOVStsI00I7AAAAPwAAADoAGAAAAAAAAQAAAKSB
VsINAHdlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLXN0ZGVy
ci50eHRVVAUAAwwl+lh1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACWQ5VKAAAAAAAAAAAAAAAA
BwAYAAAAAAAAABAA7UEFww0Ad2VicnRjL1VUBQADKyX6WHV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAJZDlUoAAAAAAAAAAAAAAAATABgAAAAAAAAAEADtQUbDDQB3ZWJydGMvZGF0YWNoYW5uZWwv
VVQFAAMsJfpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlkOVSmKrCghtAAAAowAAADgAGAAA
AAAAAQAAAKSBk8MNAHdlYnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9s
ZC1hY3R1YWwudHh0VVQFAAMrJfpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlkOVSn/Ph4fI
AAAAmAEAADYAGAAAAAAAAQAAAKSBcsQNAHdlYnJ0Yy9kYXRhY2hhbm5lbC9idWZmZXJlZEFtb3Vu
dExvd1RocmVzaG9sZC1kaWZmLnR4dFVUBQADKyX6WHV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AJZDlUqrucb0cwAAANYAAAA6ABgAAAAAAAEAAACkgarFDQB3ZWJydGMvZGF0YWNoYW5uZWwvYnVm
ZmVyZWRBbW91bnRMb3dUaHJlc2hvbGQtZXhwZWN0ZWQudHh0VVQFAAMrJfpYdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAlkOVSt9njtWbBwAAnxgAAD4AGAAAAAAAAQAAAKSBkcYNAHdlYnJ0Yy9k
YXRhY2hhbm5lbC9idWZmZXJlZEFtb3VudExvd1RocmVzaG9sZC1wcmV0dHktZGlmZi5odG1sVVQF
AAMsJfpYdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAIkSVSjTwfBDdAgAAwRYAABkAGAAAAAAA
AQAAAKSBpM4NAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAAzAm+lh1eAsAAQT1AQAABBQA
AABQSwUGAAAAAMMAwwB4VwAA1NENAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308384</attachid>
            <date>2017-04-27 06:08:05 -0700</date>
            <delta_ts>2017-04-27 13:41:37 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>upstream.patch</filename>
            <type>text/plain</type>
            <size>483730</size>
            <attacher name="Zan Dobersek">zan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0NNYWtlTGlzdHMudHh0IGIvQ01ha2VMaXN0cy50eHQKaW5kZXggYmIzMzE4
YzJiNjUuLjM5OGY1NWYzNmJjIDEwMDY0NAotLS0gYS9DTWFrZUxpc3RzLnR4dAorKysgYi9DTWFr
ZUxpc3RzLnR4dApAQCAtMjcsNiArMjcsNyBAQCBzZXQoQUxMX1BPUlRTCiAgICAgR1RLCiAgICAg
SlNDT25seQogICAgIE1hYworICAgIFdQRQogICAgIFdpbkNhaXJvCiApCiBzZXQoUE9SVCAiTk9Q
T1JUIiBDQUNIRSBTVFJJTkcgImNob29zZSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCAob25l
IG9mICR7QUxMX1BPUlRTfSkiKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5hYTg0YTA1ZDQwZAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpA
QCAtMCwwICsxLDIzIEBACitsaXN0KEFQUEVORCBKYXZhU2NyaXB0Q29yZV9MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQorbGlzdChBUFBFTkQgSmF2YVNjcmlwdENvcmVfSU5DTFVE
RV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtXVEZfRElSfQor
KQorCitzZXQoV1BFX0lOU1RBTExFRF9KQVZBU0NSSVBUQ09SRV9IRUFERVJTCisgICAgQVBJL0pT
QmFzZS5oCisgICAgQVBJL0pTQ29udGV4dFJlZi5oCisgICAgQVBJL0pTT2JqZWN0UmVmLmgKKyAg
ICBBUEkvSlNTdHJpbmdSZWYuaAorICAgIEFQSS9KU1R5cGVkQXJyYXkuaAorICAgIEFQSS9KU1Zh
bHVlUmVmLmgKKyAgICBBUEkvSmF2YVNjcmlwdC5oCisgICAgQVBJL1dlYktpdEF2YWlsYWJpbGl0
eS5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0pBVkFTQ1JJUFRDT1JFX0hF
QURFUlN9CisgICAgREVTVElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUt
JHtXUEVfQVBJX1ZFUlNJT059L1dQRS9KYXZhU2NyaXB0Q29yZSIKKyAgICBDT01QT05FTlQgIkRl
dmVsb3BtZW50IgorKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1Bs
YXRmb3JtV1BFLmNtYWtlIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3NoZWxsL1BsYXRmb3JtV1BF
LmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42MjMxODNhMmIw
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9zaGVsbC9QbGF0Zm9y
bVdQRS5jbWFrZQpAQCAtMCwwICsxLDMgQEAKK2xpc3QoQVBQRU5EIEpTQ19MSUJSQVJJRVMKKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvaW5jbHVkZS9FR0wvZWdscGxhdGZvcm0uaCBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2lu
Y2x1ZGUvRUdML2VnbHBsYXRmb3JtLmgKaW5kZXggOTk5ZjZlMjhiMmMuLjliYjc1OTEwYWMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9pbmNsdWRlL0VHTC9lZ2xwbGF0Zm9y
bS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL2luY2x1ZGUvRUdML2VnbHBsYXRmb3Jt
LmgKQEAgLTk5LDcgKzk5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQU5hdGl2ZVdpbmRvdyogICAgICAg
ICAgIEVHTE5hdGl2ZVdpbmRvd1R5cGU7CiB0eXBlZGVmIHN0cnVjdCBlZ2xfbmF0aXZlX3BpeG1h
cF90KiAgICAgRUdMTmF0aXZlUGl4bWFwVHlwZTsKIHR5cGVkZWYgdm9pZCogICAgICAgICAgICAg
ICAgICAgICAgICAgICBFR0xOYXRpdmVEaXNwbGF5VHlwZTsKIAotI2VsaWYgZGVmaW5lZChVU0Vf
T1pPTkUpCisjZWxpZiBkZWZpbmVkKFVTRV9PWk9ORSkgfHwgZGVmaW5lZChVU0VfV1BFKQogCiB0
eXBlZGVmIGludHB0cl90IEVHTE5hdGl2ZURpc3BsYXlUeXBlOwogdHlwZWRlZiBpbnRwdHJfdCBF
R0xOYXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0u
aCBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggMDJlY2Y0MTcxNDguLjRlNjEwMTI2
YjViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybS5oCisrKyBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtLmgKQEAgLTQ2MSw2ICs0NjEsOCBAQAogLyogUExBVEZPUk0oV0lOKSAq
LwogI2lmIGRlZmluZWQoQlVJTERJTkdfR1RLX18pCiAjZGVmaW5lIFdURl9QTEFURk9STV9HVEsg
MQorI2VsaWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNkZWZpbmUgV1RGX1BMQVRGT1JNX1dQ
RSAxCiAjZWxpZiBkZWZpbmVkKEJVSUxESU5HX0pTQ09OTFlfXykKIC8qIEpTQ09ubHkgZG9lcyBu
b3QgcHJvdmlkZSBQTEFURk9STSgpIG1hY3JvICovCiAjZWxpZiBPUyhNQUNfT1NfWCkKQEAgLTUw
NSw3ICs1MDcsNyBAQAogI2RlZmluZSBVU0VfQ0EgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVTRV9DQUlS
TyAxCiAjZGVmaW5lIFVTRV9HTElCIDEKICNkZWZpbmUgVVNFX0ZSRUVUWVBFIDEKQEAgLTYyMSw3
ICs2MjMsNyBAQAogI2VuZGlmCiAKICNpZiAhZGVmaW5lZChIQVZFX0FDQ0VTU0lCSUxJVFkpCi0j
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKQorI2lm
IFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogI2RlZmluZSBIQVZFX0FDQ0VTU0lCSUxJVFkgMQogI2VuZGlmCiAjZW5kaWYg
LyogIWRlZmluZWQoSEFWRV9BQ0NFU1NJQklMSVRZKSAqLwpAQCAtNzcxLDcgKzc3Myw3IEBACiAj
ZGVmaW5lIEVOQUJMRV9ERkdfSklUIDEKICNlbmRpZgogLyogRW5hYmxlIHRoZSBERkcgSklUIG9u
IEFSTXY3LiAgT25seSB0ZXN0ZWQgb24gaU9TIGFuZCBRdC9HVEsrIExpbnV4LiAqLwotI2lmIChD
UFUoQVJNX1RIVU1CMikgfHwgQ1BVKEFSTTY0KSkgJiYgKFBMQVRGT1JNKElPUykgfHwgUExBVEZP
Uk0oR1RLKSkKKyNpZiAoQ1BVKEFSTV9USFVNQjIpIHx8IENQVShBUk02NCkpICYmIChQTEFURk9S
TShJT1MpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxF
X0RGR19KSVQgMQogI2VuZGlmCiAvKiBFbmFibGUgdGhlIERGRyBKSVQgb24gQVJNIGFuZCBNSVBT
LiAqLwpAQCAtOTU4LDcgKzk2MCw3IEBACiAKIC8qIENTUyBTZWxlY3RvciBKSVQgQ29tcGlsZXIg
Ki8KICNpZiAhZGVmaW5lZChFTkFCTEVfQ1NTX1NFTEVDVE9SX0pJVCkKLSNpZiAoQ1BVKFg4Nl82
NCkgfHwgQ1BVKEFSTTY0KSB8fCAoQ1BVKEFSTV9USFVNQjIpICYmIFBMQVRGT1JNKElPUykpKSAm
JiBFTkFCTEUoSklUKSAmJiAoT1MoREFSV0lOKSB8fCBQTEFURk9STShHVEspKQorI2lmIChDUFUo
WDg2XzY0KSB8fCBDUFUoQVJNNjQpIHx8IChDUFUoQVJNX1RIVU1CMikgJiYgUExBVEZPUk0oSU9T
KSkpICYmIEVOQUJMRShKSVQpICYmIChPUyhEQVJXSU4pIHx8IFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKSkKICNkZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMQogI2Vsc2UKICNk
ZWZpbmUgRU5BQkxFX0NTU19TRUxFQ1RPUl9KSVQgMApAQCAtMTAyNSw3ICsxMDI3LDcgQEAKICNk
ZWZpbmUgVVNFX0VYUE9SVF9NQUNST1NfRk9SX1RFU1RJTkcgMQogI2VuZGlmCiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAjZGVmaW5lIFVT
RV9VTklYX0RPTUFJTl9TT0NLRVRTIDEKICNlbmRpZgogCkBAIC0xMDc1LDExICsxMDc3LDExIEBA
CiAjZGVmaW5lIFVTRV9WSURFT1RPT0xCT1ggMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NP
QSkgfHwgUExBVEZPUk0oR1RLKSB8fCAoUExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCisj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSB8fCAo
UExBVEZPUk0oV0lOKSAmJiAhVVNFKFdJTkdESSkpCiAjZGVmaW5lIFVTRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRV9USU1FUiAxCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oV1BFKQogI2RlZmluZSBVU0VfUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05J
VE9SIDEKICNlbmRpZgogCkBAIC0xMTQyLDcgKzExNDQsNyBAQAogI2RlZmluZSBFTkFCTEVfUkVT
T1VSQ0VfVVNBR0UgMQogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0o
R1RLKSB8fCBQTEFURk9STShXUEUpCiAjdW5kZWYgRU5BQkxFX09QRU5UWVBFX1ZFUlRJQ0FMCiAj
ZGVmaW5lIEVOQUJMRV9PUEVOVFlQRV9WRVJUSUNBTCAxCiAjZGVmaW5lIEVOQUJMRV9DU1MzX1RF
WFRfREVDT1JBVElPTl9TS0lQX0lOSyAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0
Zm9ybVdQRS5jbWFrZSBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjgzMWVlZTAzYQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV1BFLmNtYWtlCkBAIC0wLDAgKzEsMjggQEAK
K2xpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgUGxhdGZvcm1Vc2VyUHJlZmVycmVkTGFuZ3Vh
Z2VzVW5peC5jcHAKKyAgICBVbmlTdGRFeHRyYXMuY3BwCisKKyAgICBnZW5lcmljL1dvcmtRdWV1
ZUdlbmVyaWMuY3BwCisKKyAgICBnbGliL0dMaWJVdGlsaXRpZXMuY3BwCisgICAgZ2xpYi9HUmVm
UHRyLmNwcAorICAgIGdsaWIvTWFpblRocmVhZEdMaWIuY3BwCisgICAgZ2xpYi9SdW5Mb29wR0xp
Yi5jcHAKKworICAgIGxpbnV4L0N1cnJlbnRQcm9jZXNzTWVtb3J5U3RhdHVzLmNwcAorICAgIGxp
bnV4L01lbW9yeVByZXNzdXJlSGFuZGxlckxpbnV4LmNwcAorCisgICAgdGV4dC91bml4L1RleHRC
cmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VVbml4LmNwcAorKQorCitsaXN0KEFQUEVORCBXVEZfTElC
UkFSSUVTCisgICAgJHtHTElCX0dJT19MSUJSQVJJRVN9CisgICAgJHtHTElCX0dPQkpFQ1RfTElC
UkFSSUVTfQorICAgICR7R0xJQl9MSUJSQVJJRVN9CisgICAgcHRocmVhZAorICAgICR7WkxJQl9M
SUJSQVJJRVN9CispCisKK2xpc3QoQVBQRU5EIFdURl9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAg
JHtHTElCX0lOQ0xVREVfRElSU30KKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2dsaWIv
UnVuTG9vcFNvdXJjZVByaW9yaXR5LmggYi9Tb3VyY2UvV1RGL3d0Zi9nbGliL1J1bkxvb3BTb3Vy
Y2VQcmlvcml0eS5oCmluZGV4IDhkMjQ3YzMxZTU2Li5jOWE0NTY3NTE0OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dURi93dGYvZ2xpYi9SdW5Mb29wU291cmNlUHJpb3JpdHkuaAorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9nbGliL1J1bkxvb3BTb3VyY2VQcmlvcml0eS5oCkBAIC0yMyw2ICsyMyw4IEBACiAK
IG5hbWVzcGFjZSBXVEYgewogCisjaWYgUExBVEZPUk0oR1RLKQorCiAvLyBUaGlzIGlzIGEgZ2xv
YmFsIGVudW0gdG8gZGVmaW5lIHByaW9yaXRpZXMgdXNlZCBieSBHTGliIHJ1biBsb29wIHNvdXJj
ZXMuCiAvLyBJbiBHTGliLCBwcmlvcml0aWVzIGFyZSByZXByZXNlbnRlZCBieSBhbiBpbnRlZ2Vy
IHdoZXJlIGxvd2VyIHZhbHVlcyBtZWFuCiAvLyBoaWdoZXIgcHJpb3JpdHkuIFRoZSBmb2xsb3dp
bmcgbWFjcm9zIGFyZSBkZWZpbmVkIGluIEdMaWI6CkBAIC04MCw2ICs4MiwzMyBAQCBlbnVtIFJ1
bkxvb3BTb3VyY2VQcmlvcml0eSB7CiAgICAgRGlza0NhY2hlV3JpdGUgPSAyMDAsCiB9OwogCisj
ZWxpZiBQTEFURk9STShXUEUpCisKK2VudW0gUnVuTG9vcFNvdXJjZVByaW9yaXR5IHsKKyAgICBS
dW5Mb29wRGlzcGF0Y2hlciA9IC03MCwKKyAgICBSdW5Mb29wVGltZXIgPSAtNzAsCisKKyAgICBN
YWluVGhyZWFkRGlzcGF0Y2hlclRpbWVyID0gLTYwLAorCisgICAgTWVtb3J5UHJlc3N1cmVIYW5k
bGVyVGltZXIgPSAtODAsCisKKyAgICBKYXZhc2NyaXB0VGltZXIgPSAtNjAsCisgICAgTWFpblRo
cmVhZFNoYXJlZFRpbWVyID0gLTYwLAorCisgICAgTGF5ZXJGbHVzaFRpbWVyID0gLTcwLAorICAg
IERpc3BsYXlSZWZyZXNoTW9uaXRvclRpbWVyID0gLTcwLAorCisgICAgQ29tcG9zaXRpbmdUaHJl
YWRVcGRhdGVUaW1lciA9IC03MCwKKworICAgIFJlbGVhc2VVbnVzZWRSZXNvdXJjZXNUaW1lciA9
IC03MCwKKworICAgIEFzeW5jSU9OZXR3b3JrID0gLTcwLAorICAgIERpc2tDYWNoZVJlYWQgPSAt
NzAsCisgICAgRGlza0NhY2hlV3JpdGUgPSAtNjAKK307CisKKyNlbmRpZgorCiB9IC8vIG5hbWVz
cGFjZSBXVEYKIAogdXNpbmcgV1RGOjpSdW5Mb29wU291cmNlUHJpb3JpdHk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CmluZGV4IDQzYTMwMGVlODllLi4zNTJjMTkwOWYzYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKQEAgLTM5OTgsMTEgKzM5OTgsMTYgQEAgaWYgKEVOQUJMRV9HUkFQSElDU19DT05URVhUXzNE
IEFORCBOT1QgV0lOMzIpCiAgICAgICAgIEFERF9UQVJHRVRfUFJPUEVSVElFUyhBTkdMRVN1cHBv
cnQgQ09NUElMRV9GTEFHUyAiLVduby1udWxsLWNvbnZlcnNpb24iKQogICAgIGVuZGlmICgpCiAK
KyAgICBzZXQoQU5HTEVfUExBVEZPUk1fREVGSU5JVElPTlMgKQorICAgIGlmIChQT1JUIFNUUkVR
VUFMICJXUEUiKQorICAgICAgICBsaXN0KEFQUEVORCBBTkdMRV9QTEFURk9STV9ERUZJTklUSU9O
UyAiVVNFX1dQRSIpCisgICAgZW5kaWYgKCkKICAgICAjIEVuYWJsZSB0aGUgRVNTTCBhbmQgR0xT
TCB0cmFuc2xhdG9ycy4KICAgICBzZXRfcHJvcGVydHkoVEFSR0VUIEFOR0xFU3VwcG9ydAogICAg
ICAgICBQUk9QRVJUWSBDT01QSUxFX0RFRklOSVRJT05TCiAgICAgICAgIEFOR0xFX0VOQUJMRV9F
U1NMCi0gICAgICAgIEFOR0xFX0VOQUJMRV9HTFNMKQorICAgICAgICBBTkdMRV9FTkFCTEVfR0xT
TAorICAgICAgICAke0FOR0xFX1BMQVRGT1JNX0RFRklOSVRJT05TfSkKIAogICAgIHRhcmdldF9p
bmNsdWRlX2RpcmVjdG9yaWVzKEFOR0xFU3VwcG9ydCBQUklWQVRFCiAgICAgICAgICIke1RISVJE
UEFSVFlfRElSfS9BTkdMRSIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxh
dGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL1BsYXRmb3JtV1BFLmNtYWtl
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi43NzVjMTg5ODRhZQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvUGxhdGZvcm1XUEUuY21ha2UK
QEAgLTAsMCArMSwzIEBACitsaXN0KEFQUEVORCBQQUxfU09VUkNFUworICAgIGNyeXB0by9nY3J5
cHQvQ3J5cHRvRGlnZXN0R0NyeXB0LmNwcAorKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
UGxhdGZvcm1XUEUuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2U4YmFlOTgxMWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsxLDI4
NiBAQAoraW5jbHVkZShwbGF0Zm9ybS9HU3RyZWFtZXIuY21ha2UpCitpbmNsdWRlKHBsYXRmb3Jt
L0ltYWdlRGVjb2RlcnMuY21ha2UpCitpbmNsdWRlKHBsYXRmb3JtL0xpbnV4LmNtYWtlKQoraW5j
bHVkZShwbGF0Zm9ybS9UZXh0dXJlTWFwcGVyLmNtYWtlKQorCitsaXN0KEFQUEVORCBXZWJDb3Jl
X0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENP
UkVfRElSfSIKKyAgICAiJHtERVJJVkVEX1NPVVJDRVNfSkFWQVNDUklQVENPUkVfRElSfS9pbnNw
ZWN0b3IiCisgICAgJHtKQVZBU0NSSVBUQ09SRV9ESVJ9CisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9Gb3J3YXJkaW5nSGVhZGVycyIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L0FQSSIK
KyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L2Fzc2VtYmxlciIKKyAgICAiJHtKQVZBU0NSSVBU
Q09SRV9ESVJ9L2J5dGVjb2RlIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vYnl0ZWNvbXBp
bGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZGZnIgorICAgICIke0pBVkFTQ1JJUFRD
T1JFX0RJUn0vZGlzYXNzZW1ibGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vZG9taml0
IgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaGVhcCIKKyAgICAiJHtKQVZBU0NSSVBUQ09S
RV9ESVJ9L2RlYnVnZ2VyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW50ZXJwcmV0ZXIi
CisgICAgIiR7SkFWQVNDUklQVENPUkVfRElSfS9qaXQiCisgICAgIiR7SkFWQVNDUklQVENPUkVf
RElSfS9sbGludCIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3BhcnNlciIKKyAgICAiJHtK
QVZBU0NSSVBUQ09SRV9ESVJ9L3Byb2ZpbGVyIgorICAgICIke0pBVkFTQ1JJUFRDT1JFX0RJUn0v
cnVudGltZSIKKyAgICAiJHtKQVZBU0NSSVBUQ09SRV9ESVJ9L3lhcnIiCisgICAgIiR7VEhJUkRQ
QVJUWV9ESVJ9L0FOR0xFLyIKKyAgICAiJHtUSElSRFBBUlRZX0RJUn0vQU5HTEUvaW5jbHVkZS9L
SFIiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2NhaXJvIgorICAgICIke1dFQkNPUkVf
RElSfS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlybyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvZWdsIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9n
bHgiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlIgorICAg
ICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIiCisgICAgIiR7V0VC
Q09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6LyIKKyAgICAiJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovbmciCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Bs
YXRmb3JtL2dyYXBoaWNzL29wZW5nbCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3Jh
cGhpY3Mvb3BlbnR5cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3dw
ZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvd2F5bGFuZCIKKyAgICAi
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbW9jay9tZWRpYXNvdXJjZSIKKyAgICAiJHtXRUJDT1JF
X0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9y
bS90ZXh0L2ljdSIKKyAgICAke1dURl9ESVJ9CispCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09V
UkNFUworICAgIGFjY2Vzc2liaWxpdHkvd3BlL0FYT2JqZWN0Q2FjaGVXUEUuY3BwCisgICAgYWNj
ZXNzaWJpbGl0eS93cGUvQWNjZXNzaWJpbGl0eU9iamVjdFdQRS5jcHAKKworICAgIGxvYWRlci9z
b3VwL0NhY2hlZFJhd1Jlc291cmNlU291cC5jcHAKKyAgICBsb2FkZXIvc291cC9TdWJyZXNvdXJj
ZUxvYWRlclNvdXAuY3BwCisKKyAgICBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNr
eU5vZGUuY3BwCisgICAgcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVGhyZWFkLmNwcAorICAgIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmNwcAorICAgIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorCisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRp
bmF0ZWRncmFwaGljcy9TY3JvbGxpbmdDb29yZGluYXRvckNvb3JkaW5hdGVkR3JhcGhpY3MuY3Bw
CisgICAgcGFnZS9zY3JvbGxpbmcvY29vcmRpbmF0ZWRncmFwaGljcy9TY3JvbGxpbmdTdGF0ZU5v
ZGVDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorCisgICAgcGxhdGZvcm0vQ3Vyc29yLmNwcAorICAg
IHBsYXRmb3JtL0tpbGxSaW5nTm9uZS5jcHAKKyAgICBwbGF0Zm9ybS9QbGF0Zm9ybVN0cmF0ZWdp
ZXMuY3BwCisgICAgcGxhdGZvcm0vVGhlbWUuY3BwCisKKyAgICBwbGF0Zm9ybS9hdWRpby9nbGli
L0F1ZGlvQnVzR0xpYi5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAK
KyAgICBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQzRFByaXZhdGUuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
UGxhdGZvcm1EaXNwbGF5LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0
LmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vQmFja2luZ1N0b3JlQmFja2VuZENh
aXJvSW1wbC5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9DYWlyb1V0aWxpdGllcy5j
cHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9GbG9hdFJlY3RDYWlyby5jcHAKKyAgICBw
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhaXJvSGFyZmJ1enpORy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9HcmFkaWVudENhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0dyYXBo
aWNzQ29udGV4dDNEQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vSW1hZ2VC
dWZmZXJDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9JbWFnZUNhaXJvLmNw
cAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ludFJlY3RDYWlyby5jcHAKKyAgICBwbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9OYXRpdmVJbWFnZUNhaXJvLmNwcAorICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2NhaXJvL1BhdGhDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Q
YXR0ZXJuQ2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1Db250
ZXh0Q2Fpcm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1QYXRoQ2Fp
cm8uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUmVmUHRyQ2Fpcm8uY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vVHJhbnNmb3JtYXRpb25NYXRyaXhDYWlyby5jcHAKKwor
ICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9HbHlwaFBhZ2VUcmVlTm9kZUZy
ZWVUeXBlLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvSW1hZ2VHU3Ry
ZWFtZXJDYWlyby5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0NvbXBsZXhU
ZXh0Q29udHJvbGxlckhhcmZCdXp6LmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6
L0hhcmZCdXp6RmFjZS5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6
ekZhY2VDYWlyby5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNo
YXBlci5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9FeHRlbnNpb25zM0RPcGVu
R0xDb21tb24uY3BwCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0V4dGVuc2lvbnMzRE9w
ZW5HTEVTLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQz
RE9wZW5HTENvbW1vbi5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3JhcGhpY3ND
b250ZXh0M0RPcGVuR0xFUy5jcHAKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvVGVtcG9y
YXJ5T3BlbkdMU2V0dGluZy5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL29wZW50eXBlL09w
ZW5UeXBlVmVydGljYWxEYXRhLmNwcAorCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRm
b3JtRGlzcGxheVdQRS5jcHAKKworICAgIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL2NhaXJvL0lt
YWdlQmFja2luZ1N0b3JlQ2Fpcm8uY3BwCisKKyAgICBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9D
ZXJ0aWZpY2F0ZUluZm8uY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZUphclNv
dXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL0Nvb2tpZVN0b3JhZ2VTb3VwLmNwcAor
ICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9DcmVkZW50aWFsU3RvcmFnZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL0ROU1NvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9z
b3VwL0dSZWZQdHJTb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9OZXR3b3JrU3Rv
cmFnZVNlc3Npb25Tb3VwLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9Qcm94eVNlcnZl
clNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlRXJyb3JTb3VwLmNw
cAorICAgIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisgICAg
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVxdWVzdFNvdXAuY3BwCisgICAgcGxhdGZv
cm0vbmV0d29yay9zb3VwL1Jlc291cmNlUmVzcG9uc2VTb3VwLmNwcAorICAgIHBsYXRmb3JtL25l
dHdvcmsvc291cC9Tb2NrZXRTdHJlYW1IYW5kbGVJbXBsU291cC5jcHAKKyAgICBwbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvU291cE5ldHdvcmtTZXNzaW9uLmNwcAorICAgIHBsYXRmb3JtL25ldHdvcmsv
c291cC9TeW5jaHJvbm91c0xvYWRlckNsaWVudFNvdXAuY3BwCisgICAgcGxhdGZvcm0vbmV0d29y
ay9zb3VwL1dlYktpdFNvdXBSZXF1ZXN0R2VuZXJpYy5jcHAKKworICAgIHBsYXRmb3JtL3NvdXAv
U2hhcmVkQnVmZmVyU291cC5jcHAKKyAgICBwbGF0Zm9ybS9zb3VwL1VSTFNvdXAuY3BwCisKKyAg
ICBwbGF0Zm9ybS90ZXh0L0h5cGhlbmF0aW9uLmNwcAorICAgIHBsYXRmb3JtL3RleHQvTG9jYWxl
SUNVLmNwcAorICAgIHBsYXRmb3JtL3RleHQvVGV4dENvZGVjSUNVLmNwcAorICAgIHBsYXRmb3Jt
L3RleHQvVGV4dEVuY29kaW5nRGV0ZWN0b3JJQ1UuY3BwCisKKyAgICAjIEZJWE1FOiBTcGxpdCBi
dWlsZCB0YXJnZXJzIGJlbG93IGludG8gYSBXZWJDb3JlUGxhdGZvcm0gbGlicmFyeQorICAgIGVk
aXRpbmcvd3BlL0VkaXRvcldQRS5jcHAKKworICAgIHBhZ2Uvd3BlL0V2ZW50SGFuZGxlcldQRS5j
cHAKKworICAgIHBsYXRmb3JtL2dsaWIvRXZlbnRMb29wR2xpYi5jcHAKKyAgICBwbGF0Zm9ybS9n
bGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIvS2V5ZWREZWNvZGVyR2xp
Yi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL0tleWVkRW5jb2RlckdsaWIuY3BwCisgICAgcGxhdGZv
cm0vZ2xpYi9NYWluVGhyZWFkU2hhcmVkVGltZXJHTGliLmNwcAorICAgIHBsYXRmb3JtL2dsaWIv
U1NMS2V5R2VuZXJhdG9yR0xpYi5jcHAKKyAgICBwbGF0Zm9ybS9nbGliL1NoYXJlZEJ1ZmZlckds
aWIuY3BwCisKKyAgICBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HcmFwaGljc0NvbnRleHRDYWly
by5jcHAKKworICAgIHBsYXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCisgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAKKworICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKworICAgIHBs
YXRmb3JtL2dyYXBoaWNzL3dwZS9JY29uV1BFLmNwcAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL3dw
ZS9JbWFnZVdQRS5jcHAKKworICAgIHBsYXRmb3JtL3VuaXgvTG9nZ2luZ1VuaXguY3BwCisKKyAg
ICBwbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9Mb2NhbGl6ZWRT
dHJpbmdzV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9QYXN0ZWJvYXJkV1BFLmNwcAorICAgIHBs
YXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgcGxhdGZvcm0vd3Bl
L1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvUGxhdGZvcm1TY3Jl
ZW5XUEUuY3BwCisgICAgcGxhdGZvcm0vd3BlL1JlbmRlclRoZW1lV1BFLmNwcAorICAgIHBsYXRm
b3JtL3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKKyAgICBwbGF0Zm9ybS93cGUvU291bmRXUEUu
Y3BwCisgICAgcGxhdGZvcm0vd3BlL1RoZW1lV1BFLmNwcAorICAgIHBsYXRmb3JtL3dwZS9XaWRn
ZXRXUEUuY3BwCisKKyAgICBwbGF0Zm9ybS94ZGcvTUlNRVR5cGVSZWdpc3RyeVhkZy5jcHAKKykK
KworbGlzdChBUFBFTkQgV2ViQ29yZV9VU0VSX0FHRU5UX1NUWUxFX1NIRUVUUworICAgICR7V0VC
Q09SRV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5jc3MKKykK
Kworc2V0KFdlYkNvcmVfVVNFUl9BR0VOVF9TQ1JJUFRTCisgICAgJHtXRUJDT1JFX0RJUn0vRW5n
bGlzaC5scHJvai9tZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5ncy5qcworICAgICR7V0VCQ09S
RV9ESVJ9L01vZHVsZXMvbWVkaWFjb250cm9scy9tZWRpYUNvbnRyb2xzQmFzZS5qcworKQorCitz
ZXQoV2ViQ29yZV9VU0VSX0FHRU5UX1NDUklQVFNfREVQRU5ERU5DSUVTICR7V0VCQ09SRV9ESVJ9
L3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5jcHApCisKK2xpc3QoQVBQRU5EIFdlYkNvcmVf
TElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtFR0xfTElCUkFSSUVTfQor
ICAgICR7Rk9OVENPTkZJR19MSUJSQVJJRVN9CisgICAgJHtGUkVFVFlQRTJfTElCUkFSSUVTfQor
ICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorICAgICR7R0xJQl9HTU9EVUxFX0xJQlJBUklFU30K
KyAgICAke0dMSUJfR09CSkVDVF9MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJBUklFU30KKyAg
ICAke0dOVVRMU19MSUJSQVJJRVN9CisgICAgJHtIQVJGQlVaWl9MSUJSQVJJRVN9CisgICAgJHtJ
Q1VfTElCUkFSSUVTfQorICAgICR7TElCR0NSWVBUX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBf
TElCUkFSSUVTfQorICAgICR7TElCWE1MMl9MSUJSQVJJRVN9CisgICAgJHtMSUJYU0xUX0xJQlJB
UklFU30KKyAgICAke1NRTElURV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTElCUkFSSUVTfQorKQor
CitsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAgICAke0NBSVJPX0lO
Q0xVREVfRElSU30KKyAgICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGT05UQ09ORklHX0lO
Q0xVREVfRElSU30KKyAgICAke0ZSRUVUWVBFMl9JTkNMVURFX0RJUlN9CisgICAgJHtHTElCX0lO
Q0xVREVfRElSU30KKyAgICAke0dOVVRMU19JTkNMVURFX0RJUlN9CisgICAgJHtIQVJGQlVaWl9J
TkNMVURFX0RJUlN9CisgICAgJHtJQ1VfSU5DTFVERV9ESVJTfQorICAgICR7TElCR0NSWVBUX0lO
Q0xVREVfRElSU30KKyAgICAke0xJQlNPVVBfSU5DTFVERV9ESVJTfQorICAgICR7TElCWE1MMl9J
TkNMVURFX0RJUn0KKyAgICAke0xJQlhTTFRfSU5DTFVERV9ESVJ9CisgICAgJHtTUUxJVEVfSU5D
TFVERV9ESVJ9CisgICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitpZiAoRU5BQkxFX1NVQlRM
RV9DUllQVE8pCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZV9TT1VSQ0VTCisgICAgICAgIGNyeXB0
by9DcnlwdG9BbGdvcml0aG0uY3BwCisgICAgICAgIGNyeXB0by9DcnlwdG9BbGdvcml0aG1SZWdp
c3RyeS5jcHAKKyAgICAgICAgY3J5cHRvL0NyeXB0b0tleS5jcHAKKyAgICAgICAgY3J5cHRvL1N1
YnRsZUNyeXB0by5jcHAKKyAgICAgICAgY3J5cHRvL1dlYktpdFN1YnRsZUNyeXB0by5jcHAKKwor
ICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmNwcAorICAg
ICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmNwcAorICAgICAg
ICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmNwcAorICAgICAgICBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmNwcAorICAgICAgICBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuY3BwCisgICAgICAgIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1QQktERjIuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QUVTX1BLQ1MxX3YxXzUuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmNwcAorICAgICAgICBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyNTYuY3BwCisgICAgICAgIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5jcHAKKyAgICAgICAgY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmNw
cAorCisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQ0dDcnlwdC5j
cHAKKyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCR0NyeXB0LmNw
cAorICAgICAgICBjcnlwdG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUFFU19DVFJHQ3J5cHQuY3Bw
CisgICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTUdDcnlwdC5jcHAK
KyAgICAgICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1BRVNfS1dHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtRUNESEdDcnlwdC5jcHAKKyAgICAg
ICAgY3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1FQ0RTQUdDcnlwdC5jcHAKKyAgICAgICAg
Y3J5cHRvL2djcnlwdC9DcnlwdG9BbGdvcml0aG1IS0RGR0NyeXB0LmNwcAorICAgICAgICBjcnlw
dG8vZ2NyeXB0L0NyeXB0b0FsZ29yaXRobUhNQUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0by9n
Y3J5cHQvQ3J5cHRvQWxnb3JpdGhtUEJLREYyR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2Ny
eXB0L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisgICAgICAgIGNy
eXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzVHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVBHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvQWxnb3JpdGhtUmVnaXN0cnlHQ3J5cHQuY3BwCisg
ICAgICAgIGNyeXB0by9nY3J5cHQvQ3J5cHRvS2V5RUNHQ3J5cHQuY3BwCisgICAgICAgIGNyeXB0
by9nY3J5cHQvQ3J5cHRvS2V5UlNBR0NyeXB0LmNwcAorICAgICAgICBjcnlwdG8vZ2NyeXB0L1Nl
cmlhbGl6ZWRDcnlwdG9LZXlXcmFwR0NyeXB0LmNwcAorCisgICAgICAgIGNyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5RGF0YU9jdGV0U2Vx
dWVuY2UuY3BwCisgICAgICAgIGNyeXB0by9rZXlzL0NyeXB0b0tleURhdGFSU0FDb21wb25lbnRz
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKyAgICAgICAgY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKKyAgICAgICAgY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNB
LmNwcAorICAgICAgICBjcnlwdG8va2V5cy9DcnlwdG9LZXlSYXcuY3BwCisgICAgICAgIGNyeXB0
by9rZXlzL0NyeXB0b0tleVNlcmlhbGl6YXRpb25SYXcuY3BwCisgICAgKQorZW5kaWYgKCkKKwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3Qu
aAppbmRleCBmMmQ2YjNkNDJjNC4uNjYwYjNjNzg1MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5oCkBAIC02Niw2ICs2Niw4IEBA
IHR5cGVkZWYgV2ViQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXIgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CiAjZWxpZiBQTEFURk9STShHVEspCiB0eXBlZGVmIHN0cnVjdCBfQXRrT2JqZWN0
IEF0a09iamVjdDsKIHR5cGVkZWYgc3RydWN0IF9BdGtPYmplY3QgQWNjZXNzaWJpbGl0eU9iamVj
dFdyYXBwZXI7CisjZWxpZiBQTEFURk9STShXUEUpCitjbGFzcyBBY2Nlc3NpYmlsaXR5T2JqZWN0
V3JhcHBlciA6IHB1YmxpYyBSZWZDb3VudGVkPEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyPiB7
IH07CiAjZWxzZQogY2xhc3MgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBwZXI7CiAjZW5kaWYKQEAg
LTExMTUsNiArMTExNyw4IEBAIHByb3RlY3RlZDoKICAgICBDT01QdHI8QWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBBdGtPYmpl
Y3QqIG1fd3JhcHBlcjsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBSZWZQdHI8QWNjZXNzaWJp
bGl0eU9iamVjdFdyYXBwZXI+IG1fd3JhcHBlcjsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS93cGUvQVhPYmplY3RDYWNoZVdQRS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hlV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMTU0MTU5NGFkZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BWE9iamVjdENhY2hl
V1BFLmNwcApAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxp
YSwgUy5MLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0
aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBi
ZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhl
IGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSBy
ZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNl
bnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNv
ZnR3YXJlCisgKiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKworI2lmIEhBVkUoQUNDRVNTSUJJTElU
WSkKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBBWE9iamVjdENhY2hlOjpkZXRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3Qq
LCBBY2Nlc3NpYmlsaXR5RGV0YWNobWVudFR5cGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
K30KKwordm9pZCBBWE9iamVjdENhY2hlOjphdHRhY2hXcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmpl
Y3QqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
cG9zdFBsYXRmb3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWE5vdGlmaWNh
dGlvbikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6
Om5vZGVUZXh0Q2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCos
IEFYVGV4dENoYW5nZSwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjpmcmFtZUxvYWRpbmdFdmVudFBsYXRm
b3JtTm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqLCBBWExvYWRpbmdFdmVudCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFYT2JqZWN0Q2FjaGU6OnBsYXRmb3Jt
SGFuZGxlRm9jdXNlZFVJRWxlbWVudENoYW5nZWQoTm9kZSosIE5vZGUqKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlU2Nyb2xsZWRUb0Fu
Y2hvcihjb25zdCBOb2RlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VTU0lCSUxJVFkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L3dwZS9BY2Nlc3NpYmlsaXR5T2JqZWN0
V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvd3BlL0FjY2Vzc2liaWxpdHlP
YmplY3RXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZTk0
YzU5OTRjYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
d3BlL0FjY2Vzc2liaWxpdHlPYmplY3RXUEUuY3BwCkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhLCBTLkwuCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBm
cmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAg
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCisgKiAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFu
eSBsYXRlciB2ZXJzaW9uLgorICoKKyAqICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4g
dGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqICBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogIE1FUkNIQU5U
QUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05V
CisgKiAgTGVzc2VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAq
CisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5v
dCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyAqICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBG
cmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EK
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgor
CisjaWYgSEFWRShBQ0NFU1NJQklMSVRZKQorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmFjY2Vz
c2liaWxpdHlJZ25vcmVBdHRhY2htZW50KCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworQWNjZXNzaWJpbGl0eU9iamVjdEluY2x1c2lvbiBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjphY2Nlc3NpYmlsaXR5UGxhdGZvcm1JbmNsdWRlc09iamVjdCgp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gRGVmYXVsdEJlaGF2
aW9yOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBIQVZFKEFDQ0VT
U0lCSUxJVFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb25maWcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbmZpZy5oCmluZGV4IGQ1ZDQzZmU0ZGY0Li4xODA5OTBlYmZmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY29uZmlnLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29uZmlnLmgK
QEAgLTEwNCw3ICsxMDQsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKE1BQykK
KyNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUgVVNFX05FV19USEVN
RSAxCiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmgKaW5k
ZXggNDQzYTY4MjE1YWIuLjRjN2QwMjk4ZThlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlFQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUVDLmgKQEAgLTM2LDcgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX0NDRUNDcnlw
dG9yICpDQ0VDQ3J5cHRvclJlZjsKIHR5cGVkZWYgQ0NFQ0NyeXB0b3JSZWYgUGxhdGZvcm1FQ0tl
eTsKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV1BFKQogLy8gZ2NyeV9zZXhwKiBlcXVhdGVzIGdjcnlfc2V4cF90Lgogc3RydWN0IGdj
cnlfc2V4cDsKIHR5cGVkZWYgZ2NyeV9zZXhwKiBQbGF0Zm9ybUVDS2V5OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuaAppbmRleCAzMDViZDRjNDNhMC4uNDFiY2U4NTll
YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5oCkBAIC0zNiw3
ICszNiw3IEBAIHR5cGVkZWYgc3RydWN0IF9DQ1JTQUNyeXB0b3IgKkNDUlNBQ3J5cHRvclJlZjsK
IHR5cGVkZWYgQ0NSU0FDcnlwdG9yUmVmIFBsYXRmb3JtUlNBS2V5OwogI2VuZGlmCiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAvLyBnY3J5
X3NleHAqIGVxdWF0ZXMgZ2NyeV9zZXhwX3QuCiBzdHJ1Y3QgZ2NyeV9zZXhwOwogdHlwZWRlZiBn
Y3J5X3NleHAqIFBsYXRmb3JtUlNBS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCmluZGV4
IDNjMTU3ZWY2ZDg4Li4wNWU5MWJmZjAxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApA
QCAtMTI0NiwxMyArMTI0NiwxMyBAQCB2b2lkIEVkaXRvcjo6cGVyZm9ybUN1dE9yQ29weShFZGl0
b3JBY3Rpb25TcGVjaWZpZXIgYWN0aW9uKQogICAgICAgICAgICAgaW1hZ2VFbGVtZW50ID0gaW1h
Z2VFbGVtZW50RnJvbUltYWdlRG9jdW1lbnQoZG9jdW1lbnQoKSk7CiAKICAgICAgICAgaWYgKGlt
YWdlRWxlbWVudCkgewotI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYg
UExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgICAg
ICAgICAgd3JpdGVJbWFnZVRvUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCksICppbWFnZUVsZW1lbnQsIGRvY3VtZW50KCkudXJsKCksIGRvY3VtZW50KCkudGl0
bGUoKSk7CiAjZWxzZQogICAgICAgICAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBh
c3RlKCktPndyaXRlSW1hZ2UoKmltYWdlRWxlbWVudCwgZG9jdW1lbnQoKS51cmwoKSwgZG9jdW1l
bnQoKS50aXRsZSgpKTsKICNlbmRpZgogICAgICAgICB9IGVsc2UgewotI2lmIFBMQVRGT1JNKENP
Q09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogICAgICAgICAgICAgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKICNlbHNlCiAgICAgICAg
ICAgICAvLyBGSVhNRTogQ29udmVydCBhbGwgb3RoZXIgcGxhdGZvcm1zIHRvIG1hdGNoIE1hYyBh
bmQgZGVsZXRlIHRoaXMuCkBAIC0xMzc3LDcgKzEzNzcsNyBAQCB2b2lkIEVkaXRvcjo6Y29weUlt
YWdlKGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICBpZiAodXJsLmlzRW1wdHkoKSkK
ICAgICAgICAgdXJsID0gcmVzdWx0LmFic29sdXRlSW1hZ2VVUkwoKTsKIAotI2lmIFBMQVRGT1JN
KENPQ09BKSB8fCBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JN
KEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAgIHdyaXRlSW1hZ2VUb1Bhc3RlYm9hcmQoKlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCAqZWxlbWVudCwgdXJsLCByZXN1bHQuYWx0
RGlzcGxheVN0cmluZygpKTsKICNlbHNlCiAgICAgUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFu
ZFBhc3RlKCktPndyaXRlSW1hZ2UoKmVsZW1lbnQsIHVybCwgcmVzdWx0LmFsdERpc3BsYXlTdHJp
bmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAxNjUyYjZkYjM5My4uMzZiOTZiMmJj
ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaApAQCAtNDY3LDcgKzQ2Nyw3IEBAIHB1YmxpYzoK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlcGxhY2VTZWxlY3Rpb25XaXRoQXR0cmlidXRlZFN0
cmluZyhOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTWFpbEJsb2NrcXVvdGVIYW5kbGluZyA9IE1haWxC
bG9ja3F1b3RlSGFuZGxpbmc6OlJlc3BlY3RCbG9ja3F1b3RlKTsKICNlbmRpZgogCi0jaWYgUExB
VEZPUk0oQ09DT0EpIHx8IFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShDT0NPQSkgfHwgUExB
VEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB3cml0
ZVNlbGVjdGlvblRvUGFzdGVib2FyZChQYXN0ZWJvYXJkJik7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB3cml0ZUltYWdlVG9QYXN0ZWJvYXJkKFBhc3RlYm9hcmQmLCBFbGVtZW50JiBpbWFnZUVs
ZW1lbnQsIGNvbnN0IFVSTCYsIGNvbnN0IFN0cmluZyYgdGl0bGUpOwogICAgIHZvaWQgd3JpdGVT
ZWxlY3Rpb24oUGFzdGVib2FyZFdyaXRlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvd3BlL0VkaXRvcldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL3dw
ZS9FZGl0b3JXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5h
ZmZkMmRlMWU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvd3Bl
L0VkaXRvcldQRS5jcHAKQEAgLTAsMCArMSw4OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAi
RWRpdG9yLmgiCisKKyNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCisjaW5jbHVkZSAiRnJh
bWUuaCIKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhc3RlYm9hcmQu
aCIKKyNpbmNsdWRlICJtYXJrdXAuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMg
UGFzc1JlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBjcmVhdGVGcmFnbWVudEZyb21QYXN0ZWJvYXJk
RGF0YShQYXN0ZWJvYXJkJiBwYXN0ZWJvYXJkLCBGcmFtZSYgZnJhbWUsIFJhbmdlJiByYW5nZSwg
Ym9vbCBhbGxvd1BsYWluVGV4dCwgYm9vbCYgY2hvc2VQbGFpblRleHQpCit7CisgICAgY2hvc2VQ
bGFpblRleHQgPSBmYWxzZTsKKworICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzID0gcGFzdGVib2Fy
ZC50eXBlcygpOworICAgIGlmICh0eXBlcy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudWxs
cHRyOworCisgICAgaWYgKHR5cGVzLmNvbnRhaW5zKCJ0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCIp
ICYmIGZyYW1lLmRvY3VtZW50KCkpIHsKKyAgICAgICAgU3RyaW5nIG1hcmt1cCA9IHBhc3RlYm9h
cmQucmVhZFN0cmluZygidGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgiKTsKKyAgICAgICAgaWYgKFJl
ZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbU1hcmt1
cCgqZnJhbWUuZG9jdW1lbnQoKSwgbWFya3VwLCBlbXB0eVN0cmluZygpLCBEaXNhbGxvd1Njcmlw
dGluZ0FuZFBsdWdpbkNvbnRlbnQpKQorICAgICAgICAgICAgcmV0dXJuIGZyYWdtZW50LnJlbGVh
c2UoKTsKKyAgICB9CisKKyAgICBpZiAoIWFsbG93UGxhaW5UZXh0KQorICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKworICAgIGlmICh0eXBlcy5jb250YWlucygidGV4dC9wbGFpbjtjaGFyc2V0PXV0
Zi04IikpIHsKKyAgICAgICAgY2hvc2VQbGFpblRleHQgPSB0cnVlOworICAgICAgICBpZiAoUmVm
UHRyPERvY3VtZW50RnJhZ21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tVGV4dChy
YW5nZSwgcGFzdGVib2FyZC5yZWFkU3RyaW5nKCJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRmLTgiKSkp
CisgICAgICAgICAgICByZXR1cm4gZnJhZ21lbnQucmVsZWFzZSgpOworICAgIH0KKworICAgIHJl
dHVybiBudWxscHRyOworfQorCit2b2lkIEVkaXRvcjo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKK3sKKyAgICBQYXN0ZWJvYXJkV2ViQ29udGVudCBw
YXN0ZWJvYXJkQ29udGVudDsKKyAgICBwYXN0ZWJvYXJkQ29udGVudC50ZXh0ID0gc2VsZWN0ZWRU
ZXh0Rm9yRGF0YVRyYW5zZmVyKCk7CisgICAgcGFzdGVib2FyZENvbnRlbnQubWFya3VwID0gY3Jl
YXRlTWFya3VwKCpzZWxlY3RlZFJhbmdlKCksIG51bGxwdHIsIEFubm90YXRlRm9ySW50ZXJjaGFu
Z2UsIGZhbHNlLCBSZXNvbHZlTm9uTG9jYWxVUkxzKTsKKyAgICBwYXN0ZWJvYXJkLndyaXRlKHBh
c3RlYm9hcmRDb250ZW50KTsKK30KKwordm9pZCBFZGl0b3I6OndyaXRlSW1hZ2VUb1Bhc3RlYm9h
cmQoUGFzdGVib2FyZCYsIEVsZW1lbnQmLCBjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRWRpdG9yOjpwYXN0ZVdpdGhQYXN0ZWJv
YXJkKFBhc3RlYm9hcmQqIHBhc3RlYm9hcmQsIGJvb2wgYWxsb3dQbGFpblRleHQsIE1haWxCbG9j
a3F1b3RlSGFuZGxpbmcgbWFpbEJsb2NrcXVvdGVIYW5kbGluZykKK3sKKyAgICBSZWZQdHI8UmFu
Z2U+IHJhbmdlID0gc2VsZWN0ZWRSYW5nZSgpOworICAgIGlmICghcmFuZ2UpCisgICAgICAgIHJl
dHVybjsKKworICAgIGJvb2wgY2hvc2VQbGFpblRleHQ7CisgICAgUmVmUHRyPERvY3VtZW50RnJh
Z21lbnQ+IGZyYWdtZW50ID0gY3JlYXRlRnJhZ21lbnRGcm9tUGFzdGVib2FyZERhdGEoKnBhc3Rl
Ym9hcmQsIG1fZnJhbWUsICpyYW5nZSwgYWxsb3dQbGFpblRleHQsIGNob3NlUGxhaW5UZXh0KTsK
KyAgICBpZiAoZnJhZ21lbnQgJiYgc2hvdWxkSW5zZXJ0RnJhZ21lbnQoZnJhZ21lbnQsIHJhbmdl
LCBFZGl0b3JJbnNlcnRBY3Rpb246OlBhc3RlZCkpCisgICAgICAgIHBhc3RlQXNGcmFnbWVudCgq
ZnJhZ21lbnQsIGNhblNtYXJ0UmVwbGFjZVdpdGhQYXN0ZWJvYXJkKCpwYXN0ZWJvYXJkKSwgY2hv
c2VQbGFpblRleHQsIG1haWxCbG9ja3F1b3RlSGFuZGxpbmcpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNjk1N2M4Nzg0
ZmMuLmVkZTk0MDE3Mzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0y
NjExLDcgKzI2MTEsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aXNJbnNpZGVTY3JvbGxiYXIoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvaW50KSBjb25zdAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
I2lmICFQTEFURk9STShHVEspCisjaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkK
IAogYm9vbCBFdmVudEhhbmRsZXI6OnNob3VsZFR1cm5WZXJ0aWNhbFRpY2tzSW50b0hvcml6b250
YWwoY29uc3QgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIGNvbnN0
CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS93cGUvRXZlbnRIYW5kbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTE0ZTBmZTNiZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3dwZS9FdmVudEhhbmRsZXJXUEUuY3BwCkBAIC0w
LDAgKzEsMTA4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJFdmVudEhhbmRsZXIuaCIKKwor
I2luY2x1ZGUgIkZvY3VzQ29udHJvbGxlci5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworYm9vbCBFdmVudEhhbmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2Fy
ZEV2ZW50JikgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxz
ZTsKK30KKwordm9pZCBFdmVudEhhbmRsZXI6OmZvY3VzRG9jdW1lbnRWaWV3KCkKK3sKKyAgICBp
ZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUucGFnZSgpKQorICAgICAgICBwYWdlLT5mb2N1c0NvbnRy
b2xsZXIoKS5zZXRGb2N1c2VkRnJhbWUoJm1fZnJhbWUpOworfQorCitib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1dpZGdldE1vdXNlRG93bkV2ZW50VG9XaWRnZXQoY29uc3QgTW91c2VFdmVudFdpdGhI
aXRUZXN0UmVzdWx0cyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2lkZ2V0TW91c2VEb3duRXZlbnRUb1dp
ZGdldChSZW5kZXJXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlRG93bkV2ZW50VG9XaWRn
ZXQoV2lkZ2V0KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBFdmVudEhhbmRsZXI6OmV2ZW50QWN0aXZhdGVkVmlldyhjb25zdCBQbGF0Zm9y
bU1vdXNlRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6d2lkZ2V0RGlkSGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc01v
dXNlUHJlc3NFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZy
YW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwor
Ym9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVFdmVudFRvU3ViZnJhbWUoTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cyYsIEZyYW1lKiwgSGl0VGVzdFJlc3VsdCopCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgRXZlbnRIYW5kbGVy
OjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJl
c3VsdHMmLCBGcmFtZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKK09wdGlvblNldDxQbGF0Zm9ybUV2ZW50OjpNb2RpZmllcj4gRXZlbnRIYW5kbGVy
OjphY2Nlc3NLZXlNb2RpZmllcnMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIFBsYXRmb3JtRXZlbnQ6Ok1vZGlmaWVyOjpBbHRLZXk7Cit9CisKK2Jvb2wgRXZlbnRIYW5k
bGVyOjpzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCBjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKSBjb25zdAoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9DdXJzb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0N1cnNv
ci5oCmluZGV4IGNkY2YyNjVmMjYwLi41ZTkxMWQ3MDhiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vQ3Vyc29yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ3Vy
c29yLmgKQEAgLTc0LDYgKzc0LDggQEAgdXNpbmcgUGxhdGZvcm1DdXJzb3IgPSBSZWZQdHI8U2hh
cmVkQ3Vyc29yPjsKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gTlNDdXJzb3IgKjsKICNlbGlmIFBM
QVRGT1JNKEdUSykKIHVzaW5nIFBsYXRmb3JtQ3Vyc29yID0gR1JlZlB0cjxHZGtDdXJzb3I+Owor
I2VsaWYgUExBVEZPUk0oV1BFKQordXNpbmcgUGxhdGZvcm1DdXJzb3IgPSB2b2lkKjsKICNlbmRp
ZgogCiBjbGFzcyBDdXJzb3IgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKaW5kZXggNGE5
ZjgyZDlkZTQuLjVkYzlhZTM4MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9EcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdEYXRhLmgKQEAg
LTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgU2VsZWN0aW9uRGF0YTsK
IH0KIHR5cGVkZWYgV2ViQ29yZTo6U2VsZWN0aW9uRGF0YSogRHJhZ0RhdGFSZWY7Ci0jZWxpZiBQ
TEFURk9STShJT1MpCisjZWxpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKIHR5cGVk
ZWYgdm9pZCogRHJhZ0RhdGFSZWY7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1h
Z2UuaAppbmRleCBlMzI1NWQxOWFkMi4uY2JlZjczOGY2NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVkZWYgc3RydWN0IENHSW1hZ2UgKkNH
SW1hZ2VSZWY7CiBPQkpDX0NMQVNTIE5TSW1hZ2U7CiAjZWxpZiBQTEFURk9STShXSU4pCiB0eXBl
ZGVmIHN0cnVjdCBIQklUTUFQX18qIEhCSVRNQVA7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxp
ZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJSZWZQdHJDYWlyby5o
IgogI2VuZGlmCiAKQEAgLTY0LDcgKzY0LDcgQEAgdHlwZWRlZiBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gRHJhZ0ltYWdlUmVmOwogdHlwZWRlZiBSZXRhaW5QdHI8TlNJbWFnZT4gRHJhZ0ltYWdlUmVm
OwogI2VsaWYgUExBVEZPUk0oV0lOKQogdHlwZWRlZiBIQklUTUFQIERyYWdJbWFnZVJlZjsKLSNl
bGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQog
dHlwZWRlZiBSZWZQdHI8Y2Fpcm9fc3VyZmFjZV90PiBEcmFnSW1hZ2VSZWY7CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCmluZGV4IDE5NWI2NzZiYzJiLi4xZDgwYjRj
MTgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRmlsZVN5c3RlbS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZpbGVTeXN0ZW0uaApAQCAtMTk4LDcgKzE5OCw3
IEBAIFdFQkNPUkVfRVhQT1JUIGJvb2wgZmlsZXNIYXZlU2FtZVZvbHVtZShjb25zdCBTdHJpbmcm
LCBjb25zdCBTdHJpbmcmKTsKIFJldGFpblB0cjxDRlVSTFJlZj4gcGF0aEFzVVJMKGNvbnN0IFN0
cmluZyYpOwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8
fCBQTEFURk9STShXUEUpCiBTdHJpbmcgZmlsZW5hbWVGb3JEaXNwbGF5KGNvbnN0IFN0cmluZyYp
OwogQ1N0cmluZyBhcHBsaWNhdGlvbkRpcmVjdG9yeVBhdGgoKTsKIENTdHJpbmcgc2hhcmVkUmVz
b3VyY2VzUGF0aCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTWFpblRo
cmVhZFNoYXJlZFRpbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5jcHAKaW5kZXggNzc4Y2FjMmQ5OGIuLmRkYTY4MmViODQxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFyZWRUaW1lci5jcHAKQEAgLTM0
LDcgKzM0LDcgQEAgTWFpblRocmVhZFNoYXJlZFRpbWVyJiBNYWluVGhyZWFkU2hhcmVkVGltZXI6
OnNpbmdsZXRvbigpCiAgICAgcmV0dXJuIGluc3RhbmNlOwogfQogCi0jaWYgIVBMQVRGT1JNKEdU
SykKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oV1BFKQogTWFpblRocmVhZFNoYXJl
ZFRpbWVyOjpNYWluVGhyZWFkU2hhcmVkVGltZXIoKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vTWFpblRocmVhZFNoYXJlZFRpbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9NYWluVGhyZWFkU2hhcmVkVGltZXIuaAppbmRleCA1OTBmNjg5NGFkMy4uNDkw
NzMwZjE0MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRT
aGFyZWRUaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL01haW5UaHJlYWRTaGFy
ZWRUaW1lci5oCkBAIC0zMCw3ICszMCw3IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKICNp
bmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KIAotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQ
TEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgog
I2VuZGlmCiAKQEAgLTU0LDcgKzU0LDcgQEAgcHJpdmF0ZToKICAgICBNYWluVGhyZWFkU2hhcmVk
VGltZXIoKTsKIAogICAgIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBtX2ZpcmVkRnVuY3Rpb247Ci0j
aWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKQogICAg
IFJ1bkxvb3A6OlRpbWVyPE1haW5UaHJlYWRTaGFyZWRUaW1lcj4gbV90aW1lcjsKICNlbmRpZgog
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAppbmRleCA0MjllMWFmMTQwMC4uNmU2
ZjIxNjVmOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTYyLDcgKzYy
LDcgQEAgZW51bSBTaG91bGRTZXJpYWxpemVTZWxlY3RlZFRleHRGb3JEYXRhVHJhbnNmZXIgeyBE
ZWZhdWx0U2VsZWN0ZWRUZXh0VHlwZSwgSW5jbHUKIC8vIEZvciB3cml0aW5nIHRvIHRoZSBwYXN0
ZWJvYXJkLiBHZW5lcmFsbHkgc29ydGVkIHdpdGggdGhlIHJpY2hlc3QgZm9ybWF0cyBvbiB0b3Au
CiAKIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudCB7Ci0jaWYgIShQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikpCisjaWYgIShQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwg
UExBVEZPUk0oV1BFKSkKICAgICBXRUJDT1JFX0VYUE9SVCBQYXN0ZWJvYXJkV2ViQ29udGVudCgp
OwogICAgIFdFQkNPUkVfRVhQT1JUIH5QYXN0ZWJvYXJkV2ViQ29udGVudCgpOwogICAgIGJvb2wg
Y2FuU21hcnRDb3B5T3JEZWxldGU7CkBAIC04MCw2ICs4MCwxMCBAQCBzdHJ1Y3QgUGFzdGVib2Fy
ZFdlYkNvbnRlbnQgewogICAgIFN0cmluZyB0ZXh0OwogICAgIFN0cmluZyBtYXJrdXA7CiAjZW5k
aWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgU3RyaW5nIHRleHQ7CisgICAgU3RyaW5nIG1hcmt1
cDsKKyNlbmRpZgogfTsKIAogc3RydWN0IFBhc3RlYm9hcmRVUkwgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkU3RyYXRlZ3kuaAppbmRleCBkNzJmMTIwZmNmYy4uM2M2ZGE2
YzdiYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJh
dGVneS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
CkBAIC03MywxMCArNzMsMTkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgbG9uZyBzZXRQYXRobmFt
ZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpID0gMDsKICNlbmRpZgorCiAjaWYg
UExBVEZPUk0oR1RLKQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFNlbGVjdGlvbkRhdGEmKSA9IDA7CiAgICAgdmly
dHVhbCBSZWY8U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgPSAwOwogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0VHlwZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVz
KSA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgcmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKGludCBp
bmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCB3cml0ZVRvUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkV2ViQ29udGVudCYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgd3JpdGVUb1Bhc3RlYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJikgPSAwOworI2VuZGlmCisKIHByb3RlY3RlZDoKICAgICB2aXJ0
dWFsIH5QYXN0ZWJvYXJkU3RyYXRlZ3koKQogICAgIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmgKaW5kZXggODVhOGM5ZmMwNWMuLjIzZjZmMzBjNTJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNDAs
NiArNDAsMTAgQEAgT0JKQ19DTEFTUyBOU1Bhc3RlYm9hcmQ7CiBPQkpDX0NMQVNTIFVJUGFzdGVi
b2FyZDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9wYXN0ZWJvYXJk
OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ29sb3I7CkBAIC01Myw3
ICs1Nyw3IEBAIHN0cnVjdCBQYXN0ZWJvYXJkV2ViQ29udGVudDsKIGNsYXNzIFBsYXRmb3JtUGFz
dGVib2FyZCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUGxhdGZvcm1Q
YXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpOwotI2lmIFBMQVRGT1JNKElP
UykKKyNpZiBQTEFURk9STShJT1MpIHx8IFBMQVRGT1JNKFdQRSkKICAgICBXRUJDT1JFX0VYUE9S
VCBQbGF0Zm9ybVBhc3RlYm9hcmQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8U3RyaW5n
PiBmaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IGdldFR5cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KFZlY3RvcjxTdHJpbmc+JiB0eXBlcywg
aW50IGluZGV4KTsKQEAgLTExMCw2ICsxMTQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBHdGtDbGlwYm9hcmQqIG1fY2xpcGJvYXJkOwogI2VuZGlmCisjaWYgUExBVEZPUk0o
V1BFKQorICAgIHN0cnVjdCB3cGVfcGFzdGVib2FyZCogbV9wYXN0ZWJvYXJkOworI2VuZGlmCiB9
OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3Ry
eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKaW5kZXgg
NWJhZDNjZDBkNTYuLjY0ZTM1NjM5NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY2hlbWVSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2No
ZW1lUmVnaXN0cnkuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBVUkxTY2hlbWVzTWFwJiBz
ZWN1cmVTY2hlbWVzKCkKICAgICAgICAgc2VjdXJlU2NoZW1lcy5nZXQoKS5hZGQoImFib3V0Iik7
CiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRkKCJkYXRhIik7CiAgICAgICAgIHNlY3Vy
ZVNjaGVtZXMuZ2V0KCkuYWRkKCJ3c3MiKTsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZP
Uk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIHNlY3VyZVNjaGVtZXMuZ2V0KCkuYWRk
KCJyZXNvdXJjZSIpOwogI2VuZGlmCiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vV2lkZ2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9XaWRnZXQuaAppbmRl
eCA1NWI0OWE0ZGRjNy4uNWQ3YWE0OGE3MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1dpZGdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1dpZGdldC5oCkBA
IC02MSw2ICs2MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrQ29udGFpbmVyIEd0a0NvbnRhaW5l
cjsKIHR5cGVkZWYgR3RrV2lkZ2V0KiBQbGF0Zm9ybVdpZGdldDsKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQordHlwZWRlZiB2b2lkKiBQbGF0Zm9ybVdpZGdldDsKKyNlbmRpZgorCiB0eXBl
ZGVmIFBsYXRmb3JtV2lkZ2V0IFBsYXRmb3JtUGFnZUNsaWVudDsKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRp
b0J1c0dMaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1
c0dMaWIuY3BwCmluZGV4IDc5MWJmYTM5NjM2Li44MTk3NWI2NGE1ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vZ2xpYi9BdWRpb0J1c0dMaWIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2dsaWIvQXVkaW9CdXNHTGliLmNwcApAQCAtMjcs
MTEgKzI3LDE3IEBACiAjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0
Zi9nbGliL0dVbmlxdWVQdHIuaD4KIAorI2lmIFBMQVRGT1JNKEdUSykKKyNkZWZpbmUgQVVESU9f
R1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpbyIKKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyNkZWZpbmUgQVVESU9fR1JFU09VUkNFX1BBVEggIi9vcmcvd2Via2l0d3Bl
L3Jlc291cmNlcy9hdWRpbyIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBhc3NS
ZWZQdHI8QXVkaW9CdXM+IEF1ZGlvQnVzOjpsb2FkUGxhdGZvcm1SZXNvdXJjZShjb25zdCBjaGFy
KiBuYW1lLCBmbG9hdCBzYW1wbGVSYXRlKQogewotICAgIEdVbmlxdWVQdHI8Y2hhcj4gcGF0aChn
X3N0cmR1cF9wcmludGYoIi9vcmcvd2Via2l0Z3RrL3Jlc291cmNlcy9hdWRpby8lcyIsIG5hbWUp
KTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IHBhdGgoZ19zdHJkdXBfcHJpbnRmKEFVRElPX0dSRVNP
VVJDRV9QQVRIICIvJXMiLCBuYW1lKSk7CiAgICAgR1JlZlB0cjxHQnl0ZXM+IGRhdGEgPSBhZG9w
dEdSZWYoZ19yZXNvdXJjZXNfbG9va3VwX2RhdGEocGF0aC5nZXQoKSwgR19SRVNPVVJDRV9MT09L
VVBfRkxBR1NfTk9ORSwgbnVsbHB0cikpOwogICAgIEFTU0VSVChkYXRhKTsKICAgICByZXR1cm4g
Y3JlYXRlQnVzRnJvbUluTWVtb3J5QXVkaW9GaWxlKGdfYnl0ZXNfZ2V0X2RhdGEoZGF0YS5nZXQo
KSwgbnVsbHB0ciksIGdfYnl0ZXNfZ2V0X3NpemUoZGF0YS5nZXQoKSksIGZhbHNlLCBzYW1wbGVS
YXRlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dsaWIvRmlsZVN5c3Rl
bUdsaWIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ2xpYi9GaWxlU3lzdGVtR2xpYi5j
cHAKaW5kZXggNmZhM2VhNzcxZjMuLjgzZDMyZTEzOGY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9nbGliL0ZpbGVTeXN0ZW1HbGliLmNwcApAQCAtMjEzLDYgKzIxMyw5IEBAIENT
dHJpbmcgc2hhcmVkUmVzb3VyY2VzUGF0aCgpCiAgICAgaWYgKCFjYWNoZWRQYXRoLmlzTnVsbCgp
KQogICAgICAgICByZXR1cm4gY2FjaGVkUGF0aDsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBkYXRhUGF0aChnX2J1aWxkX2ZpbGVuYW1lKERBVEFfRElSLCAid3Bl
IiwgbnVsbHB0cikpOworI2VsaWYgUExBVEZPUk0oR1RLKQogI2lmIE9TKFdJTkRPV1MpCiAgICAg
SE1PRFVMRSBobW9kdWxlID0gMDsKICAgICBHZXRNb2R1bGVIYW5kbGVFeEEoR0VUX01PRFVMRV9I
QU5ETEVfRVhfRkxBR19GUk9NX0FERFJFU1MsIHJlaW50ZXJwcmV0X2Nhc3Q8Y2hhcio+KHNoYXJl
ZFJlc291cmNlc1BhdGgpLCAmaG1vZHVsZSk7CkBAIC0yMjIsNiArMjI1LDcgQEAgQ1N0cmluZyBz
aGFyZWRSZXNvdXJjZXNQYXRoKCkKICNlbHNlCiAgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YVBh
dGgoZ19idWlsZF9maWxlbmFtZShEQVRBX0RJUiwgIndlYmtpdGd0ay0iIFdFQktJVEdUS19BUElf
VkVSU0lPTl9TVFJJTkcsIE5VTEwpKTsKICNlbmRpZgorI2VuZGlmCiAKICAgICBjYWNoZWRQYXRo
ID0gZGF0YVBhdGguZ2V0KCk7CiAgICAgcmV0dXJuIGNhY2hlZFBhdGg7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9BTkdMRVdlYktpdEJyaWRnZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaAppbmRleCA5
MTE0ZTc2Yzc1OS4uMmFjY2ZhZDE1OTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0FOR0xFV2ViS2l0QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQU5HTEVXZWJLaXRCcmlkZ2UuaApAQCAtMzYsNyArMzYsNyBAQAogI2lu
Y2x1ZGUgPE9wZW5HTC9nbC5oPgogI2VsaWYgUExBVEZPUk0oV0lOKQogI2luY2x1ZGUgIk9wZW5H
TEVTU2hpbXMuaCIKLSNlbGlmIFBMQVRGT1JNKEdUSykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwg
UExBVEZPUk0oV1BFKQogI2lmIFVTRShPUEVOR0xfRVNfMikKICNpbmNsdWRlIDxHTEVTMi9nbDIu
aD4KICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9H
TENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0
LmNwcAppbmRleCA3MGY1ODczOTJmNi4uYzE1YmVjNWU5YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dMQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250ZXh0LmNwcApAQCAtMTIwLDcgKzEyMCw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxHTENvbnRleHQ+IEdMQ29udGV4dDo6Y3JlYXRlU2hhcmluZ0NvbnRleHQo
UGxhdGZvcm1EaXNwbGF5JiBkaXNwCiAgICAgfQogI2VuZGlmCiAKLSNpZiBVU0UoRUdMKSB8fCBQ
TEFURk9STShXQVlMQU5EKQorI2lmIFVTRShFR0wpIHx8IFBMQVRGT1JNKFdBWUxBTkQpIHx8IFBM
QVRGT1JNKFdQRSkKICAgICBpZiAoYXV0byBlZ2xDb250ZXh0ID0gR0xDb250ZXh0RUdMOjpjcmVh
dGVTaGFyaW5nQ29udGV4dChkaXNwbGF5KSkKICAgICAgICAgcmV0dXJuIFdURk1vdmUoZWdsQ29u
dGV4dCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dMQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR0xDb250
ZXh0LmgKaW5kZXggMmMwZWEyN2UxOTMuLjA0NjllYjUzM2I1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HTENvbnRleHQuaApAQCAtMjUsNyArMjUsMTMgQEAKICNpbmNs
dWRlIDx3dGYvTm9uY29weWFibGUuaD4KIAogI2lmIFVTRShFR0wpICYmICFQTEFURk9STShHVEsp
CisjaWYgUExBVEZPUk0oV1BFKQorLy8gRklYTUU6IEZpbmQgc29tZSB3YXkgdG8gZGVkdWNlIHRo
aXMuCisjZGVmaW5lIF9fR0JNX18gMQorI2luY2x1ZGUgPEVHTC9lZ2xwbGF0Zm9ybS5oPgorI2Vs
c2UKICNpbmNsdWRlICJlZ2xwbGF0Zm9ybS5oIgorI2VuZGlmCiB0eXBlZGVmIEVHTE5hdGl2ZVdp
bmRvd1R5cGUgR0xOYXRpdmVXaW5kb3dUeXBlOwogI2Vsc2UKIHR5cGVkZWYgdWludDY0X3QgR0xO
YXRpdmVXaW5kb3dUeXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvR3JhcGhpY3NDb250ZXh0M0QuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzQ29udGV4dDNELmgKaW5kZXggN2Q4MGQ1YjQ1YjQuLmIyYjc5NTI1NDVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRl
eHQzRC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29u
dGV4dDNELmgKQEAgLTYwLDcgKzYwLDcgQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiBP
QkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIFdlYkdMTGF5ZXI7Ci0jZWxpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdJTl9DQUlSTykKKyNlbGlmIFBMQVRGT1JNKEdUSykgfHwgUExB
VEZPUk0oV0lOX0NBSVJPKSB8fCBQTEFURk9STShXUEUpCiB0eXBlZGVmIHVuc2lnbmVkIGludCBH
THVpbnQ7CiAjZW5kaWYKIApAQCAtMTM3Myw3ICsxMzczLDcgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxTaGFkZXJOYW1lSGFzaD4gbmFtZUhhc2hNYXBGb3JTaGFkZXJzOwogCi0j
aWYgKChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikpICYmIFVTRShPUEVOR0xfRVNfMikp
CisjaWYgKChQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKSkg
JiYgVVNFKE9QRU5HTF9FU18yKSkKICAgICBmcmllbmQgY2xhc3MgRXh0ZW5zaW9uczNET3BlbkdM
RVM7CiAgICAgc3RkOjp1bmlxdWVfcHRyPEV4dGVuc2lvbnMzRE9wZW5HTEVTPiBtX2V4dGVuc2lv
bnM7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
T3BlbkdMRVNTaGltcy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdM
RVNTaGltcy5oCmluZGV4IGI0ZTk1MTU3MjE3Li5hYjdjNmI4ZjM5NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvT3BlbkdMRVNTaGltcy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL09wZW5HTEVTU2hpbXMuaApAQCAtMjYsNyArMjYs
NyBAQAogI2lmbmRlZiBPcGVuR0xFU1NoaW1zX2gKICNkZWZpbmUgT3BlbkdMRVNTaGltc19oCiAK
LSNpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdJTikKKyNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBnbEJpbmRGcmFtZWJ1ZmZl
ckVYVCBnbEJpbmRGcmFtZWJ1ZmZlcgogI2RlZmluZSBnbEZyYW1lYnVmZmVyVGV4dHVyZTJERVhU
IGdsRnJhbWVidWZmZXJUZXh0dXJlMkQKICNkZWZpbmUgZ2xCaW5kUmVuZGVyYnVmZmVyRVhUIGds
QmluZFJlbmRlcmJ1ZmZlcgpAQCAtNDUsNiArNDUsNyBAQAogI2RlZmluZSBnbElzRnJhbWVidWZm
ZXJFWFQgZ2xJc0ZyYW1lYnVmZmVyCiAjZGVmaW5lIGdsR2VuZXJhdGVNaXBtYXBFWFQgZ2xHZW5l
cmF0ZU1pcG1hcAogI2RlZmluZSBHTF9ERVBUSF9BVFRBQ0hNRU5UX0VYVCBHTF9ERVBUSF9BVFRB
Q0hNRU5UCisjZGVmaW5lIEdMX0NPTE9SX0FUVEFDSE1FTlQwX0VYVCBHTF9DT0xPUl9BVFRBQ0hN
RU5UMAogI2RlZmluZSBHTF9GUkFNRUJVRkZFUl9DT01QTEVURV9FWFQgR0xfRlJBTUVCVUZGRVJf
Q09NUExFVEUKICNkZWZpbmUgR0xfRlJBTUVCVUZGRVJfRVhUIEdMX0ZSQU1FQlVGRkVSCiAjZGVm
aW5lIEdMX0RFUFRIMjRfU1RFTkNJTDhfRVhUIEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXku
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNw
cAppbmRleCA2N2VmYmNlYjhiMy4uMWI3MTk1NGY1NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5LmNwcApAQCAtNDIsNiArNDIs
MTAgQEAKICNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXlXaW4uaCIKICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorI2luY2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgorI2VuZGlmCisKICNp
ZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgogI2VuZGlmCkBAIC0xMDAsNiAr
MTA0LDEwIEBAIHN0ZDo6dW5pcXVlX3B0cjxQbGF0Zm9ybURpc3BsYXk+IFBsYXRmb3JtRGlzcGxh
eTo6Y3JlYXRlUGxhdGZvcm1EaXNwbGF5KCkKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxQ
bGF0Zm9ybURpc3BsYXlYMTE+KG51bGxwdHIpOwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShXUEUp
CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UGxhdGZvcm1EaXNwbGF5V1BFPigpOworI2Vu
ZGlmCisKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BsYXRmb3JtRGlz
cGxheS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGxhdGZvcm1EaXNwbGF5
LmgKaW5kZXggZjc2NGMyZDQ1MWYuLmNiNWZhMWVmMzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QbGF0Zm9ybURpc3BsYXkuaApAQCAtNTQsNiArNTQsOSBA
QCBwdWJsaWM6CiAjaWYgUExBVEZPUk0oV0lOKQogICAgICAgICBXaW5kb3dzLAogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgICAgICBXUEUsCisjZW5kaWYKICAgICB9OwogCiAgICAgdmly
dHVhbCBUeXBlIHR5cGUoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2VnbC9HTENvbnRleHRFR0wuY3BwCmluZGV4IDFjMWNlYzI2YWNmLi45
ZmU3NTVmYzU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5jcHAKQEAgLTIwNCw2ICsyMDQsMTMgQEAgc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVTaGFyaW5nQ29udGV4dChQbGF0
Zm9ybURpc3BsYXkKICAgICBpZiAoZWdsQmluZEFQSShnRUdMQVBJVmVyc2lvbikgPT0gRUdMX0ZB
TFNFKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBp
ZiAocGxhdGZvcm1EaXNwbGF5LnR5cGUoKSA9PSBQbGF0Zm9ybURpc3BsYXk6OlR5cGU6OldQRSkg
eworICAgICAgICBpZiAoYXV0byBjb250ZXh0ID0gY3JlYXRlV1BFQ29udGV4dChwbGF0Zm9ybURp
c3BsYXkpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRleHQ7CisgICAgfQorI2VuZGlmCisKICAg
ICBhdXRvIGNvbnRleHQgPSBjcmVhdGVTdXJmYWNlbGVzc0NvbnRleHQocGxhdGZvcm1EaXNwbGF5
KTsKICAgICBpZiAoIWNvbnRleHQpIHsKICNpZiBQTEFURk9STShYMTEpCkBAIC0yNTEsNiArMjU4
LDkgQEAgR0xDb250ZXh0RUdMOjp+R0xDb250ZXh0RUdMKCkKICNpZiBQTEFURk9STShXQVlMQU5E
KQogICAgIGRlc3Ryb3lXYXlsYW5kV2luZG93KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUp
CisgICAgZGVzdHJveVdQRVRhcmdldCgpOworI2VuZGlmCiB9CiAKIGJvb2wgR0xDb250ZXh0RUdM
OjpjYW5SZW5kZXJUb0RlZmF1bHRGcmFtZWJ1ZmZlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMLmgKaW5kZXggZTVhMzM1OTdkN2Iu
LjlhMDMzZmViMmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZWdsL0dMQ29udGV4dEVHTC5oCkBAIC0zMiw2ICszMiwxMCBAQAogc3RydWN0IHdsX2VnbF93
aW5kb3c7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyNpbmNsdWRlICJQbGF0Zm9ybURp
c3BsYXlXUEUuaCIKKyNlbmRpZgorCiB0eXBlZGVmIHZvaWQgKkVHTENvbmZpZzsKIHR5cGVkZWYg
dm9pZCAqRUdMQ29udGV4dDsKIHR5cGVkZWYgdm9pZCAqRUdMRGlzcGxheTsKQEAgLTczLDYgKzc3
LDkgQEAgcHJpdmF0ZToKICAgICBHTENvbnRleHRFR0woUGxhdGZvcm1EaXNwbGF5JiwgRUdMQ29u
dGV4dCwgRUdMU3VyZmFjZSwgV2xVbmlxdWVQdHI8c3RydWN0IHdsX3N1cmZhY2U+JiYsIHN0cnVj
dCB3bF9lZ2xfd2luZG93Kik7CiAgICAgdm9pZCBkZXN0cm95V2F5bGFuZFdpbmRvdygpOwogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZGVzdHJveVdQRVRhcmdldCgpOworI2Vu
ZGlmCiAKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPEdMQ29udGV4dEVHTD4gY3JlYXRlV2lu
ZG93Q29udGV4dChHTE5hdGl2ZVdpbmRvd1R5cGUsIFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRl
eHQgc2hhcmluZ0NvbnRleHQgPSBudWxscHRyKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PEdMQ29udGV4dEVHTD4gY3JlYXRlUGJ1ZmZlckNvbnRleHQoUGxhdGZvcm1EaXNwbGF5JiwgRUdM
Q29udGV4dCBzaGFyaW5nQ29udGV4dCA9IG51bGxwdHIpOwpAQCAtODUsNiArOTIsOSBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdMPiBjcmVhdGVXYXls
YW5kQ29udGV4dChQbGF0Zm9ybURpc3BsYXkmLCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0ID0g
bnVsbHB0cik7CiAgICAgc3RhdGljIEVHTFN1cmZhY2UgY3JlYXRlV2luZG93U3VyZmFjZVdheWxh
bmQoRUdMRGlzcGxheSwgRUdMQ29uZmlnLCBHTE5hdGl2ZVdpbmRvd1R5cGUpOwogI2VuZGlmCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8R0xDb250ZXh0RUdM
PiBjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3JtRGlzcGxheSYsIEVHTENvbnRleHQgc2hhcmluZ0Nv
bnRleHQgPSBudWxscHRyKTsKKyNlbmRpZgogCiAgICAgc3RhdGljIGJvb2wgZ2V0RUdMQ29uZmln
KEVHTERpc3BsYXksIEVHTENvbmZpZyosIEVHTFN1cmZhY2VUeXBlKTsKIApAQCAtOTgsNiArMTA4
LDkgQEAgcHJpdmF0ZToKICAgICBXbFVuaXF1ZVB0cjxzdHJ1Y3Qgd2xfc3VyZmFjZT4gbV93bFN1
cmZhY2U7CiAgICAgc3RydWN0IHdsX2VnbF93aW5kb3cqIG1fd2xXaW5kb3cgeyBudWxscHRyIH07
CiAjZW5kaWYKKyNpZiBQTEFURk9STShXUEUpCisgICAgc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3Jt
RGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBtX3dwZVRhcmdldDsKKyNlbmRpZgogI2lm
IFVTRShDQUlSTykKICAgICBjYWlyb19kZXZpY2VfdCogbV9jYWlyb0RldmljZSB7IG51bGxwdHIg
fTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZWdsL0dMQ29udGV4dEVHTFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMC4uOWYzZjQyZDc2NDIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9lZ2wvR0xDb250ZXh0RUdMV1BFLmNwcApAQCAtMCwwICsxLDQ0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAqICBUaGlzIGxp
YnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisg
KiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1
YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k
YXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3Ry
aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhP
VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAq
ICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBT
ZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRl
dGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkdMQ29udGV4
dEVHTC5oIgorCisjaWYgVVNFKEVHTCkgJiYgUExBVEZPUk0oV1BFKQorCisjaW5jbHVkZSAiUGxh
dGZvcm1EaXNwbGF5V1BFLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVf
cHRyPEdMQ29udGV4dEVHTD4gR0xDb250ZXh0RUdMOjpjcmVhdGVXUEVDb250ZXh0KFBsYXRmb3Jt
RGlzcGxheSYgcGxhdGZvcm1EaXNwbGF5LCBFR0xDb250ZXh0IHNoYXJpbmdDb250ZXh0KQorewor
ICAgIGF1dG8gb2Zmc2NyZWVuVGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihw
bGF0Zm9ybURpc3BsYXkpLmNyZWF0ZUVHTE9mZnNjcmVlblRhcmdldCgpOworICAgIGF1dG8gY29u
dGV4dCA9IGNyZWF0ZVdpbmRvd0NvbnRleHQob2Zmc2NyZWVuVGFyZ2V0LT5uYXRpdmVXaW5kb3co
KSwgcGxhdGZvcm1EaXNwbGF5LCBzaGFyaW5nQ29udGV4dCk7CisgICAgaWYgKGNvbnRleHQpCisg
ICAgICAgIGNvbnRleHQtPm1fd3BlVGFyZ2V0ID0gV1RGTW92ZShvZmZzY3JlZW5UYXJnZXQpOwor
ICAgIHJldHVybiBjb250ZXh0OworfQorCit2b2lkIEdMQ29udGV4dEVHTDo6ZGVzdHJveVdQRVRh
cmdldCgpCit7CisgICAgbV93cGVUYXJnZXQgPSBudWxscHRyOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBVU0UoRUdMKSAmJiBQTEFURk9STShXUEUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5
ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5jcHAKaW5kZXgg
MmJmMTFlYTFiZDcuLjI5MTczNDM2ZmJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9nc3RyZWFtZXIvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3N0cmVhbWVyL01lZGlh
UGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2UuY3BwCkBAIC01OSw3ICs1OSw5IEBACiAjZW5kaWYK
IAogI2lmIFVTRShFR0wpCisjaWYgIVBMQVRGT1JNKFdQRSkKICNpbmNsdWRlICJHTENvbnRleHRF
R0wuaCIKKyNlbmRpZgogI2luY2x1ZGUgPGdzdC9nbC9lZ2wvZ3N0Z2xkaXNwbGF5X2VnbC5oPgog
I2VuZGlmCiAKQEAgLTY5LDYgKzcxLDggQEAKIAogI2lmIFBMQVRGT1JNKFdBWUxBTkQpCiAjaW5j
bHVkZSAiUGxhdGZvcm1EaXNwbGF5V2F5bGFuZC5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2lu
Y2x1ZGUgIlBsYXRmb3JtRGlzcGxheVdQRS5oIgogI2VuZGlmCiAKIC8vIGdzdGdsYXBpLmggbWF5
IGluY2x1ZGUgZWdscGxhdGZvcm0uaCBhbmQgaXQgaW5jbHVkZXMgWC5oLCB3aGljaApAQCAtNDM5
LDYgKzQ0MywxMSBAQCBib29sIE1lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lckJhc2U6OmVuc3Vy
ZUdzdEdMQ29udGV4dCgpCiAgICAgICAgICAgICBtX2dsRGlzcGxheSA9IEdTVF9HTF9ESVNQTEFZ
KGdzdF9nbF9kaXNwbGF5X2VnbF9uZXdfd2l0aF9lZ2xfZGlzcGxheShkb3duY2FzdDxQbGF0Zm9y
bURpc3BsYXlXYXlsYW5kPihzaGFyZWREaXNwbGF5KS5lZ2xEaXNwbGF5KCkpKTsKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBBU1NFUlQoaXM8UGxhdGZvcm1EaXNwbGF5V1BF
PihzaGFyZWREaXNwbGF5KSk7CisgICAgICAgIG1fZ2xEaXNwbGF5ID0gR1NUX0dMX0RJU1BMQVko
Z3N0X2dsX2Rpc3BsYXlfZWdsX25ld193aXRoX2VnbF9kaXNwbGF5KGRvd25jYXN0PFBsYXRmb3Jt
RGlzcGxheVdQRT4oc2hhcmVkRGlzcGxheSkuZWdsRGlzcGxheSgpKSk7CisjZW5kaWYKKwogICAg
ICAgICBBU1NFUlQobV9nbERpc3BsYXkpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbmdsL0dyYXBoaWNzQ29udGV4dDNET3BlbkdMQ29t
bW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGlj
c0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKaW5kZXggYzdhMGVjN2YyNTIuLjEyNjVlMDAxZDhi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9vcGVuZ2wvR3Jh
cGhpY3NDb250ZXh0M0RPcGVuR0xDb21tb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL29wZW5nbC9HcmFwaGljc0NvbnRleHQzRE9wZW5HTENvbW1vbi5jcHAKQEAg
LTIzNiw2ICsyMzYsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDNEOjpwcmVwYXJlVGV4dHVyZSgp
CiAgICAgICAgIHJlc29sdmVNdWx0aXNhbXBsaW5nSWZOZWNlc3NhcnkoKTsKIAogI2lmIFVTRShD
T09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKKyNpZiBVU0UoT1BFTkdMX0VTXzIpCisgICAg
OjpnbEZsdXNoKCk7CisjZW5kaWYKICAgICBzdGQ6OnN3YXAobV90ZXh0dXJlLCBtX2NvbXBvc2l0
b3JUZXh0dXJlKTsKICAgICBzdGQ6OnN3YXAobV90ZXh0dXJlLCBtX2ludGVybWVkaWF0ZVRleHR1
cmUpOwogICAgIDo6Z2xCaW5kRnJhbWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIG1fZmJvKTsKQEAg
LTM5OCw3ICs0MDEsNyBAQCBib29sIEdyYXBoaWNzQ29udGV4dDNEOjpjaGVja1ZhcnlpbmdzUGFj
a2luZyhQbGF0Zm9ybTNET2JqZWN0IHZlcnRleFNoYWRlciwgUGxhdAogICAgICAgICB2YXJpYWJs
ZXMucHVzaF9iYWNrKHZhcnlpbmdTeW1ib2wpOwogCiAgICAgR0MzRGludCBtYXhWYXJ5aW5nVmVj
dG9ycyA9IDA7Ci0jaWYgIVBMQVRGT1JNKElPUykgJiYgISgoUExBVEZPUk0oV0lOKSB8fCBQTEFU
Rk9STShHVEspKSAmJiBVU0UoT1BFTkdMX0VTXzIpKQorI2lmICFQTEFURk9STShJT1MpICYmICEo
KFBMQVRGT1JNKFdJTikgfHwgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpKSAmJiBVU0Uo
T1BFTkdMX0VTXzIpKQogICAgIEdDM0RpbnQgbWF4VmFyeWluZ0Zsb2F0cyA9IDA7CiAgICAgOjpn
bEdldEludGVnZXJ2KEdMX01BWF9WQVJZSU5HX0ZMT0FUUywgJm1heFZhcnlpbmdGbG9hdHMpOwog
ICAgIG1heFZhcnlpbmdWZWN0b3JzID0gbWF4VmFyeWluZ0Zsb2F0cyAvIDQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSWNvbldQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQzYzM3YmRmOGFhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL0ljb25XUEUuY3BwCkBAIC0w
LDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkljb24uaCIKKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitJY29uOjp+SWNvbigpCit7Cit9CisKK3ZvaWQgSWNvbjo6cGFpbnQoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JikKK3sKK30KKworUmVmUHRyPEljb24+IElj
b246OmNyZWF0ZUljb25Gb3JGaWxlcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYpCit7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvSW1hZ2VXUEUuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lYWEzMGE4NTY2YwotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dwZS9JbWFnZVdQRS5jcHAKQEAgLTAs
MCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQml0bWFwSW1hZ2UuaCIKKworI2lu
Y2x1ZGUgPGNzdGRpbz4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIEJpdG1hcEltYWdl
OjppbnZhbGlkYXRlUGxhdGZvcm1EYXRhKCkKK3sKK30KKworUGFzc1JlZlB0cjxJbWFnZT4gSW1h
Z2U6OmxvYWRQbGF0Zm9ybVJlc291cmNlKGNvbnN0IGNoYXIqIHJlc291cmNlKQoreworICAgIHN0
ZDo6ZnByaW50ZihzdGRlcnIsICJXQVJOSU5HOiB0cnlpbmcgdG8gbG9hZCBwbGF0Zm9ybSByZXNv
dXJjZSAnJXMnXG4iLCByZXNvdXJjZSk7CisgICAgcmV0dXJuIEJpdG1hcEltYWdlOjpjcmVhdGUo
KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1BsYXRmb3JtRGlzcGxheVdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1EaXNwbGF5V1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNGQ1YmIxZDFmNDEKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93cGUvUGxhdGZvcm1E
aXNwbGF5V1BFLmNwcApAQCAtMCwwICsxLDEzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0
Zm9ybURpc3BsYXlXUEUuaCIKKworI2lmIFBMQVRGT1JNKFdQRSkKKworI2luY2x1ZGUgIkdMQ29u
dGV4dEVHTC5oIgorI2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlIDxFR0wvZWdsLmg+Cisj
aW5jbHVkZSA8d3BlL3JlbmRlcmVyLWJhY2tlbmQtZWdsLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKworUGxhdGZvcm1EaXNwbGF5V1BFOjpQbGF0Zm9ybURpc3BsYXlXUEUoKSA9IGRlZmF1bHQ7
CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6flBsYXRmb3JtRGlzcGxheVdQRSgpCit7CisgICAgd3Bl
X3JlbmRlcmVyX2JhY2tlbmRfZWdsX2Rlc3Ryb3kobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0
Zm9ybURpc3BsYXlXUEU6OmluaXRpYWxpemUoaW50IGhvc3RGZCkKK3sKKyAgICBtX2JhY2tlbmQg
PSB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfY3JlYXRlKGhvc3RGZCk7CisKKyAgICBtX2VnbERp
c3BsYXkgPSBlZ2xHZXREaXNwbGF5KHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9nZXRfbmF0aXZl
X2Rpc3BsYXkobV9iYWNrZW5kKSk7CisgICAgaWYgKG1fZWdsRGlzcGxheSA9PSBFR0xfTk9fRElT
UExBWSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlBsYXRmb3JtRGlzcGxheVdQRTogY291
bGQgbm90IGNyZWF0ZSB0aGUgRUdMIGRpc3BsYXkuXG4iKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIFBsYXRmb3JtRGlzcGxheTo6aW5pdGlhbGl6ZUVHTERpc3BsYXkoKTsKK30KKwor
c3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0PiBQbGF0Zm9ybURp
c3BsYXlXUEU6OmNyZWF0ZUVHTFRhcmdldChFR0xUYXJnZXQ6OkNsaWVudCYgY2xpZW50LCBpbnQg
aG9zdEZkKQoreworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEVHTFRhcmdldD4oKnRoaXMs
IGNsaWVudCwgaG9zdEZkKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBsYXRmb3JtRGlzcGxheVdQ
RTo6RUdMT2Zmc2NyZWVuVGFyZ2V0PiBQbGF0Zm9ybURpc3BsYXlXUEU6OmNyZWF0ZUVHTE9mZnNj
cmVlblRhcmdldCgpCit7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RUdMT2Zmc2NyZWVu
VGFyZ2V0PigqdGhpcyk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpFR0xU
YXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5LCBQbGF0Zm9ybURpc3BsYXlX
UEU6OkVHTFRhcmdldDo6Q2xpZW50JiBjbGllbnQsIGludCBob3N0RmQpCisgICAgOiBtX2Rpc3Bs
YXkoZGlzcGxheSkKKyAgICAsIG1fY2xpZW50KGNsaWVudCkKK3sKKyAgICBtX2JhY2tlbmQgPSB3
cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NyZWF0ZShob3N0RmQpOworCisgICAgc3Rh
dGljIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2NsaWVudCBzX2NsaWVu
dCA9IHsKKyAgICAgICAgLy8gZnJhbWVfY29tcGxldGUKKyAgICAgICAgW10odm9pZCogZGF0YSkK
KyAgICAgICAgeworICAgICAgICAgICAgYXV0byYgc3VyZmFjZSA9ICpyZWludGVycHJldF9jYXN0
PEVHTFRhcmdldCo+KGRhdGEpOworICAgICAgICAgICAgc3VyZmFjZS5tX2NsaWVudC5mcmFtZUNv
bXBsZXRlKCk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0X3NldF9jbGllbnQobV9iYWNrZW5kLCAmc19jbGllbnQsIHRoaXMpOworfQorCitQ
bGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6fkVHTFRhcmdldCgpCit7CisgICAgd3BlX3Jl
bmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQg
UGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYg
c2l6ZSkKK3sKKyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2luaXRpYWxpemUo
bV9iYWNrZW5kLCBtX2Rpc3BsYXkubV9iYWNrZW5kLAorICAgICAgICBzdGQ6Om1heCgwLCBzaXpl
LndpZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisKK0VHTE5hdGl2ZVdp
bmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xUYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF90YXJnZXRfZ2V0X25h
dGl2ZV93aW5kb3cobV9iYWNrZW5kKTsKK30KKwordm9pZCBQbGF0Zm9ybURpc3BsYXlXUEU6OkVH
TFRhcmdldDo6cmVzaXplKGNvbnN0IEludFNpemUmIHNpemUpCit7CisgICAgd3BlX3JlbmRlcmVy
X2JhY2tlbmRfZWdsX3RhcmdldF9yZXNpemUobV9iYWNrZW5kLCBzdGQ6Om1heCgwLCBzaXplLndp
ZHRoKCkpLCBzdGQ6Om1heCgwLCBzaXplLmhlaWdodCgpKSk7Cit9CisKK3ZvaWQgUGxhdGZvcm1E
aXNwbGF5V1BFOjpFR0xUYXJnZXQ6OmZyYW1lV2lsbFJlbmRlcigpCit7CisgICAgd3BlX3JlbmRl
cmVyX2JhY2tlbmRfZWdsX3RhcmdldF9mcmFtZV93aWxsX3JlbmRlcihtX2JhY2tlbmQpOworfQor
Cit2b2lkIFBsYXRmb3JtRGlzcGxheVdQRTo6RUdMVGFyZ2V0OjpmcmFtZVJlbmRlcmVkKCkKK3sK
KyAgICB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfdGFyZ2V0X2ZyYW1lX3JlbmRlcmVkKG1fYmFj
a2VuZCk7Cit9CisKK1BsYXRmb3JtRGlzcGxheVdQRTo6RUdMT2Zmc2NyZWVuVGFyZ2V0OjpFR0xP
ZmZzY3JlZW5UYXJnZXQoY29uc3QgUGxhdGZvcm1EaXNwbGF5V1BFJiBkaXNwbGF5KQoreworICAg
IG1fdGFyZ2V0ID0gd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfY3Jl
YXRlKCk7CisgICAgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfaW5p
dGlhbGl6ZShtX3RhcmdldCwgZGlzcGxheS5tX2JhY2tlbmQpOworfQorCitQbGF0Zm9ybURpc3Bs
YXlXUEU6OkVHTE9mZnNjcmVlblRhcmdldDo6fkVHTE9mZnNjcmVlblRhcmdldCgpCit7CisgICAg
d3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX29mZnNjcmVlbl90YXJnZXRfZGVzdHJveShtX3Rhcmdl
dCk7Cit9CisKK0VHTE5hdGl2ZVdpbmRvd1R5cGUgUGxhdGZvcm1EaXNwbGF5V1BFOjpFR0xPZmZz
Y3JlZW5UYXJnZXQ6Om5hdGl2ZVdpbmRvdygpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdwZV9yZW5k
ZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFyZ2V0X2dldF9uYXRpdmVfd2luZG93KG1fdGFy
Z2V0KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gUExBVEZPUk0o
V1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3BlL1Bs
YXRmb3JtRGlzcGxheVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd3Bl
L1BsYXRmb3JtRGlzcGxheVdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi44ZGUwYzdkMDRkNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dwZS9QbGF0Zm9ybURpc3BsYXlXUEUuaApAQCAtMCwwICsxLDk5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBQTEFURk9STShXUEUpCisKKyNpbmNsdWRlICJQbGF0Zm9ybURpc3BsYXkuaCIKKwor
I2RlZmluZSBfX0dCTV9fIDEKKyNpbmNsdWRlIDxFR0wvZWdscGxhdGZvcm0uaD4KKworc3RydWN0
IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbDsKK3N0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9l
Z2xfdGFyZ2V0Oworc3RydWN0IHdwZV9yZW5kZXJlcl9iYWNrZW5kX2VnbF9vZmZzY3JlZW5fdGFy
Z2V0OworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEdMQ29udGV4dDsKK2NsYXNzIElu
dFNpemU7CisKK2NsYXNzIFBsYXRmb3JtRGlzcGxheVdQRSBmaW5hbCA6IHB1YmxpYyBQbGF0Zm9y
bURpc3BsYXkgeworcHVibGljOgorICAgIFBsYXRmb3JtRGlzcGxheVdQRSgpOworICAgIHZpcnR1
YWwgflBsYXRmb3JtRGlzcGxheVdQRSgpOworCisgICAgdm9pZCBpbml0aWFsaXplKGludCk7CisK
KyAgICBjbGFzcyBFR0xUYXJnZXQgeworICAgIHB1YmxpYzoKKyAgICAgICAgY2xhc3MgQ2xpZW50
IHsKKyAgICAgICAgcHVibGljOgorICAgICAgICAgICAgdmlydHVhbCB2b2lkIGZyYW1lQ29tcGxl
dGUoKSA9IDA7CisgICAgICAgIH07CisKKyAgICAgICAgRUdMVGFyZ2V0KGNvbnN0IFBsYXRmb3Jt
RGlzcGxheVdQRSYsIENsaWVudCYsIGludCk7CisgICAgICAgIH5FR0xUYXJnZXQoKTsKKworICAg
ICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgSW50U2l6ZSYpOworICAgICAgICBFR0xOYXRpdmVX
aW5kb3dUeXBlIG5hdGl2ZVdpbmRvdygpIGNvbnN0OworCisgICAgICAgIHZvaWQgcmVzaXplKGNv
bnN0IEludFNpemUmKTsKKworICAgICAgICB2b2lkIGZyYW1lV2lsbFJlbmRlcigpOworICAgICAg
ICB2b2lkIGZyYW1lUmVuZGVyZWQoKTsKKworICAgIHByaXZhdGU6CisgICAgICAgIGNvbnN0IFBs
YXRmb3JtRGlzcGxheVdQRSYgbV9kaXNwbGF5OworICAgICAgICBDbGllbnQmIG1fY2xpZW50Owor
ICAgICAgICBzdHJ1Y3Qgd3BlX3JlbmRlcmVyX2JhY2tlbmRfZWdsX3RhcmdldCogbV9iYWNrZW5k
OworICAgIH07CisKKyAgICBjbGFzcyBFR0xPZmZzY3JlZW5UYXJnZXQgeworICAgIHB1YmxpYzoK
KyAgICAgICAgRUdMT2Zmc2NyZWVuVGFyZ2V0KGNvbnN0IFBsYXRmb3JtRGlzcGxheVdQRSYpOwor
ICAgICAgICB+RUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKKyAgICAgICAgRUdMTmF0aXZlV2luZG93
VHlwZSBuYXRpdmVXaW5kb3coKSBjb25zdDsKKworICAgIHByaXZhdGU6CisgICAgICAgIHN0cnVj
dCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2xfb2Zmc2NyZWVuX3RhcmdldCogbV90YXJnZXQ7Cisg
ICAgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxFR0xUYXJnZXQ+IGNyZWF0ZUVHTFRhcmdldChF
R0xUYXJnZXQ6OkNsaWVudCYsIGludCk7CisgICAgc3RkOjp1bmlxdWVfcHRyPEVHTE9mZnNjcmVl
blRhcmdldD4gY3JlYXRlRUdMT2Zmc2NyZWVuVGFyZ2V0KCk7CisKK3ByaXZhdGU6CisgICAgVHlw
ZSB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gUGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpX
UEU7IH0KKworICAgIHN0cnVjdCB3cGVfcmVuZGVyZXJfYmFja2VuZF9lZ2wqIG1fYmFja2VuZDsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19Q
TEFURk9STV9ESVNQTEFZKFBsYXRmb3JtRGlzcGxheVdQRSwgV1BFKQorCisjZW5kaWYgLy8gUExB
VEZPUk0oV1BFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0N1cnNv
cldQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDRkYzk1NWY5MzAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvQ3Vyc29yV1BFLmNwcApAQCAt
MCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJDdXJzb3IuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCit2b2lkIEN1cnNvcjo6ZW5zdXJlUGxhdGZvcm1DdXJzb3IoKSBjb25z
dAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS93cGUvTG9jYWxpemVkU3RyaW5nc1dQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE3NjAxOTY5NzFiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL0xvY2FsaXplZFN0cmluZ3NXUEUuY3BwCkBAIC0wLDAg
KzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkxvY2FsaXplZFN0cmluZ3MuaCIKKwor
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1ZVB0
ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK1N0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdTZWFyY2hXZWIoKQoreworICAgIHJldHVy
biBTdHJpbmc6OmZyb21VVEY4KCJfU2VhcmNoIHRoZSBXZWIiKTsKK30KKworU3RyaW5nIHVuYWNj
ZXB0YWJsZVRMU0NlcnRpZmljYXRlKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOCgi
VW5hY2NlcHRhYmxlIFRMUyBjZXJ0aWZpY2F0ZSIpOworfQorCitTdHJpbmcgbG9jYWxpemVkU3Ry
aW5nKGNvbnN0IGNoYXIqIGtleSkKK3sKKyAgICByZXR1cm4gU3RyaW5nOjpmcm9tVVRGOChrZXks
IHN0cmxlbihrZXkpKTsKK30KKworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS93cGUvUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUv
UGFzdGVib2FyZFdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LjJjNzgwMDgzZmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1Bhc3RlYm9hcmRXUEUuY3BwCkBAIC0wLDAgKzEsMTM0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIlBhc3RlYm9hcmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgi
CisjaW5jbHVkZSAiUGFzdGVib2FyZFN0cmF0ZWd5LmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJh
dGVnaWVzLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RkOjp1bmlxdWVfcHRyPFBhc3Rl
Ym9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpCit7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8UGFzdGVib2FyZD4oKTsKK30KKworc3RkOjp1bmlxdWVfcHRyPFBh
c3RlYm9hcmQ+IFBhc3RlYm9hcmQ6OmNyZWF0ZVByaXZhdGUoKQoreworICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFBhc3RlYm9hcmQ+KCk7Cit9CisKK1Bhc3RlYm9hcmQ6OlBhc3RlYm9hcmQo
KQoreworfQorCitib29sIFBhc3RlYm9hcmQ6Omhhc0RhdGEoKQoreworICAgIC8vIEZJWE1FOiBH
ZXR0aW5nIHRoZSBsaXN0IG9mIHR5cGVzIGZvciB0aGlzIGlzIHdhc3RlZnVsLiBEbyB0aGlzIGlu
IHRoZSBVSSBwcm9jZXNzLgorICAgIFZlY3RvcjxTdHJpbmc+IHR5cGVzOworICAgIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+Z2V0VHlwZXModHlwZXMpOworICAg
IHJldHVybiAhdHlwZXMuaXNFbXB0eSgpOworfQorCitWZWN0b3I8U3RyaW5nPiBQYXN0ZWJvYXJk
Ojp0eXBlcygpCit7CisgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CisgICAgcGxhdGZvcm1TdHJh
dGVnaWVzKCktPnBhc3RlYm9hcmRTdHJhdGVneSgpLT5nZXRUeXBlcyh0eXBlcyk7CisgICAgcmV0
dXJuIHR5cGVzOworfQorCitTdHJpbmcgUGFzdGVib2FyZDo6cmVhZFN0cmluZyhjb25zdCBTdHJp
bmcmIHR5cGUpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJk
U3RyYXRlZ3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsIHR5cGUpOworfQorCit2b2lk
IFBhc3RlYm9hcmQ6OndyaXRlU3RyaW5nKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5n
JiB0ZXh0KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3ko
KS0+d3JpdGVUb1Bhc3RlYm9hcmQodHlwZSwgdGV4dCk7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6
Y2xlYXIoKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OmNsZWFyKGNvbnN0IFN0cmluZyYpCit7
Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkUGxhaW5UZXh0JiB0ZXh0KQor
eworICAgIHRleHQudGV4dCA9IHBsYXRmb3JtU3RyYXRlZ2llcygpLT5wYXN0ZWJvYXJkU3RyYXRl
Z3koKS0+cmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsICJ0ZXh0L3BsYWluO2NoYXJzZXQ9dXRm
LTgiKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRXZWJDb250ZW50UmVh
ZGVyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRVUkwmIHVybCkKK3sKKyAgICBwbGF0Zm9ybVN0cmF0ZWdpZXMo
KS0+cGFzdGVib2FyZFN0cmF0ZWd5KCktPndyaXRlVG9QYXN0ZWJvYXJkKCJ0ZXh0L3BsYWluO2No
YXJzZXQ9dXRmLTgiLCB1cmwudXJsLnN0cmluZygpKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3
cml0ZVRydXN0d29ydGh5V2ViVVJMc1Bib2FyZFR5cGUoY29uc3QgUGFzdGVib2FyZFVSTCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBQYXN0ZWJvYXJkOjp3cml0ZShjb25z
dCBQYXN0ZWJvYXJkSW1hZ2UmKQoreworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0
IFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50KQoreworICAgIHBsYXRmb3JtU3RyYXRlZ2ll
cygpLT5wYXN0ZWJvYXJkU3RyYXRlZ3koKS0+d3JpdGVUb1Bhc3RlYm9hcmQoY29udGVudCk7Cit9
CisKK1ZlY3RvcjxTdHJpbmc+IFBhc3RlYm9hcmQ6OnJlYWRGaWxlbmFtZXMoKQoreworICAgIHJl
dHVybiBWZWN0b3I8U3RyaW5nPigpOworfQorCitib29sIFBhc3RlYm9hcmQ6OmNhblNtYXJ0UmVw
bGFjZSgpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFBhc3RlYm9hcmQ6OndyaXRl
TWFya3VwKGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFzdGVib2FyZDo6d3JpdGVQbGFp
blRleHQoY29uc3QgU3RyaW5nJiB0ZXh0LCBTbWFydFJlcGxhY2VPcHRpb24pCit7CisgICAgd3Jp
dGVTdHJpbmcoInRleHQvcGxhaW47Y2hhcnNldD11dGYtOCIsIHRleHQpOworfQorCit2b2lkIFBh
c3RlYm9hcmQ6OndyaXRlUGFzdGVib2FyZChjb25zdCBQYXN0ZWJvYXJkJikKK3sKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMC4uZmE0ZjM4ZTExZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApAQCAtMCww
ICsxLDU4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kwordm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25FdmVudChU
eXBlIHR5cGUsIGJvb2wgYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKK3sKKyAgICBBU1NFUlQobV90
eXBlID09IEtleURvd24pOworICAgIG1fdHlwZSA9IHR5cGU7CisgICAgaWYgKGJhY2t3YXJkc0Nv
bXBhdGliaWxpdHkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICh0eXBlID09IFBsYXRmb3Jt
RXZlbnQ6OlJhd0tleURvd24pIHsKKyAgICAgICAgbV90ZXh0ID0gU3RyaW5nKCk7CisgICAgICAg
IG1fdW5tb2RpZmllZFRleHQgPSBTdHJpbmcoKTsKKyAgICB9IGVsc2UgeworICAgICAgICBtX2tl
eUlkZW50aWZpZXIgPSBTdHJpbmcoKTsKKyAgICAgICAgbV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PSAwOworICAgIH0KK30KKworYm9vbCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmN1cnJlbnRDYXBz
TG9ja1N0YXRlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1LZXli
b2FyZEV2ZW50OjpnZXRDdXJyZW50TW9kaWZpZXJTdGF0ZShib29sJiwgYm9vbCYsIGJvb2wmLCBi
b29sJikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtUGFzdGVib2FyZFdQRS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZTQ1NmVlZTJkZjMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1QYXN0ZWJvYXJkV1BFLmNw
cApAQCAtMCwwICsxLDExNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5M
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1QYXN0
ZWJvYXJkLmgiCisKKyNpbmNsdWRlICJQYXN0ZWJvYXJkLmgiCisjaW5jbHVkZSA8bWFwPgorI2lu
Y2x1ZGUgPHdwZS9wYXN0ZWJvYXJkLmg+CisjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNp
bmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OlBsYXRmb3JtUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKQorICAg
IDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0b24oKSkKK3sKKyAgICBB
U1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKworUGxhdGZvcm1QYXN0ZWJvYXJkOjpQbGF0Zm9ybVBh
c3RlYm9hcmQoKQorICAgIDogbV9wYXN0ZWJvYXJkKHdwZV9wYXN0ZWJvYXJkX2dldF9zaW5nbGV0
b24oKSkKK3sKKyAgICBBU1NFUlQobV9wYXN0ZWJvYXJkKTsKK30KKwordm9pZCBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OmdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykKK3sKKyAgICBzdHJ1Y3Qg
d3BlX3Bhc3RlYm9hcmRfc3RyaW5nX3ZlY3RvciBwYXN0ZWJvYXJkVHlwZXMgPSB7IG51bGxwdHIs
IDAgfTsKKyAgICB3cGVfcGFzdGVib2FyZF9nZXRfdHlwZXMobV9wYXN0ZWJvYXJkLCAmcGFzdGVi
b2FyZFR5cGVzKTsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBwYXN0ZWJvYXJkVHlw
ZXMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgdHlwZVN0cmluZyA9IHBhc3RlYm9hcmRU
eXBlcy5zdHJpbmdzW2ldOworICAgICAgICB0eXBlcy5hcHBlbmQoU3RyaW5nKHR5cGVTdHJpbmcu
ZGF0YSwgdHlwZVN0cmluZy5sZW5ndGgpKTsKKyAgICB9CisKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfdmVjdG9yX2ZyZWUoJnBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK1N0cmluZyBQbGF0Zm9y
bVBhc3RlYm9hcmQ6OnJlYWRTdHJpbmcoaW50LCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
c3RydWN0IHdwZV9wYXN0ZWJvYXJkX3N0cmluZyBzdHJpbmc7CisgICAgd3BlX3Bhc3RlYm9hcmRf
Z2V0X3N0cmluZyhtX3Bhc3RlYm9hcmQsIHR5cGUudXRmOCgpLmRhdGEoKSwgJnN0cmluZyk7CisK
KyAgICBTdHJpbmcgcmV0dXJuVmFsdWUoc3RyaW5nLmRhdGEsIHN0cmluZy5sZW5ndGgpOworCisg
ICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnN0cmluZyk7CisgICAgcmV0dXJuIHJldHVy
blZhbHVlOworfQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVi
b2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIgcGxhaW5U
ZXh0W10gPSAidGV4dC9wbGFpbjtjaGFyc2V0PXV0Zi04IjsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciBodG1sVGV4dFtdID0gInRleHQvaHRtbDtjaGFyc2V0PXV0Zi04IjsKKworICAgIENTdHJpbmcg
dGV4dFN0cmluZyA9IGNvbnRlbnQudGV4dC51dGY4KCk7CisgICAgQ1N0cmluZyBtYXJrdXBTdHJp
bmcgPSBjb250ZW50Lm1hcmt1cC51dGY4KCk7CisKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRf
c3RyaW5nX3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxs
cHRyLCAwIH0gfSwKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAwIH0gfSwK
KyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWlyc1swXS50
eXBlLCBwbGFpblRleHQsIHN0cmxlbihwbGFpblRleHQpKTsKKyAgICB3cGVfcGFzdGVib2FyZF9z
dHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCB0ZXh0U3RyaW5nLmRhdGEoKSwgdGV4
dFN0cmluZy5sZW5ndGgoKSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2luaXRpYWxpemUo
JnBhaXJzWzFdLnR5cGUsIGh0bWxUZXh0LCBzdHJsZW4oaHRtbFRleHQpKTsKKyAgICB3cGVfcGFz
dGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMV0uc3RyaW5nLCBtYXJrdXBTdHJpbmcu
ZGF0YSgpLCBtYXJrdXBTdHJpbmcubGVuZ3RoKCkpOworICAgIHN0cnVjdCB3cGVfcGFzdGVib2Fy
ZF9zdHJpbmdfbWFwIG1hcCA9IHsgcGFpcnMsIDIgfTsKKworICAgIHdwZV9wYXN0ZWJvYXJkX3dy
aXRlKG1fcGFzdGVib2FyZCwgJm1hcCk7CisKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfZnJl
ZSgmcGFpcnNbMF0udHlwZSk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJz
WzBdLnN0cmluZyk7CisgICAgd3BlX3Bhc3RlYm9hcmRfc3RyaW5nX2ZyZWUoJnBhaXJzWzFdLnR5
cGUpOworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19mcmVlKCZwYWlyc1sxXS5zdHJpbmcpOwor
fQorCit2b2lkIFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgU3RyaW5nJiB0eXBlLCBj
b25zdCBTdHJpbmcmIHN0cmluZykKK3sKKyAgICBzdHJ1Y3Qgd3BlX3Bhc3RlYm9hcmRfc3RyaW5n
X3BhaXIgcGFpcnNbXSA9IHsKKyAgICAgICAgeyB7IG51bGxwdHIsIDAgfSwgeyBudWxscHRyLCAw
IH0gfSwKKyAgICB9OworICAgIHdwZV9wYXN0ZWJvYXJkX3N0cmluZ19pbml0aWFsaXplKCZwYWly
c1swXS50eXBlLCB0eXBlLnV0ZjgoKS5kYXRhKCksIHR5cGUudXRmOCgpLmxlbmd0aCgpKTsKKyAg
ICB3cGVfcGFzdGVib2FyZF9zdHJpbmdfaW5pdGlhbGl6ZSgmcGFpcnNbMF0uc3RyaW5nLCBzdHJp
bmcudXRmOCgpLmRhdGEoKSwgc3RyaW5nLnV0ZjgoKS5sZW5ndGgoKSk7CisgICAgc3RydWN0IHdw
ZV9wYXN0ZWJvYXJkX3N0cmluZ19tYXAgbWFwID0geyBwYWlycywgMSB9OworCisgICAgd3BlX3Bh
c3RlYm9hcmRfd3JpdGUobV9wYXN0ZWJvYXJkLCAmbWFwKTsKKworICAgIHdwZV9wYXN0ZWJvYXJk
X3N0cmluZ19mcmVlKCZwYWlyc1swXS50eXBlKTsKKyAgICB3cGVfcGFzdGVib2FyZF9zdHJpbmdf
ZnJlZSgmcGFpcnNbMF0uc3RyaW5nKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybVNjcmVlbldQRS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUwOGViN2RlOGM5Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtU2NyZWVuV1BF
LmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBT
LkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybVNj
cmVlbi5oIgorCisjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTm90SW1wbGVtZW50
ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitpbnQgc2NyZWVuRGVwdGgoV2lkZ2V0KikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAyNDsKK30KKworaW50IHNjcmVl
bkRlcHRoUGVyQ29tcG9uZW50KFdpZGdldCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gODsKK30KKworYm9vbCBzY3JlZW5Jc01vbm9jaHJvbWUoV2lkZ2V0KikKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBzY3JlZW5I
YXNJbnZlcnRlZENvbG9ycygpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitGbG9hdFJlY3Qg
c2NyZWVuUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IEZsb2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitGbG9hdFJlY3Qgc2NyZWVuQXZhaWxh
YmxlUmVjdChXaWRnZXQqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEZs
b2F0UmVjdCgwLCAwLCAxMDI0LCA2NDApOworfQorCitib29sIHNjcmVlblN1cHBvcnRzRXh0ZW5k
ZWRDb2xvcihXaWRnZXQqKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRl
clRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI1OWUzM2JkY2My
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1JlbmRlclRo
ZW1lV1BFLmNwcApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJSZW5k
ZXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJV
c2VyQWdlbnRTY3JpcHRzLmgiCisjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKKyNp
bmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworUmVmPFJlbmRlclRoZW1lPiBSZW5kZXJUaGVtZTo6dGhlbWVGb3JQYWdlKFBhZ2UqKQorewor
ICAgIHN0YXRpYyBSZW5kZXJUaGVtZSYgdGhlbWUgPSBSZW5kZXJUaGVtZVdQRTo6Y3JlYXRlKCku
bGVha1JlZigpOworICAgIHJldHVybiB0aGVtZTsKK30KKwordm9pZCBSZW5kZXJUaGVtZVdQRTo6
dXBkYXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKENTU1ZhbHVlSUQsIEZvbnRDYXNjYWRl
RGVzY3JpcHRpb24mKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK1N0cmlu
ZyBSZW5kZXJUaGVtZVdQRTo6ZXh0cmFEZWZhdWx0U3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJu
IFN0cmluZygpOworfQorCisjaWYgRU5BQkxFKFZJREVPKQorU3RyaW5nIFJlbmRlclRoZW1lV1BF
OjptZWRpYUNvbnRyb2xzU3R5bGVTaGVldCgpCit7CisgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbCht
ZWRpYUNvbnRyb2xzQmFzZVVzZXJBZ2VudFN0eWxlU2hlZXQpOworfQorCitTdHJpbmcgUmVuZGVy
VGhlbWVXUEU6Om1lZGlhQ29udHJvbHNTY3JpcHQoKQoreworICAgIFN0cmluZ0J1aWxkZXIgc2Ny
aXB0QnVpbGRlcjsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzTG9jYWxp
emVkU3RyaW5nc0phdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzTG9jYWxpemVkU3RyaW5n
c0phdmFTY3JpcHQpKTsKKyAgICBzY3JpcHRCdWlsZGVyLmFwcGVuZChtZWRpYUNvbnRyb2xzQmFz
ZUphdmFTY3JpcHQsIHNpemVvZihtZWRpYUNvbnRyb2xzQmFzZUphdmFTY3JpcHQpKTsKKyAgICBy
ZXR1cm4gc2NyaXB0QnVpbGRlci50b1N0cmluZygpOworfQorI2VuZGlmCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvUmVuZGVy
VGhlbWVXUEUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQRS5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lZmIyZmU4OTRjOAotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9SZW5kZXJUaGVtZVdQ
RS5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgor
I2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgUmVuZGVyVGhlbWVXUEUgZmluYWwgOiBwdWJsaWMgUmVuZGVyVGhlbWUgeworcHVibGljOgor
ICAgIHN0YXRpYyBSZWY8UmVuZGVyVGhlbWU+IGNyZWF0ZSgpCisgICAgeworICAgICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBSZW5kZXJUaGVtZVdQRSk7CisgICAgfQorCisgICAgU3RyaW5nIGV4
dHJhRGVmYXVsdFN0eWxlU2hlZXQoKSBvdmVycmlkZTsKKyNpZiBFTkFCTEUoVklERU8pCisgICAg
U3RyaW5nIG1lZGlhQ29udHJvbHNTdHlsZVNoZWV0KCkgb3ZlcnJpZGU7CisgICAgU3RyaW5nIG1l
ZGlhQ29udHJvbHNTY3JpcHQoKSBvdmVycmlkZTsKKyNlbmRpZgorCitwcml2YXRlOgorICAgIFJl
bmRlclRoZW1lV1BFKCkgPSBkZWZhdWx0OworICAgIHZpcnR1YWwgflJlbmRlclRoZW1lV1BFKCkg
PSBkZWZhdWx0OworCisgICAgdm9pZCB1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24o
Q1NTVmFsdWVJRCwgRm9udENhc2NhZGVEZXNjcmlwdGlvbiYpIGNvbnN0IG92ZXJyaWRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9TY3JvbGxiYXJUaGVtZVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAuLjBmOWZlNWQ0ZDg0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIFNjcm9sbGJhclRo
ZW1lV1BFOjpoYXNCdXR0b25zKFNjcm9sbGJhciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKworYm9vbCBTY3JvbGxiYXJUaGVtZVdQRTo6aGFzVGh1bWIo
U2Nyb2xsYmFyJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiB0cnVlOwor
fQorCitJbnRSZWN0IFNjcm9sbGJhclRoZW1lV1BFOjpiYWNrQnV0dG9uUmVjdChTY3JvbGxiYXIm
LCBTY3JvbGxiYXJQYXJ0LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIEludFJlY3QoKTsKK30KKworSW50UmVjdCBTY3JvbGxiYXJUaGVtZVdQRTo6Zm9yd2FyZEJ1
dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCkKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBJbnRSZWN0KCk7Cit9CisKK0ludFJlY3QgU2Nyb2xsYmFy
VGhlbWVXUEU6OnRyYWNrUmVjdChTY3JvbGxiYXImLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIEludFJlY3QoKTsKK30KKworU2Nyb2xsYmFyVGhlbWUmIFNjcm9s
bGJhclRoZW1lOjpuYXRpdmVUaGVtZSgpCit7CisgICAgc3RhdGljIFNjcm9sbGJhclRoZW1lV1BF
IHRoZW1lOworICAgIHJldHVybiB0aGVtZTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Njcm9sbGJhclRoZW1lV1BF
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjcxODVhZGEyOWQKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvU2Nyb2xsYmFyVGhlbWVXUEUu
aApAQCAtMCwwICsxLDQ1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiU2Nyb2xsYmFyVGhlbWVDb21w
b3NpdGUuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBTY3JvbGxiYXJUaGVtZVdQ
RSBmaW5hbCA6IHB1YmxpYyBTY3JvbGxiYXJUaGVtZUNvbXBvc2l0ZSB7CitwdWJsaWM6CisgICAg
U2Nyb2xsYmFyVGhlbWVXUEUoKSA9IGRlZmF1bHQ7CisgICAgdmlydHVhbCB+U2Nyb2xsYmFyVGhl
bWVXUEUoKSA9IGRlZmF1bHQ7CisKKyAgICBib29sIGhhc0J1dHRvbnMoU2Nyb2xsYmFyJikgb3Zl
cnJpZGU7CisgICAgYm9vbCBoYXNUaHVtYihTY3JvbGxiYXImKSBvdmVycmlkZTsKKworICAgIElu
dFJlY3QgYmFja0J1dHRvblJlY3QoU2Nyb2xsYmFyJiwgU2Nyb2xsYmFyUGFydCwgYm9vbCBwYWlu
dGluZyA9IGZhbHNlKSBvdmVycmlkZTsKKyAgICBJbnRSZWN0IGZvcndhcmRCdXR0b25SZWN0KFNj
cm9sbGJhciYsIFNjcm9sbGJhclBhcnQsIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSkgb3ZlcnJpZGU7
CisgICAgSW50UmVjdCB0cmFja1JlY3QoU2Nyb2xsYmFyJiwgYm9vbCBwYWludGluZyA9IGZhbHNl
KSBvdmVycmlkZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvU291bmRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi5lOTE0NzdhNDU5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3dwZS9Tb3VuZFdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiU291bmQuaCIKKworI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBzeXN0ZW1CZWVwKCkKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvVGhlbWVXUEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d3BlL1RoZW1lV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
ZDVhZDk3NzNkODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
cGUvVGhlbWVXUEUuY3BwCkBAIC0wLDAgKzEsMTQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE1IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJUaGVtZVdQRS5oIgorCisjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGbG9hdFJvdW5k
ZWRSZWN0LmgiCisjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworVGhlbWUqIHBsYXRmb3Jt
VGhlbWUoKQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxUaGVtZVdQRT4gdGhlbWU7Cisg
ICAgcmV0dXJuICZ0aGVtZS5nZXQoKTsKK30KKworTGVuZ3RoU2l6ZSBUaGVtZVdQRTo6Y29udHJv
bFNpemUoQ29udHJvbFBhcnQgcGFydCwgY29uc3QgRm9udENhc2NhZGUmIGZvbnRDYXNjYWRlLCBj
b25zdCBMZW5ndGhTaXplJiB6b29tZWRTaXplLCBmbG9hdCB6b29tRmFjdG9yKSBjb25zdAorewor
ICAgIGlmICghem9vbWVkU2l6ZS53aWR0aC5pc0ludHJpbnNpY09yQXV0bygpICYmICF6b29tZWRT
aXplLmhlaWdodC5pc0ludHJpbnNpY09yQXV0bygpKQorICAgICAgICByZXR1cm4gVGhlbWU6OmNv
bnRyb2xTaXplKHBhcnQsIGZvbnRDYXNjYWRlLCB6b29tZWRTaXplLCB6b29tRmFjdG9yKTsKKwor
ICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2tib3hQYXJ0OgorICAgIGNhc2UgUmFk
aW9QYXJ0OgorICAgICAgICByZXR1cm4gTGVuZ3RoU2l6ZSB7IExlbmd0aCgxMiwgRml4ZWQpLCBM
ZW5ndGgoMTIsIEZpeGVkKSB9OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJldHVybiBUaGVtZTo6Y29udHJvbFNpemUocGFydCwgZm9udENhc2NhZGUsIHpvb21l
ZFNpemUsIHpvb21GYWN0b3IpOworfQorCit2b2lkIFRoZW1lV1BFOjpwYWludChDb250cm9sUGFy
dCBwYXJ0LCBDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCB6b29tRmFjdG9yLCBTY3JvbGxWaWV3
KiwgZmxvYXQsIGZsb2F0KQoreworICAgIHN3aXRjaCAocGFydCkgeworICAgIGNhc2UgQ2hlY2ti
b3hQYXJ0OgorICAgICAgICBwYWludENoZWNrYm94KHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVj
dCwgem9vbUZhY3Rvcik7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUmFkaW9QYXJ0OgorICAg
ICAgICBwYWludFJhZGlvKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgUHVzaEJ1dHRvblBhcnQ6CisgICAgICAgIHBhaW50
QnV0dG9uKHN0YXRlcywgY29udGV4dCwgem9vbWVkUmVjdCwgem9vbUZhY3Rvcik7CisgICAgICAg
IGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwordm9pZCBU
aGVtZVdQRTo6cGFpbnRDaGVja2JveChDb250cm9sU3RhdGVzJiBzdGF0ZXMsIEdyYXBoaWNzQ29u
dGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiB6b29tZWRSZWN0LCBmbG9hdCkKK3sKKyAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoY29udGV4dCk7CisKKyAgICBG
bG9hdFNpemUgY29ybmVyKDIsIDIpOworICAgIEZsb2F0Um91bmRlZFJlY3Qgcm91bmRlZFJlY3Qo
em9vbWVkUmVjdCwgY29ybmVyLCBjb3JuZXIsIGNvcm5lciwgY29ybmVyKTsKKyAgICBQYXRoIHBh
dGg7CisgICAgcGF0aC5hZGRSb3VuZGVkUmVjdChyb3VuZGVkUmVjdCk7CisKKyAgICBjb250ZXh0
LnNldEZpbGxDb2xvcihtYWtlUkdCKDIyNCwgMjI0LCAyMjQpKTsKKyAgICBjb250ZXh0LmZpbGxQ
YXRoKHBhdGgpOworCisgICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29u
dGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0
cm9rZVBhdGgocGF0aCk7CisKKyAgICBpZiAoc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRl
czo6Q2hlY2tlZFN0YXRlKSB7CisgICAgICAgIGF1dG8mIHJlY3QgPSByb3VuZGVkUmVjdC5yZWN0
KCk7CisKKyAgICAgICAgUGF0aCBjaGVja2VyUGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGgubW92
ZVRvKEZsb2F0UG9pbnQocmVjdC54KCkgKyAzLCByZWN0Lm1heFkoKSAtIDMpKTsKKyAgICAgICAg
Y2hlY2tlclBhdGguYWRkTGluZVRvKEZsb2F0UG9pbnQocmVjdC5tYXhYKCkgLSAzLCByZWN0Lnko
KSArIDMpKTsKKworICAgICAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygyKTsKKyAgICAg
ICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihtYWtlUkdCKDg0LCA4NCwgODQpKTsKKyAgICAgICAg
Y29udGV4dC5zdHJva2VQYXRoKGNoZWNrZXJQYXRoKTsKKyAgICB9Cit9CisKK3ZvaWQgVGhlbWVX
UEU6OnBhaW50UmFkaW8oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgUGF0aCBwYXRo
OworICAgIHBhdGguYWRkRWxsaXBzZSh6b29tZWRSZWN0KTsKKworICAgIGNvbnRleHQuc2V0Rmls
bENvbG9yKG1ha2VSR0IoMjI0LCAyMjQsIDIyNCkpOworICAgIGNvbnRleHQuZmlsbFBhdGgocGF0
aCk7CisKKyAgICBjb250ZXh0LnNldFN0cm9rZVRoaWNrbmVzcygxKTsKKyAgICBjb250ZXh0LnNl
dFN0cm9rZUNvbG9yKG1ha2VSR0IoOTQsIDk0LCA5NCkpOworICAgIGNvbnRleHQuc3Ryb2tlUGF0
aChwYXRoKTsKKworICAgIGlmIChzdGF0ZXMuc3RhdGVzKCkgJiBDb250cm9sU3RhdGVzOjpDaGVj
a2VkU3RhdGUpIHsKKyAgICAgICAgRmxvYXRSZWN0IGNoZWNrZXJSZWN0ID0gem9vbWVkUmVjdDsK
KyAgICAgICAgY2hlY2tlclJlY3QuaW5mbGF0ZSgtMyk7CisKKyAgICAgICAgUGF0aCBjaGVja2Vy
UGF0aDsKKyAgICAgICAgY2hlY2tlclBhdGguYWRkRWxsaXBzZShjaGVja2VyUmVjdCk7CisKKyAg
ICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IobWFrZVJHQig4NCwgODQsIDg0KSk7CisgICAgICAg
IGNvbnRleHQuZmlsbFBhdGgoY2hlY2tlclBhdGgpOworICAgIH0KK30KKwordm9pZCBUaGVtZVdQ
RTo6cGFpbnRCdXR0b24oQ29udHJvbFN0YXRlcyYgc3RhdGVzLCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgem9vbWVkUmVjdCwgZmxvYXQpCit7CisgICAgR3JhcGhp
Y3NDb250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKGNvbnRleHQpOworCisgICAgRmxvYXRTaXpl
IGNvcm5lcigyLCAyKTsKKyAgICBGbG9hdFJvdW5kZWRSZWN0IHJvdW5kZWRSZWN0KHpvb21lZFJl
Y3QsIGNvcm5lciwgY29ybmVyLCBjb3JuZXIsIGNvcm5lcik7CisgICAgUGF0aCBwYXRoOworICAg
IHBhdGguYWRkUm91bmRlZFJlY3Qocm91bmRlZFJlY3QpOworCisgICAgQ29sb3IgZmlsbENvbG9y
ID0gc3RhdGVzLnN0YXRlcygpICYgQ29udHJvbFN0YXRlczo6UHJlc3NlZFN0YXRlID8gbWFrZVJH
QigyNDQsIDI0NCwgMjQ0KSA6IG1ha2VSR0IoMjI0LCAyMjQsIDIyNCk7CisgICAgY29udGV4dC5z
ZXRGaWxsQ29sb3IoZmlsbENvbG9yKTsKKyAgICBjb250ZXh0LmZpbGxQYXRoKHBhdGgpOworCisg
ICAgY29udGV4dC5zZXRTdHJva2VUaGlja25lc3MoMSk7CisgICAgY29udGV4dC5zZXRTdHJva2VD
b2xvcihtYWtlUkdCKDk0LCA5NCwgOTQpKTsKKyAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3dwZS9UaGVtZVdQRS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Ro
ZW1lV1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjczOWY1YzFl
MWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1RoZW1l
V1BFLmgKQEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEg
Uy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIlRoZW1lLmgiCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGhlbWVXUEUgOiBwdWJsaWMgVGhlbWUgeworcHVi
bGljOgorICAgIFRoZW1lV1BFKCkgeyB9CisgICAgdmlydHVhbCB+VGhlbWVXUEUoKSB7IH0KKwor
ICAgIExlbmd0aFNpemUgY29udHJvbFNpemUoQ29udHJvbFBhcnQsIGNvbnN0IEZvbnRDYXNjYWRl
JiwgY29uc3QgTGVuZ3RoU2l6ZSYsIGZsb2F0KSBjb25zdCBvdmVycmlkZTsKKworICAgIHZvaWQg
cGFpbnQoQ29udHJvbFBhcnQsIENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFJlY3QmLCBmbG9hdCwgU2Nyb2xsVmlldyosIGZsb2F0LCBmbG9hdCkgb3ZlcnJpZGU7
CisKK3ByaXZhdGU6CisgICAgdm9pZCBwYWludENoZWNrYm94KENvbnRyb2xTdGF0ZXMmLCBHcmFw
aGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBmbG9hdCk7CisgICAgdm9pZCBwYWludFJh
ZGlvKENvbnRyb2xTdGF0ZXMmLCBHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBm
bG9hdCk7CisgICAgdm9pZCBwYWludEJ1dHRvbihDb250cm9sU3RhdGVzJiwgR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgZmxvYXQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1dpZGdldFdQRS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNjJkZjBjYzZiMzYKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93cGUvV2lkZ2V0V1BFLmNwcApAQCAtMCwwICsx
LDg1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXaWRnZXQuaCIKKworI2luY2x1ZGUgIk5v
dEltcGxlbWVudGVkLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworV2lkZ2V0OjpXaWRnZXQo
UGxhdGZvcm1XaWRnZXQgd2lkZ2V0KQoreworICAgIGluaXQod2lkZ2V0KTsKK30KKworV2lkZ2V0
Ojp+V2lkZ2V0KCkKK3sKKyAgICBBU1NFUlQoIXBhcmVudCgpKTsKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0RnJhbWVSZWN0KGNvbnN0IEludFJlY3QmIHJlY3Qp
Cit7CisgICAgbV9mcmFtZSA9IHJlY3Q7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworSW50
UmVjdCBXaWRnZXQ6OmZyYW1lUmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZnJhbWU7Cit9
CisKK3ZvaWQgV2lkZ2V0OjpwYWludChHcmFwaGljc0NvbnRleHQmLCBjb25zdCBJbnRSZWN0JikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Rm9jdXMoYm9v
bCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0Q3Vyc29y
KGNvbnN0IEN1cnNvciYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXaWRn
ZXQ6OnNob3coKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2lkZ2V0Ojpo
aWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdpZGdldDo6c2V0SXNT
ZWxlY3RlZChib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGli
L0dTb2NrZXRNb25pdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dT
b2NrZXRNb25pdG9yLmNwcAppbmRleCAxNDMyOWI5Mzg5MS4uOGQxMDFjZjRmMTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25pdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9JUEMvZ2xpYi9HU29ja2V0TW9uaXRvci5jcHAK
QEAgLTUxLDYgKzUxLDkgQEAgdm9pZCBHU29ja2V0TW9uaXRvcjo6c3RhcnQoR1NvY2tldCogc29j
a2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBSdW5Mb29wJiBydW4KICAgICBnX3NvdXJjZV9z
ZXRfbmFtZShtX3NvdXJjZS5nZXQoKSwgIltXZWJLaXRdIFNvY2tldCBtb25pdG9yIik7CiAgICAg
bV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwogICAgIGdfc291cmNlX3NldF9jYWxsYmFj
ayhtX3NvdXJjZS5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxHU291cmNlRnVuYz4oc29ja2V0U291
cmNlQ2FsbGJhY2spLCB0aGlzLCBudWxscHRyKTsKKyNpZiBQTEFURk9STShXUEUpCisgICAgZ19z
b3VyY2Vfc2V0X3ByaW9yaXR5KG1fc291cmNlLmdldCgpLCBHX1BSSU9SSVRZX0hJR0ggKyAzMCk7
CisjZW5kaWYKICAgICBnX3NvdXJjZV9hdHRhY2gobV9zb3VyY2UuZ2V0KCksIHJ1bkxvb3AubWFp
bkNvbnRleHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsYXRmb3JtV1BF
LmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmE4NTZhMzNmNjQ4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NzAgQEAKK2ZpbGUo
TUFLRV9ESVJFQ1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9KQorCitjb25maWd1
cmVfZmlsZSh3cGUvd3BlLXdlYmtpdC5wYy5pbiAke0NNQUtFX0JJTkFSWV9ESVJ9L3dwZS13ZWJr
aXQucGMgQE9OTFkpCisKK2FkZF9kZWZpbml0aW9ucygtRFdFQktJVDJfQ09NUElMQVRJT04pCisK
K2FkZF9kZWZpbml0aW9ucygtRExJQkVYRUNESVI9IiR7TElCRVhFQ19JTlNUQUxMX0RJUn0iKQor
CitzZXQoV2ViS2l0Ml9VU0VfUFJFRklYX0hFQURFUiBPTikKKworYWRkX2N1c3RvbV90YXJnZXQo
d2Via2l0MndwZS1mb3J3YXJkaW5nLWhlYWRlcnMKKyAgICBDT01NQU5EICR7UEVSTF9FWEVDVVRB
QkxFfSAke1dFQktJVDJfRElSfS9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bCAtLWluY2x1ZGUtcGF0aCAke1dFQktJVDJfRElSfSAtLW91dHB1dCAke0ZPUldBUkRJTkdfSEVB
REVSU19ESVJ9IC0tcGxhdGZvcm0gd3BlIC0tcGxhdGZvcm0gc291cAorKQorCitzZXQoV0VCS0lU
Ml9FWFRSQV9ERVBFTkRFTkNJRVMKKyAgICB3ZWJraXQyd3BlLWZvcndhcmRpbmctaGVhZGVycwor
KQorCitsaXN0KEFQUEVORCBXZWJQcm9jZXNzX1NPVVJDRVMKKyAgICBXZWJQcm9jZXNzL0VudHJ5
UG9pbnQvdW5peC9XZWJQcm9jZXNzTWFpbi5jcHAKKykKKworbGlzdChBUFBFTkQgTmV0d29ya1By
b2Nlc3NfU09VUkNFUworICAgIE5ldHdvcmtQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9OZXR3b3Jr
UHJvY2Vzc01haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIERhdGFiYXNlUHJvY2Vzc19TT1VSQ0VT
CisgICAgRGF0YWJhc2VQcm9jZXNzL0VudHJ5UG9pbnQvdW5peC9EYXRhYmFzZVByb2Nlc3NNYWlu
LmNwcAorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKKyAgICBOZXR3b3JrUHJvY2Vz
cy9DdXN0b21Qcm90b2NvbHMvc291cC9MZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXJTb3VwLmNw
cAorCisgICAgTmV0d29ya1Byb2Nlc3MvY2FjaGUvTmV0d29ya0NhY2hlQ29kZXJzU291cC5jcHAK
KyAgICBOZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVEYXRhU291cC5jcHAKKyAgICBO
ZXR3b3JrUHJvY2Vzcy9jYWNoZS9OZXR3b3JrQ2FjaGVJT0NoYW5uZWxTb3VwLmNwcAorCisgICAg
TmV0d29ya1Byb2Nlc3Mvc291cC9OZXR3b3JrRGF0YVRhc2tTb3VwLmNwcAorICAgIE5ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya1Byb2Nlc3NNYWluU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vz
cy9zb3VwL05ldHdvcmtQcm9jZXNzU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtTZXNzaW9uU291cC5jcHAKKyAgICBOZXR3b3JrUHJvY2Vzcy9zb3VwL1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0U291cC5jcHAKKworICAgIFBsYXRmb3JtL0lQQy9nbGliL0dTb2NrZXRNb25p
dG9yLmNwcAorCisgICAgUGxhdGZvcm0vSVBDL3VuaXgvQXR0YWNobWVudFVuaXguY3BwCisgICAg
UGxhdGZvcm0vSVBDL3VuaXgvQ29ubmVjdGlvblVuaXguY3BwCisKKyAgICBQbGF0Zm9ybS9jbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NDbGFzc2lmaWVyLmNwcAorCisgICAgUGxhdGZv
cm0vZ2xpYi9Nb2R1bGVHbGliLmNwcAorCisgICAgUGxhdGZvcm0vdW5peC9Mb2dnaW5nVW5peC5j
cHAKKyAgICBQbGF0Zm9ybS91bml4L1NoYXJlZE1lbW9yeVVuaXguY3BwCisKKyAgICBQbHVnaW5Q
cm9jZXNzL3VuaXgvUGx1Z2luQ29udHJvbGxlclByb3h5VW5peC5jcHAKKyAgICBQbHVnaW5Qcm9j
ZXNzL3VuaXgvUGx1Z2luUHJvY2Vzc01haW5Vbml4LmNwcAorICAgIFBsdWdpblByb2Nlc3MvdW5p
eC9QbHVnaW5Qcm9jZXNzVW5peC5jcHAKKworICAgIFNoYXJlZC9BUEkvYy9jYWlyby9XS0ltYWdl
Q2Fpcm8uY3BwCisKKyAgICBTaGFyZWQvQXV0aGVudGljYXRpb24vc291cC9BdXRoZW50aWNhdGlv
bk1hbmFnZXJTb3VwLmNwcAorCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRp
bmF0ZWRCYWNraW5nU3RvcmUuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29v
cmRpbmF0ZWRHcmFwaGljc1NjZW5lLmNwcAorICAgIFNoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNz
L1NpbXBsZVZpZXdwb3J0Q29udHJvbGxlci5jcHAKKworICAgIFNoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwCisgICAgU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZFNhZmVDb29y
ZGluYXRlZFN1cmZhY2UuY3BwCisgICAgU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFk
ZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKyAgICBTaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWREaXNwbGF5UmVmcmVzaE1vbml0
b3IuY3BwCisKKyAgICBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5N
b2R1bGVYMTEuY3BwCisKKyAgICBTaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3Bw
CisKKyAgICBTaGFyZWQvZ2xpYi9XZWJFcnJvcnNHbGliLmNwcAorCisgICAgU2hhcmVkL2xpbnV4
L1dlYk1lbW9yeVNhbXBsZXJMaW51eC5jcHAKKworICAgIFNoYXJlZC9zb3VwL1dlYkNvcmVBcmd1
bWVudENvZGVyc1NvdXAuY3BwCisgICAgU2hhcmVkL3NvdXAvV2ViRXJyb3JzU291cC5jcHAKKwor
ICAgIFNoYXJlZC91bml4L0NoaWxkUHJvY2Vzc01haW4uY3BwCisKKyAgICBTaGFyZWQvd3BlL05h
dGl2ZVdlYktleWJvYXJkRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3Vz
ZUV2ZW50V1BFLmNwcAorICAgIFNoYXJlZC93cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAK
KyAgICBTaGFyZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCisgICAgU2hhcmVkL3dw
ZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhXUEUuY3BwCisgICAgU2hhcmVkL3dwZS9XZWJFdmVudEZh
Y3RvcnkuY3BwCisKKyAgICBVSVByb2Nlc3MvQmFja2luZ1N0b3JlLmNwcAorICAgIFVJUHJvY2Vz
cy9EZWZhdWx0VW5kb0NvbnRyb2xsZXIuY3BwCisgICAgVUlQcm9jZXNzL0xlZ2FjeVNlc3Npb25T
dGF0ZUNvZGluZ05vbmUuY3BwCisgICAgVUlQcm9jZXNzL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NNYW5hZ2VyLmNwcAorICAgIFVJUHJvY2Vzcy9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwCisKKyAgICBVSVByb2Nlc3MvQVBJL0MvV0tSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWFu
YWdlci5jcHAKKworICAgIFVJUHJvY2Vzcy9BUEkvQy9jYWlyby9XS0ljb25EYXRhYmFzZUNhaXJv
LmNwcAorCisgICAgVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5jcHAK
KworICAgIFVJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmNwcAorCisgICAgVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuY3BwCisgICAgVUlQcm9jZXNzL0FQSS93cGUv
RHJhd2luZ0FyZWFQcm94eVdQRS5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5jcHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5j
cHAKKyAgICBVSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAorICAgIFVJUHJvY2Vzcy9BUEkv
d3BlL1dQRVZpZXdDbGllbnQuY3BwCisKKyAgICBVSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3Nv
dXAvV2ViU29ja2V0U2VydmVyU291cC5jcHAKKworICAgIFVJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2
ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAKKworICAgIFVJUHJvY2Vzcy9MYXVuY2hl
ci93cGUvUHJvY2Vzc0xhdW5jaGVyV1BFLmNwcAorCisgICAgVUlQcm9jZXNzL1BsdWdpbnMvdW5p
eC9QbHVnaW5JbmZvU3RvcmVVbml4LmNwcAorICAgIFVJUHJvY2Vzcy9QbHVnaW5zL3VuaXgvUGx1
Z2luUHJvY2Vzc1Byb3h5VW5peC5jcHAKKworICAgIFVJUHJvY2Vzcy9TdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcAorCisgICAgVUlQcm9jZXNzL1dlYnNpdGVEYXRhL3VuaXgvV2Vic2l0ZURhdGFT
dG9yZVVuaXguY3BwCisKKyAgICBVSVByb2Nlc3MvY2Fpcm8vQmFja2luZ1N0b3JlQ2Fpcm8uY3Bw
CisKKyAgICBVSVByb2Nlc3MvZ3N0cmVhbWVyL0luc3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zUGVy
bWlzc2lvblJlcXVlc3QuY3BwCisgICAgVUlQcm9jZXNzL2dzdHJlYW1lci9XZWJQYWdlUHJveHlH
U3RyZWFtZXIuY3BwCisKKyAgICBVSVByb2Nlc3MvbGludXgvTWVtb3J5UHJlc3N1cmVNb25pdG9y
LmNwcAorCisgICAgVUlQcm9jZXNzL3NvdXAvV2ViQ29va2llTWFuYWdlclByb3h5U291cC5jcHAK
KyAgICBVSVByb2Nlc3Mvc291cC9XZWJQcm9jZXNzUG9vbFNvdXAuY3BwCisKKyAgICBVSVByb2Nl
c3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcAorICAgIFVJUHJvY2Vzcy93cGUvV2ViSW5zcGVjdG9y
UHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJveHlXUEUuY3BwCisgICAg
VUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3BwCisgICAgVUlQcm9jZXNzL3dw
ZS9XZWJQcmVmZXJlbmNlc1dQRS5jcHAKKyAgICBVSVByb2Nlc3Mvd3BlL1dlYlByb2Nlc3NQb29s
V1BFLmNwcAorCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViQ29va2llTWFuYWdlclNv
dXAuY3BwCisgICAgV2ViUHJvY2Vzcy9Db29raWVzL3NvdXAvV2ViS2l0U291cENvb2tpZUphclNx
bGl0ZS5jcHAKKworICAgIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvZ2xpYi9JbmplY3RlZEJ1
bmRsZUdsaWIuY3BwCisKKyAgICBXZWJQcm9jZXNzL01lZGlhQ2FjaGUvV2ViTWVkaWFLZXlTdG9y
YWdlTWFuYWdlci5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvc291cC9XZWJG
cmFtZU5ldHdvcmtpbmdDb250ZXh0LmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC93cGUvV2ViQ29udGV4dE1lbnVDbGllbnRXUEUuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKKworICAgIFdlYlByb2Nlc3MvV2ViUGFn
ZS9BY2NlbGVyYXRlZFN1cmZhY2UuY3BwCisKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9BcmVhQWxsb2NhdG9yLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0NvbXBvc2l0aW5nQ29vcmRpbmF0b3IuY3BwCisgICAgV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRMYXllclRyZWVIb3N0
LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL1RocmVhZGVk
Q29vcmRpbmF0ZWRMYXllclRyZWVIb3N0LmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL1VwZGF0ZUF0bGFzLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L2dzdHJlYW1lci9XZWJQYWdlR1N0cmVhbWVyLmNwcAorCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdl
L3dwZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCisgICAgV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9E
cmF3aW5nQXJlYVdQRS5jcHAKKyAgICBXZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYkluc3BlY3Rv
clVJV1BFLmNwcAorICAgIFdlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5jcHAKKwor
ICAgIFdlYlByb2Nlc3Mvc291cC9XZWJLaXRTb3VwUmVxdWVzdElucHV0U3RyZWFtLmNwcAorICAg
IFdlYlByb2Nlc3Mvc291cC9XZWJQcm9jZXNzU291cC5jcHAKKworICAgIFdlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcAorCisgICAgIyBGSVhNRS1HV1NIQVJFOgorICAgIERhdGFi
YXNlUHJvY2Vzcy9ndGsvRGF0YWJhc2VQcm9jZXNzTWFpbkd0ay5jcHAKKykKKworbGlzdChBUFBF
TkQgV2ViS2l0Ml9NRVNTQUdFU19JTl9GSUxFUworICAgIFVJUHJvY2Vzcy9BUEkvd3BlL0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCispCisKK2xpc3QoQVBQRU5EIFdlYktpdDJf
REVSSVZFRF9TT1VSQ0VTCisgICAgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktp
dDJSZXNvdXJjZXNHUmVzb3VyY2VCdW5kbGUuYworKQorCitzZXQoV2ViS2l0MlJlc291cmNlcwor
KQorCitpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICBsaXN0KEFQUEVORCBXZWJLaXQyUmVzb3Vy
Y2VzCisgICAgICAgICIgICAgICAgIDxmaWxlIGFsaWFzPVwiYXVkaW8vQ29tcG9zaXRlXCI+Q29t
cG9zaXRlLndhdjwvZmlsZT5cbiIKKyAgICApCitlbmRpZiAoKQorCitmaWxlKFdSSVRFICR7REVS
SVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxl
LnhtbAorICAgICI8P3htbCB2ZXJzaW9uPTEuMCBlbmNvZGluZz1VVEYtOD8+XG4iCisgICAgIjxn
cmVzb3VyY2VzPlxuIgorICAgICIgICAgPGdyZXNvdXJjZSBwcmVmaXg9XCIvb3JnL3dlYmtpdHdw
ZS9yZXNvdXJjZXNcIj5cbiIKKyAgICAke1dlYktpdDJSZXNvdXJjZXN9CisgICAgIiAgICA8L2dy
ZXNvdXJjZT5cbiIKKyAgICAiPC9ncmVzb3VyY2VzPlxuIgorKQorCithZGRfY3VzdG9tX2NvbW1h
bmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVz
b3VyY2VzR1Jlc291cmNlQnVuZGxlLmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dF
QktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENPTU1B
TkQgZ2xpYi1jb21waWxlLXJlc291cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvUmVzb3VyY2VzIC0tc291cmNlZGlyPSR7Q01BS0Vf
U09VUkNFX0RJUn0vU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vcmVzb3VyY2VzIC0tdGFy
Z2V0PSR7REVSSVZFRF9TT1VSQ0VTX1dFQktJVDJfRElSfS9XZWJLaXQyUmVzb3VyY2VzR1Jlc291
cmNlQnVuZGxlLmMgJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L1dlYktpdDJSZXNvdXJj
ZXNHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgVkVSQkFUSU0KKykKKworbGlzdChBUFBFTkQgV2Vi
S2l0Ml9JTkNMVURFX0RJUkVDVE9SSUVTCisgICAgIiR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0i
CisgICAgIiR7REVSSVZFRF9TT1VSQ0VTX0RJUn0iCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvIgorICAgICIke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZSIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3Mvb3BlbnR5
cGUiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL3RleG1hcC9jb29yZGlu
YXRlZCIKKyAgICAiJHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vbmV0d29yay9zb3VwIgorICAgICIk
e1dFQktJVDJfRElSfS9EYXRhYmFzZVByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0v
TmV0d29ya1Byb2Nlc3MvQ3VzdG9tUHJvdG9jb2xzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3
b3JrUHJvY2Vzcy9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9OZXR3b3JrUHJvY2Vzcy91bml4
IgorICAgICIke1dFQktJVDJfRElSfS9QbGF0Zm9ybS9JUEMvZ2xpYiIKKyAgICAiJHtXRUJLSVQy
X0RJUn0vUGxhdGZvcm0vSVBDL3VuaXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1BsYXRmb3JtL2Ns
YXNzaWZpZXIiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy93cGUiCisgICAgIiR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzIgorICAgICIke1dFQktJVDJf
RElSfS9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IiCisgICAg
IiR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9TaGFyZWQv
dW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vU2hhcmVkL3dwZSIKKyAgICAiJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL2NhaXJvIgorICAgICIke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0Mvc291cCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZSIKKyAg
ICAiJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS93cGUiCisgICAgIiR7V0VCS0lUMl9ESVJ9
L1VJUHJvY2Vzcy9OZXR3b3JrL0N1c3RvbVByb3RvY29scy9zb3VwIgorICAgICIke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvbGludXgiCisgICAgIiR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9zb3Vw
IgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL3NvdXAiCisgICAgIiR7V0VCS0lUMl9E
SVJ9L1dlYlByb2Nlc3MvdW5peCIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9zb3VwIgorICAgICIke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcyIKKyAgICAiJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9XZWJQ
YWdlL3dwZSIKKyAgICAiJHtXVEZfRElSfS93dGYvZ3RrLyIKKyAgICAiJHtXVEZfRElSfS93dGYv
Z29iamVjdCIKKyAgICAiJHtXVEZfRElSfSIKKyAgICAke0NBSVJPX0lOQ0xVREVfRElSU30KKyAg
ICAke0VHTF9JTkNMVURFX0RJUlN9CisgICAgJHtGUkVFVFlQRTJfSU5DTFVERV9ESVJTfQorICAg
ICR7R0xJQl9JTkNMVURFX0RJUlN9CisgICAgJHtHU1RSRUFNRVJfSU5DTFVERV9ESVJTfQorICAg
ICR7SEFSRkJVWlpfSU5DTFVERV9ESVJTfQorICAgICR7TElCU09VUF9JTkNMVURFX0RJUlN9Cisg
ICAgJHtXUEVfSU5DTFVERV9ESVJTfQorKQorCitsaXN0KEFQUEVORCBXZWJLaXQyX0xJQlJBUklF
UworICAgICR7Q0FJUk9fTElCUkFSSUVTfQorICAgICR7RlJFRVRZUEUyX0xJQlJBUklFU30KKyAg
ICAke0dMSUJfTElCUkFSSUVTfQorICAgICR7R1NUUkVBTUVSX0xJQlJBUklFU30KKyAgICAke0hB
UkZCVVpaX0xJQlJBUklFU30KKyAgICAke0xJQlNPVVBfTElCUkFSSUVTfQorICAgICR7V1BFX0xJ
QlJBUklFU30KKykKKworc2V0KEluc3BlY3RvckZpbGVzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElS
fS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvTG9jYWxpemF0aW9ucy9lbi5scHJvai9sb2NhbGl6ZWRT
dHJpbmdzLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS8qLmh0bWwKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0Jhc2UvKi5qcworICAgICR7Q01BS0VfU09VUkNFX0RJ
Un0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29udHJvbGxlcnMvKi5jc3MK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvbnRyb2xsZXJzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0RlYnVnLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0Vf
RElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9EZWJ1Zy8qLmpzCisgICAg
JHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9F
eHRlcm5hbC9Db2RlTWlycm9yLyouY3NzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2Uv
V2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Db2RlTWlycm9yLyouanMKKyAg
ICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L0V4dGVybmFsL0VTTGludC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9FeHRlcm5hbC9Fc3ByaW1hLyouanMKKyAgICAke0NN
QUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0ltYWdl
cy9ndGsvKi5wbmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL0ltYWdlcy9ndGsvKi5zdmcKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01vZGVscy8qLmpzCisgICAgJHtD
TUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Qcm90
b2NvbC8qLmpzCisgICAgJHtDTUFLRV9TT1VSQ0VfRElSfS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Qcm94aWVzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Rlc3QvKi5qcworICAgICR7Q01BS0VfU09V
UkNFX0RJUn0vU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvKi5jc3MK
KyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzLyouanMKKyAgICAke0NNQUtFX1NPVVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0
b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvRm9ybWF0dGVyLyouanMKKyAgICAke0NNQUtFX1NP
VVJDRV9ESVJ9L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1dvcmtlcnMvSGVh
cFNuYXBzaG90LyouanMKKykKKworZmlsZShHTE9CIEluc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVz
CisgICAgJHtJbnNwZWN0b3JGaWxlc30KKykKKworIyBEZXJpdmVkU291cmNlcy9KYXZhU2NyaXB0
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzIGlzCisjIGV4cGVjdGVk
IGluIERlcml2ZWRTb3VyY2VzL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wv
LgorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJJ
TlNQRUNUT1JVSV9ESVJ9L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENv
bW1hbmRzLmpzCisgICAgREVQRU5EUyAke0RFUklWRURfU09VUkNFU19KQVZBU0NSSVBUQ09SRV9E
SVJ9L2luc3BlY3Rvci9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMKKyAgICBDT01NQU5EIGNw
ICR7REVSSVZFRF9TT1VSQ0VTX0pBVkFTQ1JJUFRDT1JFX0RJUn0vaW5zcGVjdG9yL0luc3BlY3Rv
ckJhY2tlbmRDb21tYW5kcy5qcyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9
L1VzZXJJbnRlcmZhY2UvUHJvdG9jb2wvSW5zcGVjdG9yQmFja2VuZENvbW1hbmRzLmpzCispCisK
K2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNfV0VCSU5T
UEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCisgICAgREVQRU5EUyAk
e0luc3BlY3RvckZpbGVzRGVwZW5kZW5jaWVzfQorICAgICAgICAgICAgJHtERVJJVkVEX1NPVVJD
RVNfV0VCSU5TUEVDVE9SVUlfRElSfS9Vc2VySW50ZXJmYWNlL1Byb3RvY29sL0luc3BlY3RvckJh
Y2tlbmRDb21tYW5kcy5qcworICAgICAgICAgICAgJHtUT09MU19ESVJ9L3dwZS9nZW5lcmF0ZS1p
bnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CisgICAgQ09NTUFORCAke1RPT0xTX0RJUn0v
d3BlL2dlbmVyYXRlLWluc3BlY3Rvci1ncmVzb3VyY2UtbWFuaWZlc3QucHkgLS1vdXRwdXQ9JHtE
RVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUueG1sICR7SW5zcGVjdG9yRmlsZXN9ICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0vVXNlckludGVyZmFjZS9Qcm90b2NvbC9JbnNwZWN0b3JCYWNrZW5kQ29tbWFuZHMuanMK
KyAgICBWRVJCQVRJTQorKQorCithZGRfY3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVS
SVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5zcGVjdG9yR1Jlc291cmNlQnVuZGxl
LmMKKyAgICBERVBFTkRTICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJX0RJUn0vSW5z
cGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbAorICAgIENPTU1BTkQgZ2xpYi1jb21waWxlLXJlc291
cmNlcyAtLWdlbmVyYXRlIC0tc291cmNlZGlyPSR7Q01BS0VfU09VUkNFX0RJUn0vU291cmNlL1dl
Ykluc3BlY3RvclVJIC0tc291cmNlZGlyPSR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RPUlVJ
X0RJUn0gLS10YXJnZXQ9JHtERVJJVkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9JbnNw
ZWN0b3JHUmVzb3VyY2VCdW5kbGUuYyAke0RFUklWRURfU09VUkNFU19XRUJJTlNQRUNUT1JVSV9E
SVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS54bWwKKyAgICBWRVJCQVRJTQorKQorCithZGRf
Y3VzdG9tX2NvbW1hbmQoCisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQklOU1BFQ1RP
UlVJX0RJUn0vV2ViS2l0Mkluc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jCisgICAgREVQRU5EUyAk
e1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNl
QnVuZGxlLnhtbAorICAgICAgICAgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0luc3BlY3Rv
clNlcnZlci9mcm9udC1lbmQvaW5zcGVjdG9yUGFnZUluZGV4Lmh0bWwKKyAgICBDT01NQU5EIGds
aWItY29tcGlsZS1yZXNvdXJjZXMgLS1nZW5lcmF0ZSAtLXNvdXJjZWRpcj0ke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL2Zyb250LWVuZCAtLXRhcmdldD0ke0RFUklWRURf
U09VUkNFU19XRUJJTlNQRUNUT1JVSV9ESVJ9L1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5k
bGUuYyAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jl
c291cmNlQnVuZGxlLnhtbAorICAgIFZFUkJBVElNCispCisKK2xpc3QoQVBQRU5EIFdQRVdlYklu
c3BlY3RvclJlc291cmNlc19ERVJJVkVEX1NPVVJDRVMKKyAgICAke0RFUklWRURfU09VUkNFU19X
RUJJTlNQRUNUT1JVSV9ESVJ9L0luc3BlY3RvckdSZXNvdXJjZUJ1bmRsZS5jCisgICAgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCSU5TUEVDVE9SVUlfRElSfS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNl
QnVuZGxlLmMKKykKKworbGlzdChBUFBFTkQgV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0xJQlJB
UklFUworICAgICR7R0xJQl9HSU9fTElCUkFSSUVTfQorKQorCitsaXN0KEFQUEVORCBXUEVXZWJJ
bnNwZWN0b3JSZXNvdXJjZXNfSU5DTFVERV9ESVJFQ1RPUklFUworICAgICR7R0xJQl9JTkNMVURF
X0RJUlN9CispCisKK2FkZF9saWJyYXJ5KFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBTSEFSRUQg
JHtXUEVXZWJJbnNwZWN0b3JSZXNvdXJjZXNfREVSSVZFRF9TT1VSQ0VTfSkKK2FkZF9kZXBlbmRl
bmNpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzIFdlYktpdDIpCit0YXJnZXRfbGlua19saWJy
YXJpZXMoV1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2Vz
X0xJQlJBUklFU30pCit0YXJnZXRfaW5jbHVkZV9kaXJlY3RvcmllcyhXUEVXZWJJbnNwZWN0b3JS
ZXNvdXJjZXMgUFVCTElDICR7V1BFV2ViSW5zcGVjdG9yUmVzb3VyY2VzX0lOQ0xVREVfRElSRUNU
T1JJRVN9KQoraW5zdGFsbChUQVJHRVRTIFdQRVdlYkluc3BlY3RvclJlc291cmNlcyBERVNUSU5B
VElPTiAiJHtMSUJfSU5TVEFMTF9ESVJ9IikKKworc2V0KFdQRV9JTlNUQUxMRURfV0VCS0lUX0hF
QURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tBcnJheS5oCisgICAgJHtX
RUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLQmFzZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hh
cmVkL0FQSS9jL1dLRGF0YS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRGVj
bGFyYXRpb25TcGVjaWZpZXJzLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tE
aWFnbm9zdGljTG9nZ2luZ1Jlc3VsdFR5cGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9B
UEkvYy9XS0RpY3Rpb25hcnkuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS0Vy
cm9yUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tFdmVudC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLRmluZE9wdGlvbnMuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS0dlb21ldHJ5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFy
ZWQvQVBJL2MvV0tJbWFnZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTXV0
YWJsZUFycmF5LmgKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tNdXRhYmxlRGlj
dGlvbmFyeS5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLTnVtYmVyLmgKKyAg
ICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlTG9hZFR5cGVzLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tQYWdlVmlzaWJpbGl0eVR5cGVzLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTZWN1cml0eU9yaWdpblJlZi5oCisgICAgJHtXRUJL
SVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgKKyAgICAke1dF
QktJVDJfRElSfS9TaGFyZWQvQVBJL2MvV0tTdHJpbmcuaAorICAgICR7V0VCS0lUMl9ESVJ9L1No
YXJlZC9BUEkvYy9XS1R5cGUuaAorICAgICR7V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VS
TC5oCisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMUmVxdWVzdC5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVVJMUmVzcG9uc2UuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1NoYXJlZC9BUEkvYy9XS1VzZXJDb250ZW50VVJMUGF0dGVybi5oCisgICAg
JHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL1dLVXNlclNjcmlwdEluamVjdGlvblRpbWUuaAor
CisgICAgJHtXRUJLSVQyX0RJUn0vU2hhcmVkL0FQSS9jL3dwZS9XS0Jhc2VXUEUuaAorCisgICAg
JHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZS5o
CisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1
bmRsZUJhY2tGb3J3YXJkTGlzdC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUJhY2tGb3J3YXJkTGlzdEl0ZW0uaAorICAgICR7V0VC
S0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVET01XaW5k
b3dFeHRlbnNpb24uaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVGaWxlSGFuZGxlUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlRnJhbWUuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9j
L1dLQnVuZGxlSW5pdGlhbGl6ZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZUluc3BlY3Rvci5oCisgICAgJHtXRUJLSVQyX0RJUn0v
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24u
aAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tC
dW5kbGVOb2RlSGFuZGxlLmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vz
cy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VCYW5uZXIuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlQ29udGV4
dE1lbnVDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9X
ZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUZvcm1DbGllbnQuaAor
ICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5k
bGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9J
bmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VHcm91cC5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VMb2FkZXJDbGll
bnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2Mv
V0tCdW5kbGVQYWdlT3ZlcmxheS5oCisgICAgJHtXRUJLSVQyX0RJUn0vV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VQb2xpY3lDbGllbnQuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlUmVzb3Vy
Y2VMb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQcm9jZXNzL0luamVjdGVkQnVu
ZGxlL0FQSS9jL1dLQnVuZGxlUGFnZVVJQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9XZWJQ
cm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUmFuZ2VIYW5kbGUuaAorICAgICR7
V0VCS0lUMl9ESVJ9L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVTY3Jp
cHRXb3JsZC5oCisKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tCYWNrRm9y
d2FyZExpc3RJdGVtUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tC
YWNrRm9yd2FyZExpc3RSZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S0NvbnRleHRDb25maWd1cmF0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQ
cm9jZXNzL0FQSS9DL1dLQ29udGV4dERvd25sb2FkQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0SGlzdG9yeUNsaWVudC5oCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmgKKyAg
ICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb250ZXh0LmgKKyAgICAke1dFQktJ
VDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDb29raWVNYW5hZ2VyLmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsLmgKKyAgICAke1dFQktJVDJfRElSfS9V
SVByb2Nlc3MvQVBJL0MvV0tDcmVkZW50aWFsVHlwZXMuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS0ZyYW1lLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJ
L0MvV0tGcmFtZUluZm9SZWYuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S0ZyYW1lUG9saWN5TGlzdGVuZXIuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS0hpdFRlc3RSZXN1bHQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9X
S05hdGl2ZUV2ZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tOYXZp
Z2F0aW9uQWN0aW9uUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tO
YXZpZ2F0aW9uRGF0YVJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dL
TmF2aWdhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLTmF2
aWdhdGlvblJlc3BvbnNlUmVmLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlQ29uZmln
dXJhdGlvblJlZi5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZUNv
bnRleHRNZW51Q2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQ
YWdlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vz
cy9BUEkvQy9XS1BhZ2VGaW5kQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nlc3Mv
QVBJL0MvV0tQYWdlRmluZE1hdGNoZXNDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJv
Y2Vzcy9BUEkvQy9XS1BhZ2VGb3JtQ2xpZW50LmgKKyAgICAke1dFQktJVDJfRElSfS9VSVByb2Nl
c3MvQVBJL0MvV0tQYWdlR3JvdXAuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZUxvYWRlckNsaWVudC5oCisgICAgJHtXRUJLSVQyX0RJUn0vVUlQcm9j
ZXNzL0FQSS9DL1dLUGFnZU5hdmlnYXRpb25DbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VQb2xpY3lDbGllbnQuaAorICAgICR7V0VCS0lUMl9ESVJ9L1VJ
UHJvY2Vzcy9BUEkvQy9XS1BhZ2VSZW5kZXJpbmdQcm9ncmVzc0V2ZW50cy5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLUGFnZVVJQ2xpZW50LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQbHVnaW5Mb2FkUG9saWN5LmgKKyAgICAke1dFQktJVDJf
RElSfS9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZi5oCisgICAgJHtXRUJLSVQyX0RJ
Un0vVUlQcm9jZXNzL0FQSS9DL1dLU2Vzc2lvblN0YXRlUmVmLmgKKyAgICAke1dFQktJVDJfRElS
fS9VSVByb2Nlc3MvQVBJL0MvV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaAorICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1VzZXJTY3JpcHRSZWYuaAorICAgICR7V0VCS0lU
Ml9ESVJ9L1VJUHJvY2Vzcy9BUEkvQy9XS1ZpZXdwb3J0QXR0cmlidXRlcy5oCisgICAgJHtXRUJL
SVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL1dLV2luZG93RmVhdHVyZXNSZWYuaAorCisgICAgJHtX
RUJLSVQyX0RJUn0vVUlQcm9jZXNzL0FQSS9DL3dwZS9XS1ZpZXcuaAorCisgICAgJHtXRUJLSVQy
X0RJUn0vVUlQcm9jZXNzL0FQSS9DL3NvdXAvV0tDb29raWVNYW5hZ2VyU291cC5oCispCisKK2lu
c3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX1dFQktJVF9IRUFERVJTfQorICAgIERFU1RJTkFU
SU9OICIke0NNQUtFX0lOU1RBTExfSU5DTFVERURJUn0vd3BlLSR7V1BFX0FQSV9WRVJTSU9OfS9X
UEUvV2ViS2l0IgorICAgIENPTVBPTkVOVCAiRGV2ZWxvcG1lbnQiCispCisKK3NldChXUEVfSU5T
VEFMTEVEX0hFQURFUlMKKyAgICAke1dFQktJVDJfRElSfS9TaGFyZWQvQVBJL2Mvd3BlL1dlYktp
dC5oCispCisKK2luc3RhbGwoRklMRVMgJHtXUEVfSU5TVEFMTEVEX0hFQURFUlN9CisgICAgREVT
VElOQVRJT04gIiR7Q01BS0VfSU5TVEFMTF9JTkNMVURFRElSfS93cGUtJHtXUEVfQVBJX1ZFUlNJ
T059L1dQRSIKKyAgICBDT01QT05FTlQgIkRldmVsb3BtZW50IgorKQorCitpbnN0YWxsKEZJTEVT
ICR7Q01BS0VfQklOQVJZX0RJUn0vd3BlLXdlYmtpdC5wYworICAgIERFU1RJTkFUSU9OICIke0NN
QUtFX0lOU1RBTExfTElCRElSfS9wa2djb25maWciCisgICAgQ09NUE9ORU5UICJEZXZlbG9wbWVu
dCIKKykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NjcmlwdHMvZ2VuZXJhdGUtZm9yd2Fy
ZGluZy1oZWFkZXJzLnBsIGIvU291cmNlL1dlYktpdDIvU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJk
aW5nLWhlYWRlcnMucGwKaW5kZXggYjYxZGI3ODc3NGEuLmE3ZDNhMGI2YjkyIDEwMDc1NQotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5wbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TY3JpcHRzL2dlbmVyYXRlLWZvcndhcmRpbmctaGVhZGVycy5w
bApAQCAtMzUsNyArMzUsNyBAQCB1c2UgRmlsZTo6U3BlYzo6RnVuY3Rpb25zOwogdXNlIEdldG9w
dDo6TG9uZzsKIAogbXkgJHNyY1Jvb3QgPSByZWFscGF0aChGaWxlOjpTcGVjLT5jYXRmaWxlKGRp
cm5hbWUoYWJzX3BhdGgoJDApKSwgIi4uLy4uIikpOwotbXkgQHBsYXRmb3JtUHJlZml4ZXMgPSAo
ImNhIiwgImNmIiwgImNvY29hIiwgIkNvY29hIiwgIkNvb3JkaW5hdGVkR3JhcGhpY3MiLCAiY3Vy
bCIsICJlZmwiLCAiZ3RrIiwgImlvcyIsICJtYWMiLCAic291cCIsICJ3aW4iKTsKK215IEBwbGF0
Zm9ybVByZWZpeGVzID0gKCJjYSIsICJjZiIsICJjb2NvYSIsICJDb2NvYSIsICJDb29yZGluYXRl
ZEdyYXBoaWNzIiwgImN1cmwiLCAiZWZsIiwgImd0ayIsICJpb3MiLCAibWFjIiwgInNvdXAiLCAi
d2luIiwgIndwZSIpOwogbXkgQGZyYW1ld29ya3MgPSAoIkphdmFTY3JpcHRDb3JlIiwgIldlYkNv
cmUiLCAiV2ViS2l0Iik7CiBteSBAc2tpcHBlZFByZWZpeGVzOwogbXkgQGZyYW1ld29ya0hlYWRl
cnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNlLmgKaW5kZXggMmU4ZmJmYmJlNWMuLjMz
YTA2OTg4ZTY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvV0tCYXNl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL1dLQmFzZS5oCkBAIC0zOCw2ICsz
OCwxMCBAQAogI2luY2x1ZGUgPFdlYktpdC9XS0Jhc2VNYWMuaD4KICNlbmRpZgogCisjaWYgZGVm
aW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlV1BFLmg+CisjZW5k
aWYKKwogLyogV2ViS2l0MiBzaGFyZWQgdHlwZXMgKi8KIAogdHlwZWRlZiB1aW50MzJfdCBXS1R5
cGVJRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNl
V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mvd3BlL1dLQmFzZVdQRS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iNWVmMDYyMjAyYgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV0tCYXNlV1BFLmgKQEAg
LTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaWZuZGVmIFdLQmFzZVdQRV9oCisjZGVmaW5lIFdLQmFzZVdQRV9oCisKKyNpZm5k
ZWYgV0tCYXNlX2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tCYXNlLmhcIiBpbnN0ZWFk
IG9mIHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKwordHlwZWRlZiBjb25zdCBzdHJ1Y3Qg
T3BhcXVlV0tWaWV3KiBXS1ZpZXdSZWY7CisKKyNlbmRpZiAvKiBXS0Jhc2VXUEVfaCAqLwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy93cGUvV2ViS2l0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLjUwZWQxYWMyYjNmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL0FQSS9jL3dwZS9XZWJLaXQuaApAQCAtMCwwICsxLDEwNCBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdQ
RV9XZWJLaXRfaAorI2RlZmluZSBXUEVfV2ViS2l0X2gKKworI2RlZmluZSBCVUlMRElOR19XUEVf
XworCisjaW5jbHVkZSA8V2ViS2l0L1dLQmFzZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1R5cGUu
aD4KKworLy8gRnJvbSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvCisjaW5jbHVkZSA8V2Vi
S2l0L1dLQXJyYXkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tEYXRhLmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLRGVjbGFyYXRpb25TcGVjaWZpZXJzLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRGljdGlv
bmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0Vycm9yUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0
L1dLR2VvbWV0cnkuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tNdXRhYmxlQXJyYXkuaD4KKyNpbmNs
dWRlIDxXZWJLaXQvV0tNdXRhYmxlRGljdGlvbmFyeS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS051
bWJlci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1NlY3VyaXR5T3JpZ2luUmVmLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLU3RyaW5nLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVVJMLmg+CisjaW5jbHVk
ZSA8V2ViS2l0L1dLVVJMUmVxdWVzdC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1VSTFJlc3BvbnNl
Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcy5oPgorI2lu
Y2x1ZGUgPFdlYktpdC9XS1VzZXJTY3JpcHRJbmplY3Rpb25UaW1lLmg+CisKKy8vIEZyb20gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvYy8KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGUuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExp
c3QuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVCYWNrRm9yd2FyZExpc3RJdGVtLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlRmlsZUhhbmRsZVJlZi5oPgorI2luY2x1ZGUgPFdlYktp
dC9XS0J1bmRsZUZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlSGl0VGVzdFJlc3Vs
dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZUluaXRpYWxpemUuaD4KKyNpbmNsdWRlIDxX
ZWJLaXQvV0tCdW5kbGVJbnNwZWN0b3IuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlTm9kZUhhbmRsZS5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2UuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5k
bGVQYWdlQmFubmVyLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUNvbnRleHRNZW51
Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg+CisjaW5jbHVkZSA8V2Vi
S2l0L1dLQnVuZGxlUGFnZUZ1bGxTY3JlZW5DbGllbnQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tC
dW5kbGVQYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tCdW5kbGVQYWdlTG9hZGVyQ2xp
ZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlUGFnZU92ZXJsYXkuaD4KKyNpbmNsdWRl
IDxXZWJLaXQvV0tCdW5kbGVQYWdlUG9saWN5Q2xpZW50Lmg+CisjaW5jbHVkZSA8V2ViS2l0L1dL
QnVuZGxlUGFnZVJlc291cmNlTG9hZENsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRs
ZVBhZ2VVSUNsaWVudC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0J1bmRsZVJhbmdlSGFuZGxlLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQnVuZGxlU2NyaXB0V29ybGQuaD4KKworLy8gRnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYWNrRm9yd2Fy
ZExpc3RJdGVtUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQmFja0ZvcndhcmRMaXN0UmVmLmg+
CisjaW5jbHVkZSA8V2ViS2l0L1dLQ29udGV4dC5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0NvbnRl
eHRDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLQ3JlZGVudGlhbC5oPgor
I2luY2x1ZGUgPFdlYktpdC9XS0NyZWRlbnRpYWxUeXBlcy5oPgorI2luY2x1ZGUgPFdlYktpdC9X
S0ZyYW1lLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLRnJhbWVJbmZvUmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLRnJhbWVQb2xpY3lMaXN0ZW5lci5oPgorI2luY2x1ZGUgPFdlYktpdC9XS0hpdFRl
c3RSZXN1bHQuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tOYXZpZ2F0aW9uQWN0aW9uUmVmLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvbkRhdGFSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQv
V0tOYXZpZ2F0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLTmF2aWdhdGlvblJlc3BvbnNl
UmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZS5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1Bh
Z2VDb25maWd1cmF0aW9uUmVmLmg+CisjaW5jbHVkZSA8V2ViS2l0L1dLUGFnZUdyb3VwLmg+Cisj
aW5jbHVkZSA8V2ViS2l0L1dLUHJlZmVyZW5jZXNSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tT
ZXNzaW9uU3RhdGVSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyQ29udGVudENvbnRyb2xs
ZXJSZWYuaD4KKyNpbmNsdWRlIDxXZWJLaXQvV0tVc2VyU2NyaXB0UmVmLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLVmlldy5oPgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdwb3J0QXR0cmlidXRlcy5o
PgorI2luY2x1ZGUgPFdlYktpdC9XS1dpbmRvd0ZlYXR1cmVzUmVmLmg+CisKKyNlbmRpZiAvLyBX
UEVfV2ViS2l0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRl
ZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9Db21wb3NpdGluZ1J1bkxvb3AuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9y
L0NvbXBvc2l0aW5nUnVuTG9vcC5jcHAKaW5kZXggOGFjZjUwNjkyMTAuLjIyNDM4OGVlYzY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJl
YWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRp
bmdSdW5Mb29wLmNwcApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFdv
cmtRdWV1ZVBvb2woKQogICAgIHsKLSNpZiBQTEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAgICAgICAgIG1fdGhyZWFkQ291bnRMaW1pdCA9IDE7CiAjZWxz
ZQogICAgICAgICBtX3RocmVhZENvdW50TGltaXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2ln
bmVkPjo6bWF4KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0
ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRlZGNvbXBvc2l0b3Iv
Q29tcG9zaXRpbmdSdW5Mb29wLmgKaW5kZXggODE2ZDQ2N2I1MTAuLjY0NWQ3YjkwZDEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvQ29tcG9zaXRpbmdSdW5Mb29wLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL0NvbXBvc2l0aW5nUnVu
TG9vcC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1Nf
VEhSRUFERUQpCiAKKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9BdG9taWNz
Lmg+CiAjaW5jbHVkZSA8d3RmL0NvbmRpdGlvbi5oPgogI2luY2x1ZGUgPHd0Zi9GYXN0TWFsbG9j
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGlj
cy90aHJlYWRlZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRl
ZENvbXBvc2l0b3IuY3BwCmluZGV4IDU0ZDk2MGIzZDBlLi45NmQyOTY2YmRlNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21w
b3NpdG9yL1RocmVhZGVkQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvdGhyZWFkZWRjb21wb3NpdG9yL1RocmVhZGVkQ29tcG9zaXRv
ci5jcHAKQEAgLTQzLDEyICs0MywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLVJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IFRocmVhZGVkQ29tcG9z
aXRvcjo6Y3JlYXRlKENsaWVudCYgY2xpZW50LCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUs
IGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGRE
b0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6UGFpbnRGbGFncyBwYWludEZs
YWdzKQorUmVmPFRocmVhZGVkQ29tcG9zaXRvcj4gVGhyZWFkZWRDb21wb3NpdG9yOjpjcmVhdGUo
Q2xpZW50JiBjbGllbnQsIFdlYlBhZ2UmIHdlYlBhZ2UsIGNvbnN0IEludFNpemUmIHZpZXdwb3J0
U2l6ZSwgZmxvYXQgc2NhbGVGYWN0b3IsIHVpbnQ2NF90IG5hdGl2ZVN1cmZhY2VIYW5kbGUsIFNo
b3VsZERvRnJhbWVTeW5jIGRvRnJhbWVTeW5jLCBUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzIHBh
aW50RmxhZ3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgVGhyZWFkZWRDb21wb3NpdG9y
KGNsaWVudCwgdmlld3BvcnRTaXplLCBzY2FsZUZhY3RvciwgbmF0aXZlU3VyZmFjZUhhbmRsZSwg
ZG9GcmFtZVN5bmMsIHBhaW50RmxhZ3MpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBUaHJl
YWRlZENvbXBvc2l0b3IoY2xpZW50LCB3ZWJQYWdlLCB2aWV3cG9ydFNpemUsIHNjYWxlRmFjdG9y
LCBuYXRpdmVTdXJmYWNlSGFuZGxlLCBkb0ZyYW1lU3luYywgcGFpbnRGbGFncykpOwogfQogCi1U
aHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmIGNsaWVudCwgY29u
c3QgSW50U2l6ZSYgdmlld3BvcnRTaXplLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMgZG9GcmFtZVN5bmMsIFRleHR1cmVN
YXBwZXI6OlBhaW50RmxhZ3MgcGFpbnRGbGFncykKK1RocmVhZGVkQ29tcG9zaXRvcjo6VGhyZWFk
ZWRDb21wb3NpdG9yKENsaWVudCYgY2xpZW50LCBXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBJbnRT
aXplJiB2aWV3cG9ydFNpemUsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBuYXRpdmVTdXJm
YWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYyBkb0ZyYW1lU3luYywgVGV4dHVyZU1hcHBlcjo6
UGFpbnRGbGFncyBwYWludEZsYWdzKQogICAgIDogbV9jbGllbnQoY2xpZW50KQogICAgICwgbV92
aWV3cG9ydFNpemUodmlld3BvcnRTaXplKQogICAgICwgbV9zY2FsZUZhY3RvcihzY2FsZUZhY3Rv
cikKQEAgLTY0LDEzICs2NCwyMSBAQCBUaHJlYWRlZENvbXBvc2l0b3I6OlRocmVhZGVkQ29tcG9z
aXRvcihDbGllbnQmIGNsaWVudCwgY29uc3QgSW50U2l6ZSYgdmlld3BvcnRTaQogICAgIG1fY2xp
ZW50UmVuZGVyc05leHRGcmFtZS5zdG9yZShmYWxzZSk7CiAgICAgbV9jb29yZGluYXRlVXBkYXRl
Q29tcGxldGlvbldpdGhDbGllbnQuc3RvcmUoZmFsc2UpOwogCisjaWYgUExBVEZPUk0oV1BFKQor
ICAgIG1fY29tcG9zaXRpbmdNYW5hZ2VyLmVzdGFibGlzaENvbm5lY3Rpb24od2ViUGFnZSk7Cisj
ZW5kaWYKKwogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewogICAgICAgICBtX3NjZW5lID0gYWRv
cHRSZWYobmV3IENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisjaWYgUExBVEZPUk0o
R1RLKQogICAgICAgICBpZiAobV9uYXRpdmVTdXJmYWNlSGFuZGxlKSB7CiAgICAgICAgICAgICBj
cmVhdGVHTENvbnRleHQoKTsKICAgICAgICAgICAgIG1fc2NlbmUtPnNldEFjdGl2ZSh0cnVlKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUoZmFsc2UpOwor
I2VsaWYgUExBVEZPUk0oV1BFKQorICAgICAgICBtX3NjZW5lLT5zZXRBY3RpdmUodHJ1ZSk7Cisj
ZW5kaWYKICAgICB9KTsKIH0KIApAQCAtODEsNiArODksOCBAQCBUaHJlYWRlZENvbXBvc2l0b3I6
On5UaHJlYWRlZENvbXBvc2l0b3IoKQogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZUdM
Q29udGV4dCgpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CisKKyNpZiBQTEFURk9S
TShHVEspCiAgICAgQVNTRVJUKG1fbmF0aXZlU3VyZmFjZUhhbmRsZSk7CiAKICAgICBtX2NvbnRl
eHQgPSBHTENvbnRleHQ6OmNyZWF0ZUNvbnRleHRGb3JXaW5kb3cocmVpbnRlcnByZXRfY2FzdDxH
TE5hdGl2ZVdpbmRvd1R5cGU+KG1fbmF0aXZlU3VyZmFjZUhhbmRsZSksICZQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXlGb3JDb21wb3NpdGluZygpKTsKQEAgLTkxLDYgKzEwMSwyMiBAQCB2
b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRlR0xDb250ZXh0KCkKICAgICAgICAgaWYgKG1f
Y29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCiAgICAgICAgICAgICBtX2NvbnRleHQtPnN3
YXBJbnRlcnZhbCgwKTsKICAgICB9CisjZW5kaWYKKworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICBh
dXRvJiBwbGF0Zm9ybURpc3BsYXkgPSBQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKTsK
KyAgICBSRUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3BsYXlXUEU+KHBsYXRmb3JtRGlzcGxh
eSkpOworICAgIG1fdGFyZ2V0ID0gZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihwbGF0Zm9y
bURpc3BsYXkpLmNyZWF0ZUVHTFRhcmdldCgqdGhpcywgbV9jb21wb3NpdGluZ01hbmFnZXIucmVs
ZWFzZUNvbm5lY3Rpb25GZCgpKTsKKyAgICBBU1NFUlQobV90YXJnZXQpOworICAgIG1fdGFyZ2V0
LT5pbml0aWFsaXplKG1fdmlld3BvcnRTaXplKTsKKworICAgIG1fY29udGV4dCA9IEdMQ29udGV4
dDo6Y3JlYXRlQ29udGV4dEZvcldpbmRvdyhtX3RhcmdldC0+bmF0aXZlV2luZG93KCksICZwbGF0
Zm9ybURpc3BsYXkpOworICAgIGlmICghbV9jb250ZXh0KQorICAgICAgICByZXR1cm47CisKKyAg
ICBpZiAoIW1fY29udGV4dC0+bWFrZUNvbnRleHRDdXJyZW50KCkpCisgICAgICAgIHJldHVybjsK
KyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCkBAIC0x
MDAsMTYgKzEyNiwyMyBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6aW52YWxpZGF0ZSgpCiAg
ICAgbV9jb21wb3NpdGluZ1J1bkxvb3AtPnBlcmZvcm1UYXNrU3luYyhbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpXSB7CiAgICAgICAgIG1fc2NlbmUtPnB1cmdlR0xSZXNvdXJj
ZXMoKTsKICAgICAgICAgbV9jb250ZXh0ID0gbnVsbHB0cjsKKyNpZiBQTEFURk9STShXUEUpCisg
ICAgICAgIG1fdGFyZ2V0ID0gbnVsbHB0cjsKKyNlbmRpZgogICAgICAgICBtX3NjZW5lID0gbnVs
bHB0cjsKICAgICB9KTsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9N
T05JVE9SKQogICAgIG1fZGlzcGxheVJlZnJlc2hNb25pdG9yLT5pbnZhbGlkYXRlKCk7CiAjZW5k
aWYKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcCA9IG51bGxwdHI7CisjaWYgVVNFKFJFUVVFU1Rf
QU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKKyAgICBtX2Rpc3BsYXlSZWZyZXNoTW9u
aXRvci0+aW52YWxpZGF0ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgVGhyZWFkZWRDb21wb3NpdG9y
OjpzZXROYXRpdmVTdXJmYWNlSGFuZGxlRm9yQ29tcG9zaXRpbmcodWludDY0X3QgaGFuZGxlKQog
eworI2lmIFBMQVRGT1JNKEdUSykKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c3RvcFVwZGF0
ZXMoKTsKICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+cGVyZm9ybVRhc2tTeW5jKFt0aGlzLCBw
cm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGhhbmRsZV0gewogICAgICAgICAvLyBBIG5l
dyBuYXRpdmUgaGFuZGxlIGNhbid0IGJlIHNldCB3aXRob3V0IGRlc3Ryb3lpbmcgdGhlIHByZXZp
b3VzIG9uZSBmaXJzdCBpZiBhbnkuCkBAIC0xMjMsNiArMTU2LDcgQEAgdm9pZCBUaHJlYWRlZENv
bXBvc2l0b3I6OnNldE5hdGl2ZVN1cmZhY2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCBo
YW5kbGUpCiAgICAgICAgICAgICBtX2NvbnRleHQgPSBudWxscHRyOwogICAgICAgICB9CiAgICAg
fSk7CisjZW5kaWYKIH0KIAogdm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnNldFNjYWxlRmFjdG9y
KGZsb2F0IHNjYWxlKQpAQCAtMTQ2LDYgKzE4MCwxMCBAQCB2b2lkIFRocmVhZGVkQ29tcG9zaXRv
cjo6c2V0Vmlld3BvcnRTaXplKGNvbnN0IEludFNpemUmIHZpZXdwb3J0U2l6ZSwgZmxvYXQgc2Nh
bAogewogICAgIG1fY29tcG9zaXRpbmdSdW5Mb29wLT5wZXJmb3JtVGFza1N5bmMoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgdmlld3BvcnRTaXplLCBzY2FsZV0gewogICAg
ICAgICBtX3ZpZXdwb3J0U2l6ZSA9IHZpZXdwb3J0U2l6ZTsKKyNpZiBQTEFURk9STShXUEUpCisg
ICAgICAgIGlmIChtX3RhcmdldCkKKyAgICAgICAgICAgIG1fdGFyZ2V0LT5yZXNpemUodmlld3Bv
cnRTaXplKTsKKyNlbmRpZgogICAgICAgICBtX3NjYWxlRmFjdG9yID0gc2NhbGU7CiAgICAgICAg
IG1fbmVlZHNSZXNpemUgPSB0cnVlOwogICAgICAgICBtX2NvbXBvc2l0aW5nUnVuTG9vcC0+c2No
ZWR1bGVVcGRhdGUoKTsKQEAgLTE4OSw5ICsyMjcsMTggQEAgdm9pZCBUaHJlYWRlZENvbXBvc2l0
b3I6OnJlbmRlckxheWVyVHJlZSgpCiAgICAgaWYgKCFtX3NjZW5lIHx8ICFtX3NjZW5lLT5pc0Fj
dGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgaWYgKCFt
X2NvbnRleHQpCisgICAgICAgIGNyZWF0ZUdMQ29udGV4dCgpOworI2VuZGlmCisKICAgICBpZiAo
IW1fY29udGV4dCB8fCAhbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQoKSkKICAgICAgICAg
cmV0dXJuOwogCisjaWYgUExBVEZPUk0oV1BFKQorICAgIG1fdGFyZ2V0LT5mcmFtZVdpbGxSZW5k
ZXIoKTsKKyNlbmRpZgorCiAgICAgaWYgKG1fbmVlZHNSZXNpemUpIHsKICAgICAgICAgZ2xWaWV3
cG9ydCgwLCAwLCBtX3ZpZXdwb3J0U2l6ZS53aWR0aCgpLCBtX3ZpZXdwb3J0U2l6ZS5oZWlnaHQo
KSk7CiAgICAgICAgIG1fbmVlZHNSZXNpemUgPSBmYWxzZTsKQEAgLTIxMSw3ICsyNTgsMTMgQEAg
dm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OnJlbmRlckxheWVyVHJlZSgpCiAKICAgICBtX2NvbnRl
eHQtPnN3YXBCdWZmZXJzKCk7CiAKKyNpZiBQTEFURk9STShXUEUpCisgICAgbV90YXJnZXQtPmZy
YW1lUmVuZGVyZWQoKTsKKyNlbmRpZgorCisjaWYgUExBVEZPUk0oR1RLKQogICAgIHNjZW5lVXBk
YXRlRmluaXNoZWQoKTsKKyNlbmRpZgogfQogCiB2b2lkIFRocmVhZGVkQ29tcG9zaXRvcjo6c2Nl
bmVVcGRhdGVGaW5pc2hlZCgpCkBAIC0yNzAsNSArMzIzLDMyIEBAIHZvaWQgVGhyZWFkZWRDb21w
b3NpdG9yOjpjb29yZGluYXRlVXBkYXRlQ29tcGxldGlvbldpdGhDbGllbnQoKQogfQogI2VuZGlm
CiAKKyNpZiBQTEFURk9STShXUEUpCitzdGF0aWMgdm9pZCBkZWJ1Z1RocmVhZGVkQ29tcG9zaXRv
ckZQUygpCit7CisgICAgc3RhdGljIGRvdWJsZSBsYXN0VGltZSA9IGN1cnJlbnRUaW1lKCk7Cisg
ICAgc3RhdGljIHVuc2lnbmVkIGZyYW1lQ291bnQgPSAwOworCisgICAgZG91YmxlIGN0ID0gY3Vy
cmVudFRpbWUoKTsKKyAgICBmcmFtZUNvdW50Kys7CisKKyAgICBpZiAoY3QgLSBsYXN0VGltZSA+
PSA1LjApIHsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJUaHJlYWRlZENvbXBvc2l0b3I6IGZy
YW1lIGNhbGxiYWNrcyAlLjJmIEZQU1xuIiwgZnJhbWVDb3VudCAvIChjdCAtIGxhc3RUaW1lKSk7
CisgICAgICAgIGxhc3RUaW1lID0gY3Q7CisgICAgICAgIGZyYW1lQ291bnQgPSAwOworICAgIH0K
K30KKwordm9pZCBUaHJlYWRlZENvbXBvc2l0b3I6OmZyYW1lQ29tcGxldGUoKQoreworICAgIEFT
U0VSVChtX2NvbXBvc2l0aW5nUnVuTG9vcC0+aXNDdXJyZW50KCkpOworICAgIHN0YXRpYyBib29s
IHJlcG9ydEZQUyA9ICEhc3RkOjpnZXRlbnYoIldQRV9USFJFQURFRF9DT01QT1NJVE9SX0ZQUyIp
OworICAgIGlmIChyZXBvcnRGUFMpCisgICAgICAgIGRlYnVnVGhyZWFkZWRDb21wb3NpdG9yRlBT
KCk7CisKKyAgICBzY2VuZVVwZGF0ZUZpbmlzaGVkKCk7Cit9CisjZW5kaWYKKwogfQogI2VuZGlm
IC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDU19USFJFQURFRCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9U
aHJlYWRlZENvbXBvc2l0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Db29yZGluYXRlZEdy
YXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3IuaAppbmRleCA2Nzk1
NGEwN2E0Ni4uZWIxMjQ1OTc1NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9D
b29yZGluYXRlZEdyYXBoaWNzL3RocmVhZGVkY29tcG9zaXRvci9UaHJlYWRlZENvbXBvc2l0b3Iu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ29vcmRpbmF0ZWRHcmFwaGljcy90aHJlYWRl
ZGNvbXBvc2l0b3IvVGhyZWFkZWRDb21wb3NpdG9yLmgKQEAgLTQyLDYgKzQyLDExIEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9EaXNwbGF5UmVmcmVzaE1vbml0b3IuaD4KICNlbmRpZgogCisjaWYgUExB
VEZPUk0oV1BFKQorI2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvUGxhdGZvcm1EaXNwbGF5V1BFLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUg
ewogc3RydWN0IENvb3JkaW5hdGVkR3JhcGhpY3NTdGF0ZTsKIH0KQEAgLTUxLDggKzU2LDEzIEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lOwogY2xh
c3MgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50OwogY2xhc3MgVGhyZWFkZWREaXNwbGF5
UmVmcmVzaE1vbml0b3I7CitjbGFzcyBXZWJQYWdlOwogCi1jbGFzcyBUaHJlYWRlZENvbXBvc2l0
b3IgOiBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhyZWFk
U2FmZVJlZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPiB7CitjbGFzcyBUaHJlYWRlZENvbXBv
c2l0b3IgOiBwdWJsaWMgQ29vcmRpbmF0ZWRHcmFwaGljc1NjZW5lQ2xpZW50LCBwdWJsaWMgVGhy
ZWFkU2FmZVJlZkNvdW50ZWQ8VGhyZWFkZWRDb21wb3NpdG9yPgorI2lmIFBMQVRGT1JNKFdQRSkK
KyAgICAsIHB1YmxpYyBXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXlXUEU6OkVHTFRhcmdldDo6Q2xp
ZW50CisjZW5kaWYKKyAgICB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoVGhyZWFkZWRDb21w
b3NpdG9yKTsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKQEAgLTY0LDcg
Kzc0LDcgQEAgcHVibGljOgogCiAgICAgZW51bSBjbGFzcyBTaG91bGREb0ZyYW1lU3luYyB7IE5v
LCBZZXMgfTsKIAotICAgIHN0YXRpYyBSZWY8VGhyZWFkZWRDb21wb3NpdG9yPiBjcmVhdGUoQ2xp
ZW50JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRf
dCBuYXRpdmVTdXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0Zy
YW1lU3luYzo6WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7Cisg
ICAgc3RhdGljIFJlZjxUaHJlYWRlZENvbXBvc2l0b3I+IGNyZWF0ZShDbGllbnQmLCBXZWJQYWdl
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBu
YXRpdmVTdXJmYWNlSGFuZGxlID0gMCwgU2hvdWxkRG9GcmFtZVN5bmMgPSBTaG91bGREb0ZyYW1l
U3luYzo6WWVzLCBXZWJDb3JlOjpUZXh0dXJlTWFwcGVyOjpQYWludEZsYWdzID0gMCk7CiAgICAg
dmlydHVhbCB+VGhyZWFkZWRDb21wb3NpdG9yKCk7CiAKICAgICB2b2lkIHNldE5hdGl2ZVN1cmZh
Y2VIYW5kbGVGb3JDb21wb3NpdGluZyh1aW50NjRfdCk7CkBAIC04NywxMyArOTcsMTggQEAgcHVi
bGljOgogI2VuZGlmCiAKIHByaXZhdGU6Ci0gICAgVGhyZWFkZWRDb21wb3NpdG9yKENsaWVudCYs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmLCBmbG9hdCBzY2FsZUZhY3RvciwgdWludDY0X3QgbmF0
aXZlU3VyZmFjZUhhbmRsZSwgU2hvdWxkRG9GcmFtZVN5bmMsIFdlYkNvcmU6OlRleHR1cmVNYXBw
ZXI6OlBhaW50RmxhZ3MpOworICAgIFRocmVhZGVkQ29tcG9zaXRvcihDbGllbnQmLCBXZWJQYWdl
JiwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGZsb2F0IHNjYWxlRmFjdG9yLCB1aW50NjRfdCBu
YXRpdmVTdXJmYWNlSGFuZGxlLCBTaG91bGREb0ZyYW1lU3luYywgV2ViQ29yZTo6VGV4dHVyZU1h
cHBlcjo6UGFpbnRGbGFncyk7CiAKICAgICAvLyBDb29yZGluYXRlZEdyYXBoaWNzU2NlbmVDbGll
bnQKICAgICB2b2lkIHJlbmRlck5leHRGcmFtZSgpIG92ZXJyaWRlOwogICAgIHZvaWQgdXBkYXRl
Vmlld3BvcnQoKSBvdmVycmlkZTsKICAgICB2b2lkIGNvbW1pdFNjcm9sbE9mZnNldCh1aW50MzJf
dCBsYXllcklELCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBvZmZzZXQpIG92ZXJyaWRlOwogCisj
aWYgUExBVEZPUk0oV1BFKQorICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6U3Vy
ZmFjZTo6Q2xpZW50CisgICAgdm9pZCBmcmFtZUNvbXBsZXRlKCkgb3ZlcnJpZGU7CisjZW5kaWYK
KwogICAgIHZvaWQgcmVuZGVyTGF5ZXJUcmVlKCk7CiAgICAgdm9pZCBzY2VuZVVwZGF0ZUZpbmlz
aGVkKCk7CiAKQEAgLTEwMSw2ICsxMTYsMTIgQEAgcHJpdmF0ZToKIAogICAgIENsaWVudCYgbV9j
bGllbnQ7CiAgICAgUmVmUHRyPENvb3JkaW5hdGVkR3JhcGhpY3NTY2VuZT4gbV9zY2VuZTsKKwor
I2lmIFBMQVRGT1JNKFdQRSkKKyAgICBDb21wb3NpdGluZ01hbmFnZXIgbV9jb21wb3NpdGluZ01h
bmFnZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheVdQRTo6
RUdMVGFyZ2V0PiBtX3RhcmdldDsKKyNlbmRpZgorCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkdMQ29udGV4dD4gbV9jb250ZXh0OwogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX3ZpZXdw
b3J0U2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUlu
Zm8uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9EcmF3aW5nQXJlYUluZm8uaAppbmRleCA3ZmM0
ZDdjNGIzZi4uYTQzNWUxOWJiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9E
cmF3aW5nQXJlYUluZm8uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRHJhd2luZ0FyZWFJ
bmZvLmgKQEAgLTM0LDYgKzM0LDggQEAgZW51bSBEcmF3aW5nQXJlYVR5cGUgewogICAgIERyYXdp
bmdBcmVhVHlwZVRpbGVkQ29yZUFuaW1hdGlvbiwKICNlbmRpZgogICAgIERyYXdpbmdBcmVhVHlw
ZVJlbW90ZUxheWVyVHJlZSwKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBEcmF3aW5nQXJlYVR5
cGVXUEUKICNlbHNlCiAgICAgRHJhd2luZ0FyZWFUeXBlSW1wbAogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktleWJvYXJkRXZlbnQuaAppbmRleCBjYjFmMTE4Yzg5
Mi4uMTRmZGRlMjI0ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVX
ZWJLZXlib2FyZEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYktl
eWJvYXJkRXZlbnQuaApAQCAtNTEsNiArNTEsMTAgQEAgdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQg
R2RrRXZlbnQ7CiBPQkpDX0NMQVNTIFdlYkV2ZW50OwogI2VuZGlmCiAKKyNpZiBQTEFURk9STShX
UEUpCitzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBOYXRpdmVXZWJLZXlib2FyZEV2ZW50IDogcHVibGljIFdlYktl
eWJvYXJkRXZlbnQgewpAQCAtNjIsNiArNjYsOCBAQCBwdWJsaWM6CiAgICAgTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChHZGtFdmVudCosIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uUmVzdWx0cyYs
IElucHV0TWV0aG9kRmlsdGVyOjpFdmVudEZha2VkRm9yQ29tcG9zaXRpb24sIFZlY3RvcjxTdHJp
bmc+JiYgY29tbWFuZHMpOwogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQoOjpXZWJFdmVudCAqKTsKKyNlbGlmIFBMQVRGT1JNKFdQRSkKKyAgICBOYXRpdmVX
ZWJLZXlib2FyZEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqKTsKICNlbmRp
ZgogCiAjaWYgVVNFKEFQUEtJVCkKQEAgLTcyLDYgKzc4LDggQEAgcHVibGljOgogICAgIGJvb2wg
aXNGYWtlRXZlbnRGb3JDb21wb3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZmFrZUV2ZW50Rm9y
Q29tcG9zaXRpb247IH0KICNlbGlmIFBMQVRGT1JNKElPUykKICAgICA6OldlYkV2ZW50KiBuYXRp
dmVFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZlRXZlbnQuZ2V0KCk7IH0KKyNlbGlmIFBM
QVRGT1JNKFdQRSkKKyAgICBjb25zdCB2b2lkKiBuYXRpdmVFdmVudCgpIGNvbnN0IHsgcmV0dXJu
IG51bGxwdHI7IH0KICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYk1vdXNlRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
YXRpdmVXZWJNb3VzZUV2ZW50LmgKaW5kZXggODhjZDE0MTA5MzguLjI4M2ZjMzM0OTQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViTW91c2VFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJNb3VzZUV2ZW50LmgKQEAgLTM4LDYgKzM4
LDEwIEBAIE9CSkNfQ0xBU1MgTlNWaWV3OwogdHlwZWRlZiB1bmlvbiBfR2RrRXZlbnQgR2RrRXZl
bnQ7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKK3N0cnVjdCB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudDsKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgTmF0aXZlV2Vi
TW91c2VFdmVudCA6IHB1YmxpYyBXZWJNb3VzZUV2ZW50IHsKQEAgLTQ3LDYgKzUxLDggQEAgcHVi
bGljOgogI2VsaWYgUExBVEZPUk0oR1RLKQogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoY29uc3Qg
TmF0aXZlV2ViTW91c2VFdmVudCYpOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoR2RrRXZlbnQq
LCBpbnQpOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQoc3Ry
dWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwog
I2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVu
dC5nZXQoKTsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2
ZW50KCkgY29uc3QgeyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0
IHZvaWQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAK
IHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViVG91
Y2hFdmVudC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYlRvdWNoRXZlbnQuaApp
bmRleCAxMTgxMjRjZGViYy4uODJmM2IyNGQ0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9OYXRpdmVXZWJUb3VjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVk
L05hdGl2ZVdlYlRvdWNoRXZlbnQuaApAQCAtMzQsNiArMzQsOCBAQAogc3RydWN0IF9VSVdlYlRv
dWNoRXZlbnQ7CiAjZWxpZiBQTEFURk9STShHVEspCiAjaW5jbHVkZSA8V2ViQ29yZS9HVW5pcXVl
UHRyR3RrLmg+CisjZWxpZiBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8d3BlL2lucHV0Lmg+CiAj
ZW5kaWYKIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC00Niw2ICs0OCw5IEBAIHB1YmxpYzoKICAg
ICBOYXRpdmVXZWJUb3VjaEV2ZW50KEdka0V2ZW50KiwgVmVjdG9yPFdlYlBsYXRmb3JtVG91Y2hQ
b2ludD4mJik7CiAgICAgTmF0aXZlV2ViVG91Y2hFdmVudChjb25zdCBOYXRpdmVXZWJUb3VjaEV2
ZW50Jik7CiAgICAgY29uc3QgR2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4g
bV9uYXRpdmVFdmVudC5nZXQoKTsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdl
YlRvdWNoRXZlbnQoc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudCosIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yKTsKKyAgICBjb25zdCBzdHJ1Y3Qgd3BlX2lucHV0X3RvdWNoX2V2ZW50X3Jhdyog
bmF0aXZlRmFsbGJhY2tUb3VjaFBvaW50KCkgY29uc3QgeyByZXR1cm4gJm1fZmFsbGJhY2tUb3Vj
aFBvaW50OyB9CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTU1LDYgKzYwLDggQEAgcHJpdmF0ZToK
IAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBHVW5pcXVlUHRyPEdka0V2ZW50PiBtX25hdGl2ZUV2
ZW50OworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZl
bnRfcmF3IG1fZmFsbGJhY2tUb3VjaFBvaW50OwogI2VuZGlmCiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmF0aXZlV2ViV2hlZWxFdmVudC5oIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaAppbmRleCA1ZGIwYmNlOGZlYi4uMTVmOTU4
NjcxNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OYXRpdmVXZWJXaGVlbEV2
ZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05hdGl2ZVdlYldoZWVsRXZlbnQuaApA
QCAtMzgsNiArMzgsMTAgQEAgT0JKQ19DTEFTUyBOU1ZpZXc7CiB0eXBlZGVmIHVuaW9uIF9HZGtF
dmVudCBHZGtFdmVudDsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQorc3RydWN0IHdwZV9p
bnB1dF9heGlzX2V2ZW50OworI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBO
YXRpdmVXZWJXaGVlbEV2ZW50IDogcHVibGljIFdlYldoZWVsRXZlbnQgewpAQCAtNDcsNiArNTEs
OCBAQCBwdWJsaWM6CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVu
dChjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jik7CiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudChH
ZGtFdmVudCopOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIE5hdGl2ZVdlYldoZWVsRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9heGlzX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwog
I2VuZGlmCiAKICNpZiBVU0UoQVBQS0lUKQpAQCAtNTUsNiArNjEsOCBAQCBwdWJsaWM6CiAgICAg
R2RrRXZlbnQqIG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVFdmVudC5nZXQo
KTsgfQogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIGNvbnN0IHZvaWQqIG5hdGl2ZUV2ZW50KCkg
Y29uc3QgeyByZXR1cm4gMDsgfQorI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNvbnN0IHZvaWQq
IG5hdGl2ZUV2ZW50KCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3Bw
CmluZGV4IGJjNWQ2OTE3ZjMxLi5iMDQwZWMwYWZmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKQEAgLTg0LDExICs4NCwxNCBAQAogI2lm
IFBMQVRGT1JNKElPUykKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvSW5zcGVjdG9yT3ZlcmxheS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFzdGVib2Fy
ZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VsZWN0aW9uUmVjdC5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2hhcmVkQnVmZmVyLmg+CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TKQogCisjaWYgUExBVEZP
Uk0oSU9TKSB8fCBQTEFURk9STShXUEUpCisjaW5jbHVkZSA8V2ViQ29yZS9QYXN0ZWJvYXJkLmg+
CisjZW5kaWYKKwogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCiAjaW5jbHVk
ZSA8V2ViQ29yZS9NZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dC5oPgogI2VuZGlmCkBAIC0xNDky
LDYgKzE0OTUsMjMgQEAgYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRJbWFnZT46OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyLCBQYXN0ZWJvYXJkSW1hZ2UmIHAKIAogI2VuZGlmCiAKKyNpZiBQ
TEFURk9STShXUEUpCit2b2lkIEFyZ3VtZW50Q29kZXI8UGFzdGVib2FyZFdlYkNvbnRlbnQ+Ojpl
bmNvZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgUGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRl
bnQpCit7CisgICAgZW5jb2RlciA8PCBjb250ZW50LnRleHQ7CisgICAgZW5jb2RlciA8PCBjb250
ZW50Lm1hcmt1cDsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFBhc3RlYm9hcmRXZWJDb250ZW50
Pjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFBhc3RlYm9hcmRXZWJDb250ZW50JiBjb250ZW50
KQoreworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC50ZXh0KSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGUoY29udGVudC5tYXJrdXApKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisjZW5kaWYgLy8gUExBVEZP
Uk0oV1BFKQorCiB2b2lkIEFyZ3VtZW50Q29kZXI8RGljdGF0aW9uQWx0ZXJuYXRpdmU+OjplbmNv
ZGUoRW5jb2RlciYgZW5jb2RlciwgY29uc3QgRGljdGF0aW9uQWx0ZXJuYXRpdmUmIGRpY3RhdGlv
bkFsdGVybmF0aXZlKQogewogICAgIGVuY29kZXIgPDwgZGljdGF0aW9uQWx0ZXJuYXRpdmUucmFu
Z2VTdGFydDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1l
bnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aAppbmRleCAwZjU1YjhhZjVhYi4uZDJhZWNmYmNlMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTEzNCw2ICsxMzQsMTIgQEAgc3RydWN0
IFNvdXBOZXR3b3JrUHJveHlTZXR0aW5nczsKIH0KICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BF
KQorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFBhc3RlYm9hcmRXZWJDb250ZW50czsKK30K
KyNlbmRpZgorCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQogbmFtZXNwYWNlIFdlYkNv
cmUgewogY2xhc3MgQ29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVyOwpAQCAtNDE2LDYgKzQyMiwx
MyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVyPFdlYkNvcmU6OlNvdXBOZXR3b3Jr
UHJveHlTZXR0aW5ncz4gewogfTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oV1BFKQordGVtcGxh
dGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudD4g
eworICAgIHN0YXRpYyB2b2lkIGVuY29kZShFbmNvZGVyJiwgY29uc3QgV2ViQ29yZTo6UGFzdGVi
b2FyZFdlYkNvbnRlbnQmKTsKKyAgICBzdGF0aWMgYm9vbCBkZWNvZGUoRGVjb2RlciYsIFdlYkNv
cmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7Cit9OworI2VuZGlmCisKIHRlbXBsYXRlPD4gc3Ry
dWN0IEFyZ3VtZW50Q29kZXI8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHsKICAgICBz
dGF0aWMgdm9pZCBlbmNvZGUoRW5jb2RlciYsIGNvbnN0IFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5k
ZXJsaW5lJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVm
ZXJlbmNlc0RlZmluaXRpb25zLmgKaW5kZXggOTZiYmE1ZDlhMzQuLjNlOGY4MmU2ZDc3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
QEAgLTM3NSw3ICszNzUsNyBAQAogICAgIG1hY3JvKFBpY3RvZ3JhcGhGb250RmFtaWx5LCBwaWN0
b2dyYXBoRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJBcHBsZSBDb2xvciBFbW9qaSIsICIi
LCAiIikgXAogICAgIFwKIAotI2VsaWYgUExBVEZPUk0oR1RLKQorI2VsaWYgUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpCiAKICNkZWZpbmUgRk9SX0VBQ0hfV0VCS0lUX0ZPTlRfRkFNSUxZ
X1BSRUZFUkVOQ0UobWFjcm8pIFwKICAgICBtYWNybyhTdGFuZGFyZEZvbnRGYW1pbHksIHN0YW5k
YXJkRm9udEZhbWlseSwgU3RyaW5nLCBTdHJpbmcsICJUaW1lcyIsICIiLCAiIikgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJLZXlib2FyZEV2ZW50V1BF
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViS2V5Ym9hcmRFdmVudFdQ
RS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjg2ODNiODEyZjNi
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJL
ZXlib2FyZEV2ZW50V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3Rv
cnkuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYktleWJvYXJkRXZlbnQ6Ok5h
dGl2ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZl
bnQpCisgICAgOiBXZWJLZXlib2FyZEV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViS2V5
Ym9hcmRFdmVudChldmVudCkpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2ZW50V1BFLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZlV2ViTW91c2VFdmVudFdQRS5jcHAK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZDlkNDNkZTVlCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRpdmVXZWJNb3VzZUV2
ZW50V1BFLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEln
YWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJOYXRp
dmVXZWJNb3VzZUV2ZW50LmgiCisKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK05hdGl2ZVdlYk1vdXNlRXZlbnQ6Ok5hdGl2ZVdlYk1vdXNlRXZl
bnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2Nh
bGVGYWN0b3IpCisgICAgOiBXZWJNb3VzZUV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2Vi
TW91c2VFdmVudChldmVudCwgZGV2aWNlU2NhbGVGYWN0b3IpKQoreworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvTmF0aXZl
V2ViVG91Y2hFdmVudFdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05hdGl2ZVdl
YlRvdWNoRXZlbnRXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li4wY2M2NjU4Y2ZiNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93
cGUvTmF0aXZlV2ViVG91Y2hFdmVudFdQRS5jcHAKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViVG91Y2hFdmVudC5oIgorCisjaW5jbHVkZSAiV2ViRXZl
bnRGYWN0b3J5LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitOYXRpdmVXZWJUb3VjaEV2ZW50
OjpOYXRpdmVXZWJUb3VjaEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnQqIGV2ZW50
LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6IFdlYlRvdWNoRXZlbnQoV2ViRXZlbnRG
YWN0b3J5OjpjcmVhdGVXZWJUb3VjaEV2ZW50KGV2ZW50LCBkZXZpY2VTY2FsZUZhY3RvcikpCisg
ICAgLCBtX2ZhbGxiYWNrVG91Y2hQb2ludCB7IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251
bGwsIDAsIDAsIDAsIDAgfQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBldmVudC0+
dG91Y2hwb2ludHNfbGVuZ3RoOyArK2kpIHsKKyAgICAgICAgYXV0byYgcG9pbnQgPSBldmVudC0+
dG91Y2hwb2ludHNbaV07CisgICAgICAgIGlmIChwb2ludC50eXBlICE9IHdwZV9pbnB1dF90b3Vj
aF9ldmVudF90eXBlX251bGwpIHsKKyAgICAgICAgICAgIG1fZmFsbGJhY2tUb3VjaFBvaW50ID0g
cG9pbnQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL05h
dGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9OYXRp
dmVXZWJXaGVlbEV2ZW50V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMC4uYmE5NjJlZDRkY2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvd3BlL05hdGl2ZVdlYldoZWVsRXZlbnRXUEUuY3BwCkBAIC0wLDAgKzEsNDAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKKworI2luY2x1ZGUgIldl
YkV2ZW50RmFjdG9yeS5oIgorCisjaW5jbHVkZSA8Y3N0ZGlvPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKKworTmF0aXZlV2ViV2hlZWxFdmVudDo6TmF0aXZlV2ViV2hlZWxFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2F4aXNfZXZlbnQqIGV2ZW50LCBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikKKyAgICA6
IFdlYldoZWVsRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJXaGVlbEV2ZW50KGV2ZW50
LCBkZXZpY2VTY2FsZUZhY3RvcikpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhX
UEUuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kODdhOTI3YWJi
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC93cGUvUHJvY2Vzc0V4
ZWN1dGFibGVQYXRoV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHly
aWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xB
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nl
c3NFeGVjdXRhYmxlUGF0aC5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Cisj
aW5jbHVkZSA8Z2xpYi5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGlsaXRpZXMuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMg
U3RyaW5nIGdldEV4ZWN1dGFibGVQYXRoKCkKK3sKKyAgICBDU3RyaW5nIGV4ZWN1dGFibGVQYXRo
ID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVQYXRoKCk7CisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5p
c051bGwoKSkKKyAgICAgICAgcmV0dXJuIGRpcmVjdG9yeU5hbWUoc3RyaW5nRnJvbUZpbGVTeXN0
ZW1SZXByZXNlbnRhdGlvbihleGVjdXRhYmxlUGF0aC5kYXRhKCkpKTsKKyAgICByZXR1cm4gU3Ry
aW5nKCk7Cit9CisKK3N0YXRpYyBTdHJpbmcgZmluZFdlYktpdFByb2Nlc3MoY29uc3QgY2hhciog
cHJvY2Vzc05hbWUpCit7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGV4ZWNEaXJlY3RvcnkgPSBn
X2dldGVudigiV0VCS0lUX0VYRUNfUEFUSCIpOworICAgIGlmIChleGVjRGlyZWN0b3J5KSB7Cisg
ICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJp
bmdGcm9tRmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWNEaXJlY3RvcnkpLCBwcm9jZXNzTmFt
ZSk7CisgICAgICAgIGlmIChmaWxlRXhpc3RzKHByb2Nlc3NQYXRoKSkKKyAgICAgICAgICAgIHJl
dHVybiBwcm9jZXNzUGF0aDsKKyAgICB9CisKKyAgICBzdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQ
YXRoID0gZ2V0RXhlY3V0YWJsZVBhdGgoKTsKKyAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVs
bCgpKSB7CisgICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChleGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0
cyhwcm9jZXNzUGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7CisgICAgfQor
CisgICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdHJpbmdGcm9tRmlsZVN5c3Rl
bVJlcHJlc2VudGF0aW9uKExJQkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Cit9CisKK1N0cmluZyBl
eGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9j
ZXNzKCJXUEVXZWJQcm9jZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2lu
UHJvY2VzcygpCit7CisgICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKCJXUEVQbHVnaW5Qcm9j
ZXNzIik7Cit9CisKK1N0cmluZyBleGVjdXRhYmxlUGF0aE9mTmV0d29ya1Byb2Nlc3MoKQorewor
ICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFTmV0d29ya1Byb2Nlc3MiKTsKK30KKwor
I2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNTKQorU3RyaW5nIGV4ZWN1dGFibGVQYXRoT2ZEYXRh
YmFzZVByb2Nlc3MoKQoreworICAgIHJldHVybiBmaW5kV2ViS2l0UHJvY2VzcygiV1BFRGF0YWJh
c2VQcm9jZXNzIik7Cit9CisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU1NzFlMWFhYzk3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCkBAIC0wLDAgKzEs
MjE1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJFdmVudEZhY3RvcnkuaCIKKworI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsYmFyLmg+CisjaW5jbHVkZSA8Y3N0ZGxpYj4KKyNpbmNsdWRl
IDx3cGUvaW5wdXQuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCitzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JF
dmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICB1bnNp
Z25lZCBtb2RpZmllcnMgPSAwOworICAgIHVuc2lnbmVkIGV2ZW50TW9kaWZpZXJzID0gZXZlbnQt
Pm1vZGlmaWVyczsKKworICAgIGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2Fy
ZF9tb2RpZmllcl9jb250cm9sKQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OkNvbnRy
b2xLZXk7CisgICAgaWYgKGV2ZW50TW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlm
aWVyX3NoaWZ0KQorICAgICAgICBtb2RpZmllcnMgfD0gV2ViRXZlbnQ6OlNoaWZ0S2V5OworICAg
IGlmIChldmVudE1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9hbHQpCisg
ICAgICAgIG1vZGlmaWVycyB8PSBXZWJFdmVudDo6QWx0S2V5OworICAgIGlmIChldmVudE1vZGlm
aWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9tZXRhKQorICAgICAgICBtb2RpZmll
cnMgfD0gV2ViRXZlbnQ6Ok1ldGFLZXk7CisKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRXZl
bnQ6Ok1vZGlmaWVycz4obW9kaWZpZXJzKTsKK30KKworc3RhdGljIFN0cmluZyBzaW5nbGVDaGFy
YWN0ZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBl
dmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBzaW5nbGVDaGFyYWN0ZXIgPSB3cGVfaW5wdXRfc2lu
Z2xlX2NoYXJhY3Rlcl9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5n
bGV0b24oKSwgZXZlbnQpOworICAgIGlmIChzaW5nbGVDaGFyYWN0ZXIpCisgICAgICAgIHJldHVy
biBTdHJpbmcoc2luZ2xlQ2hhcmFjdGVyKTsKKworICAgIGdsb25nIGxlbmd0aDsKKyAgICBHVW5p
cXVlUHRyPGd1bmljaGFyMj4gdWNoYXIxNihnX3VjczRfdG9fdXRmMTYoJmV2ZW50LT51bmljb2Rl
LCAxLCAwLCAmbGVuZ3RoLCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJl
dHVybiBTdHJpbmcodWNoYXIxNi5nZXQoKSk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitz
dGF0aWMgU3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50KiBldmVudCkKK3sKKyAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0g
d3BlX2lucHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9n
ZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKKyAgICBpZiAoaWRlbnRpZmllcikKKyAgICAgICAgcmV0
dXJuIFN0cmluZyhpZGVudGlmaWVyKTsKKworICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSsl
MDRYIiwgZXZlbnQtPnVuaWNvZGUpOworfQorCitXZWJLZXlib2FyZEV2ZW50IFdlYkV2ZW50RmFj
dG9yeTo6Y3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2
ZW50KiBldmVudCkKK3sKKyAgICBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5nID0gc2luZ2xl
Q2hhcmFjdGVyU3RyaW5nRm9yS2V5RXZlbnQoZXZlbnQpOworICAgIFN0cmluZyBpZGVudGlmaWVy
U3RyaW5nID0gaWRlbnRpZmllclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKKworICAgIHJldHVy
biBXZWJLZXlib2FyZEV2ZW50KGV2ZW50LT5wcmVzc2VkID8gV2ViRXZlbnQ6OktleURvd24gOiBX
ZWJFdmVudDo6S2V5VXAsCisgICAgICAgIHNpbmdsZUNoYXJhY3RlclN0cmluZywgc2luZ2xlQ2hh
cmFjdGVyU3RyaW5nLCBpZGVudGlmaWVyU3RyaW5nLAorICAgICAgICB3cGVfaW5wdXRfd2luZG93
c19rZXlfY29kZV9mb3Jfa2V5X2V2ZW50KHdwZV9pbnB1dF9rZXlfbWFwcGVyX2dldF9zaW5nbGV0
b24oKSwgZXZlbnQpLAorICAgICAgICBldmVudC0+a2V5Q29kZSwgMCwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwKKyAgICAgICAgbW9kaWZpZXJzRm9yRXZlbnQoZXZlbnQpLCBldmVudC0+dGltZSk7Cit9
CisKK1dlYk1vdXNlRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHN0
cnVjdCB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudCogZXZlbnQsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBXZWJFdmVudDo6Tm9UeXBlOworICAg
IHN3aXRjaCAoZXZlbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50
X3R5cGVfbW90aW9uOgorICAgICAgICB0eXBlID0gV2ViRXZlbnQ6Ok1vdXNlTW92ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX2J1dHRvbjoK
KyAgICAgICAgdHlwZSA9IGV2ZW50LT5zdGF0ZSA/IFdlYkV2ZW50OjpNb3VzZURvd24gOiBXZWJF
dmVudDo6TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRl
cl9ldmVudF90eXBlX251bGw6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0K
KworICAgIFdlYk1vdXNlRXZlbnQ6OkJ1dHRvbiBidXR0b24gPSBXZWJNb3VzZUV2ZW50OjpOb0J1
dHRvbjsKKyAgICBzd2l0Y2ggKGV2ZW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9p
bnRlcl9ldmVudF90eXBlX21vdGlvbjoKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50
X3R5cGVfYnV0dG9uOgorICAgICAgICBpZiAoZXZlbnQtPmJ1dHRvbiA9PSAxKQorICAgICAgICAg
ICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjsKKyAgICAgICAgZWxzZSBpZiAo
ZXZlbnQtPmJ1dHRvbiA9PSAyKQorICAgICAgICAgICAgYnV0dG9uID0gV2ViTW91c2VFdmVudDo6
UmlnaHRCdXR0b247CisgICAgICAgIGVsc2UgaWYgKGV2ZW50LT5idXR0b24gPT0gMykKKyAgICAg
ICAgICAgIGJ1dHRvbiA9IFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSB3cGVfaW5wdXRfcG9pbnRlcl9ldmVudF90eXBlX251bGw6CisgICAgICAg
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAgIHVuc2lnbmVkIGNsaWNrQ291bnQg
PSAodHlwZSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IDEgOiAwOworCisgICAgLy8gRklYTUU6
IFByb3BlciBidXR0b24gc3VwcG9ydC4gTW9kaWZpZXJzLiBkZWx0YVgvWS9aLiBDbGljayBjb3Vu
dC4KKyAgICBXZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOwor
ICAgIHBvc2l0aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdl
Yk1vdXNlRXZlbnQodHlwZSwgYnV0dG9uLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIDAs
IDAsIDAsIGNsaWNrQ291bnQsIHN0YXRpY19jYXN0PFdlYkV2ZW50OjpNb2RpZmllcnM+KDApLCBl
dmVudC0+dGltZSk7Cit9CisKK1dlYldoZWVsRXZlbnQgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVX
ZWJXaGVlbEV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogZXZlbnQsIGZsb2F0IGRl
dmljZVNjYWxlRmFjdG9yKQoreworICAgIC8vIEZJWE1FOiBXZSBzaG91bGRuJ3QgaGFyZC1jb2Rl
IHRoaXMuCisgICAgZW51bSBBeGlzIHsKKyAgICAgICAgVmVydGljYWwsCisgICAgICAgIEhvcml6
b250YWwsCisgICAgICAgIFNtb290aAorICAgIH07CisKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUg
d2hlZWxUaWNrczsKKyAgICBXZWJDb3JlOjpGbG9hdFNpemUgZGVsdGE7CisgICAgc3dpdGNoIChl
dmVudC0+YXhpcykgeworICAgIGNhc2UgVmVydGljYWw6CisgICAgICAgIHdoZWVsVGlja3MgPSBX
ZWJDb3JlOjpGbG9hdFNpemUoMCwgZXZlbnQtPnZhbHVlIC8gc3RkOjphYnMoZXZlbnQtPnZhbHVl
KSk7CisgICAgICAgIGRlbHRhID0gd2hlZWxUaWNrczsKKyAgICAgICAgZGVsdGEuc2NhbGUoV2Vi
Q29yZTo6U2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBIb3Jpem9udGFsOgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRT
aXplKGV2ZW50LT52YWx1ZSAvIHN0ZDo6YWJzKGV2ZW50LT52YWx1ZSksIDApOworICAgICAgICBk
ZWx0YSA9IHdoZWVsVGlja3M7CisgICAgICAgIGRlbHRhLnNjYWxlKFdlYkNvcmU6OlNjcm9sbGJh
cjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgU21vb3Ro
OgorICAgICAgICB3aGVlbFRpY2tzID0gV2ViQ29yZTo6RmxvYXRTaXplKDAsIGV2ZW50LT52YWx1
ZSAvIGRldmljZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgZGVsdGEgPSB3aGVlbFRpY2tzOworICAg
IGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH07CisKKyAgICBX
ZWJDb3JlOjpJbnRQb2ludCBwb3NpdGlvbihldmVudC0+eCwgZXZlbnQtPnkpOworICAgIHBvc2l0
aW9uLnNjYWxlKDEgLyBkZXZpY2VTY2FsZUZhY3Rvcik7CisgICAgcmV0dXJuIFdlYldoZWVsRXZl
bnQoV2ViRXZlbnQ6OldoZWVsLCBwb3NpdGlvbiwgcG9zaXRpb24sCisgICAgICAgIGRlbHRhLCB3
aGVlbFRpY2tzLCBXZWJXaGVlbEV2ZW50OjpTY3JvbGxCeVBpeGVsV2hlZWxFdmVudCwgc3RhdGlj
X2Nhc3Q8V2ViRXZlbnQ6Ok1vZGlmaWVycz4oMCksIGV2ZW50LT50aW1lKTsKK30KKworc3RhdGlj
IFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50OjpUb3VjaFBvaW50U3RhdGUgc3RhdGVGb3JU
b3VjaFBvaW50KGludCBtYWluRXZlbnRJZCwgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9l
dmVudF9yYXcqIHBvaW50KQoreworICAgIGlmIChwb2ludC0+aWQgIT0gbWFpbkV2ZW50SWQpCisg
ICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9u
YXJ5OworCisgICAgc3dpdGNoIChwb2ludC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3Rv
dWNoX2V2ZW50X3R5cGVfZG93bjoKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6V2ViUGxhdGZvcm1U
b3VjaFBvaW50OjpUb3VjaFByZXNzZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRf
dHlwZV9tb3Rpb246CisgICAgICAgIHJldHVybiBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2lu
dDo6VG91Y2hNb3ZlZDsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3VwOgor
ICAgICAgICByZXR1cm4gV2ViS2l0OjpXZWJQbGF0Zm9ybVRvdWNoUG9pbnQ6OlRvdWNoUmVsZWFz
ZWQ7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsOgorICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfTsKKworICAgIHJldHVy
biBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludDo6VG91Y2hTdGF0aW9uYXJ5OworfQorCitX
ZWJUb3VjaEV2ZW50IFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qg
d3BlX2lucHV0X3RvdWNoX2V2ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7
CisgICAgV2ViRXZlbnQ6OlR5cGUgdHlwZSA9IFdlYkV2ZW50OjpOb1R5cGU7CisgICAgc3dpdGNo
IChldmVudC0+dHlwZSkgeworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVfZG93
bjoKKyAgICAgICAgdHlwZSA9IFdlYkV2ZW50OjpUb3VjaFN0YXJ0OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgdHlw
ZSA9IFdlYkV2ZW50OjpUb3VjaE1vdmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lu
cHV0X3RvdWNoX2V2ZW50X3R5cGVfdXA6CisgICAgICAgIHR5cGUgPSBXZWJFdmVudDo6VG91Y2hF
bmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2ZW50X3R5cGVf
bnVsbDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgfQorCisgICAgVmVjdG9y
PFdlYktpdDo6V2ViUGxhdGZvcm1Ub3VjaFBvaW50PiB0b3VjaFBvaW50czsKKyAgICB0b3VjaFBv
aW50cy5yZXNlcnZlQ2FwYWNpdHkoZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aCk7CisKKyAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgZXZlbnQtPnRvdWNocG9pbnRzX2xlbmd0aDsgKytpKSB7
CisgICAgICAgIGF1dG8mIHBvaW50ID0gZXZlbnQtPnRvdWNocG9pbnRzW2ldOworICAgICAgICBp
ZiAocG9pbnQudHlwZSA9PSB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfdHlwZV9udWxsKQorICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgV2ViQ29yZTo6SW50UG9pbnQgcG9pbnRDb29yZGlu
YXRlcyhwb2ludC54LCBwb2ludC55KTsKKyAgICAgICAgcG9pbnRDb29yZGluYXRlcy5zY2FsZSgx
IC8gZGV2aWNlU2NhbGVGYWN0b3IpOworICAgICAgICB0b3VjaFBvaW50cy51bmNoZWNrZWRBcHBl
bmQoCisgICAgICAgICAgICBXZWJLaXQ6OldlYlBsYXRmb3JtVG91Y2hQb2ludChwb2ludC5pZCwg
c3RhdGVGb3JUb3VjaFBvaW50KGV2ZW50LT5pZCwgJnBvaW50KSwKKyAgICAgICAgICAgICAgICBw
b2ludENvb3JkaW5hdGVzLCBwb2ludENvb3JkaW5hdGVzKSk7CisgICAgfQorCisgICAgcmV0dXJu
IFdlYlRvdWNoRXZlbnQodHlwZSwgV1RGTW92ZSh0b3VjaFBvaW50cyksIFdlYkV2ZW50OjpNb2Rp
ZmllcnMoMCksIGV2ZW50LT50aW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTJhYTAzNDUwZDMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5oCkBAIC0wLDAgKzEsNDUg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJXZWJFdmVudC5oIgorCitzdHJ1Y3Qgd3BlX2lucHV0X2F4
aXNfZXZlbnQ7CitzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50Oworc3RydWN0IHdwZV9p
bnB1dF9wb2ludGVyX2V2ZW50Oworc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudDsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYkV2ZW50RmFjdG9yeSB7CitwdWJsaWM6CisgICAg
c3RhdGljIFdlYktleWJvYXJkRXZlbnQgY3JlYXRlV2ViS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3Bl
X2lucHV0X2tleWJvYXJkX2V2ZW50Kik7CisgICAgc3RhdGljIFdlYk1vdXNlRXZlbnQgY3JlYXRl
V2ViTW91c2VFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X3BvaW50ZXJfZXZlbnQqLCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3Rvcik7CisgICAgc3RhdGljIFdlYldoZWVsRXZlbnQgY3JlYXRlV2ViV2hlZWxF
dmVudChzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqLCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cik7CisgICAgc3RhdGljIFdlYlRvdWNoRXZlbnQgY3JlYXRlV2ViVG91Y2hFdmVudChzdHJ1Y3Qg
d3BlX2lucHV0X3RvdWNoX2V2ZW50KiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tB
UElDYXN0LmgKaW5kZXggNzhhMzgwNDE1OWUuLjdiZmEwMzdkYWY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCkBAIC01NTcsNCArNTU3LDggQEAgaW5saW5l
IFByb3h5aW5nUmVmUHRyPFdlYkdyYW1tYXJEZXRhaWw+IHRvQVBJKGNvbnN0IFdlYkNvcmU6Okdy
YW1tYXJEZXRhaWwmIGdyYW0KICNpbmNsdWRlICJXS0FQSUNhc3RHdGsuaCIKICNlbmRpZgogCisj
aWYgZGVmaW5lZChCVUlMRElOR19XUEVfXykKKyNpbmNsdWRlICJXS0FQSUNhc3RXUEUuaCIKKyNl
bmRpZgorCiAjZW5kaWYgLy8gV0tBUElDYXN0X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLQVBJQ2FzdFdQRS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4wZjhhMWU3MTcwMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tBUElDYXN0V1BFLmgKQEAgLTAsMCArMSw1OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVm
IFdLQVBJQ2FzdFdQRV9oCisjZGVmaW5lIFdLQVBJQ2FzdFdQRV9oCisKKyNpZm5kZWYgV0tBUElD
YXN0X2gKKyNlcnJvciAiUGxlYXNlICNpbmNsdWRlIFwiV0tBUElDYXN0LmhcIiBpbnN0ZWFkIG9m
IHRoaXMgZmlsZSBkaXJlY3RseS4iCisjZW5kaWYKKworI2luY2x1ZGUgIldLVmlldy5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorCituYW1lc3BhY2UgV0tXUEUgeworY2xh
c3MgVmlldzsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dLX0FERF9BUElfTUFQUElORyhX
S1ZpZXdSZWYsIFdLV1BFOjpWaWV3KQorCitpbmxpbmUgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6
RmxhZ3MgdG9WaWV3U3RhdGVGbGFncyhXS1ZpZXdTdGF0ZSB3a1ZpZXdTdGF0ZSkKK3sKKyAgICB1
bnNpZ25lZCB2aWV3U3RhdGVGbGFncyA9IDA7CisKKyAgICBpZiAod2tWaWV3U3RhdGUgJiBrV0tW
aWV3U3RhdGVJc0luV2luZG93KQorICAgICAgICB2aWV3U3RhdGVGbGFncyB8PSBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworICAgIGlmICh3a1ZpZXdTdGF0ZSAmIGtXS1ZpZXdT
dGF0ZUlzVmlzaWJsZSkKKyAgICAgICAgdmlld1N0YXRlRmxhZ3MgfD0gV2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6SXNWaXNpYmxlOworCisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWdzPih2aWV3U3RhdGVGbGFncyk7Cit9CisKK30KKworI2VuZGlmIC8v
IFdLQVBJQ2FzdFdQRV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0Mvd3BlL1dLVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mvd3BlL1dL
Vmlldy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNjYmIyMzcx
NWVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL3dw
ZS9XS1ZpZXcuY3BwCkBAIC0wLDAgKzEsNTkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQg
SWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldL
Vmlldy5oIgorCisjaW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJQ
YWdlQ2xpZW50SW1wbC5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgorI2luY2x1ZGUgIldQRVZp
ZXcuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tWaWV3UmVmIFdLVmlld0NyZWF0
ZShXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRpb24pCit7CisgICAgcmV0dXJuIHRv
QVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUobnVsbHB0ciwgKnRvSW1wbChjb25maWd1cmF0aW9uKSkp
OworfQorCitXS1ZpZXdSZWYgV0tWaWV3Q3JlYXRlV2l0aFZpZXdCYWNrZW5kKHN0cnVjdCB3cGVf
dmlld19iYWNrZW5kKiBiYWNrZW5kLCBXS1BhZ2VDb25maWd1cmF0aW9uUmVmIGNvbmZpZ3VyYXRp
b24pCit7CisgICAgcmV0dXJuIHRvQVBJKFdLV1BFOjpWaWV3OjpjcmVhdGUoYmFja2VuZCwgKnRv
SW1wbChjb25maWd1cmF0aW9uKSkpOworfQorCitXS1BhZ2VSZWYgV0tWaWV3R2V0UGFnZShXS1Zp
ZXdSZWYgdmlldykKK3sKKyAgICByZXR1cm4gdG9BUEkoJnRvSW1wbCh2aWV3KS0+cGFnZSgpKTsK
K30KKwordm9pZCBXS1ZpZXdTZXRWaWV3U3RhdGUoV0tWaWV3UmVmIHZpZXcsIFdLVmlld1N0YXRl
IHZpZXdTdGF0ZSkKK3sKKyAgICB0b0ltcGwodmlldyktPnNldFZpZXdTdGF0ZSh0b1ZpZXdTdGF0
ZUZsYWdzKHZpZXdTdGF0ZSkpOworfQorCit2b2lkIFdLVmlld1NldFZpZXdDbGllbnQoV0tWaWV3
UmVmIHZpZXcsIGNvbnN0IFdLVmlld0NsaWVudEJhc2UqIGNsaWVudCkKK3sKKyAgICB0b0ltcGwo
dmlldyktPmluaXRpYWxpemVDbGllbnQoY2xpZW50KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0Mvd3BlL1dLVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi41NTllYzJiNDViNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy93cGUvV0tWaWV3LmgKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdLVmlld19oCisj
ZGVmaW5lIFdLVmlld19oCisKKyNpbmNsdWRlIDxXZWJLaXQvV0tCYXNlLmg+CisjaW5jbHVkZSA8
V2ViS2l0L1dLR2VvbWV0cnkuaD4KKworI2lmZGVmIF9fY3BsdXNwbHVzCitleHRlcm4gIkMiIHsK
KyNlbmRpZgorCitzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZDsKKworV0tfRVhQT1JUIFdLVmlld1Jl
ZiBXS1ZpZXdDcmVhdGUoV0tQYWdlQ29uZmlndXJhdGlvblJlZik7CitXS19FWFBPUlQgV0tWaWV3
UmVmIFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChzdHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCos
IFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYpOworCitXS19FWFBPUlQgV0tQYWdlUmVmIFdLVmlld0dl
dFBhZ2UoV0tWaWV3UmVmKTsKKworZW51bSB7CisgICAga1dLVmlld1N0YXRlSXNJbldpbmRvdyA9
IDEgPDwgMCwKKyAgICBrV0tWaWV3U3RhdGVJc1Zpc2libGUgPSAxIDw8IDEsCit9OwordHlwZWRl
ZiB1aW50MzJfdCBXS1ZpZXdTdGF0ZTsKKworV0tfRVhQT1JUIHZvaWQgV0tWaWV3U2V0Vmlld1N0
YXRlKFdLVmlld1JlZiwgV0tWaWV3U3RhdGUpOworCit0eXBlZGVmIHZvaWQgKCpXS1ZpZXdGcmFt
ZURpc3BsYXllZCkoV0tWaWV3UmVmIHZpZXcsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOworCit0
eXBlZGVmIHN0cnVjdCBXS1ZpZXdDbGllbnRCYXNlIHsKKyAgICBpbnQgdmVyc2lvbjsKKyAgICBj
b25zdCB2b2lkKiBjbGllbnRJbmZvOworfSBXS1ZpZXdDbGllbnRCYXNlOworCit0eXBlZGVmIHN0
cnVjdCBXS1ZpZXdDbGllbnRWMCB7CisgICAgV0tWaWV3Q2xpZW50QmFzZSBiYXNlOworCisgICAg
Ly8gdmVyc2lvbiAwCisgICAgV0tWaWV3RnJhbWVEaXNwbGF5ZWQgZnJhbWVEaXNwbGF5ZWQ7Cit9
IFdLVmlld0NsaWVudFYwOworCitXS19FWFBPUlQgdm9pZCBXS1ZpZXdTZXRWaWV3Q2xpZW50KFdL
Vmlld1JlZiwgY29uc3QgV0tWaWV3Q2xpZW50QmFzZSopOworCisjaWZkZWYgX19jcGx1c3BsdXMK
K30KKyNlbmRpZgorCisjZW5kaWYgLy8gV0tWaWV3X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYTQwNGVjNWQ5YjUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9Db21wb3NpdGlu
Z01hbmFnZXJQcm94eS5jcHAKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCIKKworI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIK
KyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAi
V1BFVmlldy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCisjaW5jbHVkZSA8d3BlL3ZpZXctYmFja2VuZC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkNvbXBvc2l0aW5nTWFuYWdlclBy
b3h5KFdLV1BFOjpWaWV3JiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcpCit7Cit9CisKK0NvbXBv
c2l0aW5nTWFuYWdlclByb3h5Ojp+Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkoKSA9IGRlZmF1bHQ7
CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OmluaXRpYWxpemUoKQoreworICAgIG1f
dmlldy5wYWdlKCkucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBt
X3ZpZXcucGFnZSgpLnBhZ2VJRCgpLCAqdGhpcyk7Cit9CisKK3ZvaWQgQ29tcG9zaXRpbmdNYW5h
Z2VyUHJveHk6OmVzdGFibGlzaENvbm5lY3Rpb24oSVBDOjpBdHRhY2htZW50JiBjb25uZWN0aW9u
SGFuZGxlKQoreworICAgIGNvbm5lY3Rpb25IYW5kbGUgPSBJUEM6OkF0dGFjaG1lbnQod3BlX3Zp
ZXdfYmFja2VuZF9nZXRfcmVuZGVyZXJfaG9zdF9mZChtX3ZpZXcuYmFja2VuZCgpKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmNhMzVjMDdjNGQ1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHku
aApAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgi
CisjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CisKK25hbWVzcGFjZSBJUEMgeworY2xhc3Mg
QXR0YWNobWVudDsKK30KKworbmFtZXNwYWNlIFdLV1BFIHsKK2NsYXNzIFZpZXc7Cit9CisKK25h
bWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBDb21wb3NpdGluZ01hbmFnZXJQcm94eSBmaW5hbCA6
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUo
Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHkpOworcHVibGljOgorICAgIENvbXBvc2l0aW5nTWFuYWdl
clByb3h5KFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+Q29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkoKTsKKworICAgIHZvaWQgaW5pdGlhbGl6ZSgpOworCitwcml2YXRlOgorICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rp
b24mLCBJUEM6OkRlY29kZXImKSBvdmVycmlkZSB7IH0KKyAgICB2b2lkIGRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8
SVBDOjpFbmNvZGVyPiYgcmVwbHlFbmNvZGVyKSBvdmVycmlkZTsKKworICAgIHZvaWQgZXN0YWJs
aXNoQ29ubmVjdGlvbihJUEM6OkF0dGFjaG1lbnQmKTsKKworICAgIFdLV1BFOjpWaWV3JiBtX3Zp
ZXc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0NvbXBvc2l0aW5nTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjE5
YTAwNTU3Nzc2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS93cGUvQ29tcG9zaXRpbmdNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTAsMCArMSwyNSBA
QAorIyBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworbWVzc2FnZXMgLT4gQ29tcG9zaXRpbmdNYW5hZ2VyUHJv
eHkgeworICAgIEVzdGFibGlzaENvbm5lY3Rpb24oKSAtPiAoSVBDOjpBdHRhY2htZW50IGNvbm5l
Y3Rpb25IYW5kbGUpCit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9EcmF3aW5nQXJlYVByb3h5V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi4zNzNjMGY2N2UyZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvd3BlL0RyYXdpbmdBcmVhUHJveHlXUEUuY3BwCkBAIC0wLDAgKzEs
OTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUuaCIKKwor
I2luY2x1ZGUgIkRyYXdpbmdBcmVhTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitEcmF3aW5nQXJlYVByb3h5V1BF
OjpEcmF3aW5nQXJlYVByb3h5V1BFKFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IERyYXdpbmdB
cmVhUHJveHkoRHJhd2luZ0FyZWFUeXBlV1BFLCBwYWdlKQoreworfQorCitEcmF3aW5nQXJlYVBy
b3h5V1BFOjp+RHJhd2luZ0FyZWFQcm94eVdQRSgpCit7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQ
cm94eVdQRTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6c2l6ZURpZENoYW5nZSgpCit7
CisgICAgaWYgKG1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkKKyAgICAgICAgbV93ZWJQYWdlUHJv
eHkucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpVcGRhdGVCYWNraW5nU3Rv
cmVTdGF0ZSgwLCBmYWxzZSwgbV93ZWJQYWdlUHJveHkuZGV2aWNlU2NhbGVGYWN0b3IoKSwgbV9z
aXplLCBtX3Njcm9sbE9mZnNldCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKK30KKwordm9p
ZCBEcmF3aW5nQXJlYVByb3h5V1BFOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKHN0ZDo6
ZnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4gY2FsbGJhY2tGdW5jdGlvbikKK3sK
KyAgICBpZiAoIW1fd2ViUGFnZVByb3h5LmlzVmFsaWQoKSkgeworICAgICAgICBjYWxsYmFja0Z1
bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKAorICAgICAg
ICBbY2FsbGJhY2tGdW5jdGlvbl0geworICAgICAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxs
YmFja0Jhc2U6OkVycm9yOjpOb25lKTsKKyAgICAgICAgfSk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFQcm94eVdQRTo6dXBkYXRlKHVpbnQ2NF90IGJhY2tpbmdTdG9yZVN0YXRlSUQsIGNvbnN0IFVw
ZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFQcm94eVdQRTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QgYmFja2luZ1N0
b3JlU3RhdGVJRCwgY29uc3QgVXBkYXRlSW5mbyYsIGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6
ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0
ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRyZWVDb250ZXh0KQoreworICAgIEFT
U0VSVCghYmFja2luZ1N0b3JlU3RhdGVJRCk7CisKKyAgICBtX2xheWVyVHJlZUNvbnRleHQgPSBs
YXllclRyZWVDb250ZXh0OworICAgIG1fd2ViUGFnZVByb3h5LmVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUobGF5ZXJUcmVlQ29udGV4dCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94
eVdQRTo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKHVpbnQ2NF90IGJhY2tpbmdTdG9y
ZVN0YXRlSUQsIGNvbnN0IFVwZGF0ZUluZm8mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eVdQRTo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJl
YVByb3h5V1BFLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9EcmF3aW5nQXJl
YVByb3h5V1BFLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjFmNDI3
YjRjYTI5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93
cGUvRHJhd2luZ0FyZWFQcm94eVdQRS5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNs
dWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0Lmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVByb3h5V1BFIGZpbmFs
IDogcHVibGljIERyYXdpbmdBcmVhUHJveHkgeworcHVibGljOgorICAgIGV4cGxpY2l0IERyYXdp
bmdBcmVhUHJveHlXUEUoV2ViUGFnZVByb3h5Jik7CisgICAgdmlydHVhbCB+RHJhd2luZ0FyZWFQ
cm94eVdQRSgpOworCitwcml2YXRlOgorICAgIC8vIERyYXdpbmdBcmVhUHJveHkKKyAgICB2b2lk
IGRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzaXplRGlk
Q2hhbmdlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5n
KHN0ZDo6ZnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4pIG92ZXJyaWRlOworCisg
ICAgLy8gSVBDIG1lc3NhZ2UgaGFuZGxlcnMKKyAgICB2b2lkIHVwZGF0ZSh1aW50NjRfdCBiYWNr
aW5nU3RvcmVTdGF0ZUlELCBjb25zdCBVcGRhdGVJbmZvJikgb3ZlcnJpZGU7CisgICAgdm9pZCBk
aWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZSh1aW50NjRfdCBiYWNraW5nU3RvcmVTdGF0ZUlELCBj
b25zdCBVcGRhdGVJbmZvJiwgY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAg
IHZvaWQgZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSh1aW50NjRfdCBiYWNraW5nU3Rv
cmVTdGF0ZUlELCBjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7CisgICAgdm9pZCBl
eGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJ
RCwgY29uc3QgVXBkYXRlSW5mbyYpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUodWludDY0X3QgYmFja2luZ1N0b3JlU3RhdGVJRCwgY29uc3QgTGF5
ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworCisgICAgLy8gVGhlIGN1cnJlbnQgbGF5ZXIgdHJl
ZSBjb250ZXh0LgorICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0OworfTsK
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvUGFnZUNsaWVu
dEltcGwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kMTY1MzA5
NWZiNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3Bl
L1BhZ2VDbGllbnRJbXBsLmNwcApAQCAtMCwwICsxLDMyMSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKworI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHlXUEUu
aCIKKyNpbmNsdWRlICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2Vi
V2hlZWxFdmVudC5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVDb250cm9sbGVyLmgiCisjaW5j
bHVkZSAiV1BFVmlldy5oIgorI2luY2x1ZGUgIldlYkNvbnRleHRNZW51UHJveHkuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL0FjdGl2aXR5U3RhdGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxl
bWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNs
aWVudEltcGwoV0tXUEU6OlZpZXcmIHZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1f
c2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxTY3JvbGxHZXN0dXJlQ29u
dHJvbGxlcj4oKSkKK3sKK30KKworUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpID0g
ZGVmYXVsdDsKKworc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKK3sKKyAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxEcmF3aW5nQXJlYVByb3h5V1BFPihtX3ZpZXcucGFnZSgpKTsKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpSZWdpb24mKQor
eworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkZsb2F0UG9pbnQmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpCit7Cit9CisKK1dl
YkNvcmU6OkZsb2F0UG9pbnQgUGFnZUNsaWVudEltcGw6OnZpZXdTY3JvbGxQb3NpdGlvbigpCit7
CisgICAgcmV0dXJuIHsgfTsKK30KKworV2ViQ29yZTo6SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6
dmlld1NpemUoKQoreworICAgIHJldHVybiBtX3ZpZXcuc2l6ZSgpOworfQorCitib29sIFBhZ2VD
bGllbnRJbXBsOjppc1ZpZXdXaW5kb3dBY3RpdmUoKQoreworICAgIHJldHVybiBtX3ZpZXcudmll
d1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpXaW5kb3dJc0FjdGl2ZTsKK30KKwor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCit7CisgICAgcmV0dXJuIG1fdmll
dy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKK30KKwor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3VmlzaWJsZSgpCit7CisgICAgcmV0dXJuIG1fdmll
dy52aWV3U3RhdGUoKSAmIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzVmlzaWJsZTsKK30KKwor
Ym9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3SW5XaW5kb3coKQoreworICAgIHJldHVybiBtX3Zp
ZXcudmlld1N0YXRlKCkgJiBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93OworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCit7Cit9CisKK3ZvaWQgUGFn
ZUNsaWVudEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnBhZ2VDbG9zZWQoKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJl
bmNlc0RpZENoYW5nZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFu
Z2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkKK3sK
K30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2Fk
UHJveHkqKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6
ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zlcyhib29sKQoreworfQorCit2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29y
ZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJikKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVn
aXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdl
UHJveHk6OlVuZG9PclJlZG8pCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxs
RWRpdENvbW1hbmRzKCkKK3sKK30KKworYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8o
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVk
bykKK3sKK30KKworV2ViQ29yZTo6RmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9E
ZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlY3QpCit7CisgICAgcmV0dXJu
IHJlY3Q7Cit9CisKK1dlYkNvcmU6OkZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRv
VXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVjdCkKK3sKKyAgICByZXR1cm4g
cmVjdDsKK30KKworV2ViQ29yZTo6SW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9v
dFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50KQoreworICAgIHJldHVybiBwb2lu
dDsKK30KKworV2ViQ29yZTo6SW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVl
bihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQoreworICAgIHJldHVybiByZWN0OworfQor
Cit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQmLCBib29sKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0
aFRvdWNoRXZlbnQoY29uc3QgTmF0aXZlV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCB3
YXNFdmVudEhhbmRsZWQpCit7CisgICAgaWYgKHdhc0V2ZW50SGFuZGxlZCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgY29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNo
UG9pbnQgPSB0b3VjaEV2ZW50Lm5hdGl2ZUZhbGxiYWNrVG91Y2hQb2ludCgpOworICAgIGlmICh0
b3VjaFBvaW50LT50eXBlID09IHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX251bGwpCisgICAg
ICAgIHJldHVybjsKKworICAgIGF1dG8mIHBhZ2UgPSBtX3ZpZXcucGFnZSgpOworCisgICAgaWYg
KG1fc2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZUV2ZW50KHRvdWNoUG9pbnQpKSB7Cisg
ICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfYXhpc19ldmVudCogYXhpc0V2ZW50ID0gbV9zY3JvbGxH
ZXN0dXJlQ29udHJvbGxlci0+YXhpc0V2ZW50KCk7CisgICAgICAgIGlmIChheGlzRXZlbnQtPnR5
cGUgIT0gd3BlX2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsKQorICAgICAgICAgICAgcGFnZS5o
YW5kbGVXaGVlbEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViV2hlZWxFdmVudChheGlzRXZlbnQsIG1f
dmlldy5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50IHBvaW50ZXJFdmVudCB7Cisg
ICAgICAgIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbCwgdG91Y2hQb2ludC0+dGlt
ZSwKKyAgICAgICAgdG91Y2hQb2ludC0+eCwgdG91Y2hQb2ludC0+eSwKKyAgICAgICAgMSwgMAor
ICAgIH07CisKKyAgICBzd2l0Y2ggKHRvdWNoUG9pbnQtPnR5cGUpIHsKKyAgICBjYXNlIHdwZV9p
bnB1dF90b3VjaF9ldmVudF90eXBlX2Rvd246CisgICAgICAgIHBvaW50ZXJFdmVudC50eXBlID0g
d3BlX2lucHV0X3BvaW50ZXJfZXZlbnRfdHlwZV9idXR0b247CisgICAgICAgIHBvaW50ZXJFdmVu
dC5zdGF0ZSA9IDE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ugd3BlX2lucHV0X3RvdWNoX2V2
ZW50X3R5cGVfbW90aW9uOgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9w
b2ludGVyX2V2ZW50X3R5cGVfbW90aW9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX3Vw
OgorICAgICAgICBwb2ludGVyRXZlbnQudHlwZSA9IHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5
cGVfYnV0dG9uOworICAgICAgICBwb2ludGVyRXZlbnQuc3RhdGUgPSAwOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIHdwZV9pbnB1dF9wb2ludGVyX2V2ZW50X3R5cGVfbnVsbDoKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdl
LmhhbmRsZU1vdXNlRXZlbnQoTmF0aXZlV2ViTW91c2VFdmVudCgmcG9pbnRlckV2ZW50LCBwYWdl
LmRldmljZVNjYWxlRmFjdG9yKCkpKTsKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYpCit7
Cit9CisKK1JlZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBv
cHVwTWVudVByb3h5KFdlYlBhZ2VQcm94eSYpCit7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
KyNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKK3N0ZDo6dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVu
dVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQYWdlUHJv
eHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNlckRhdGEmKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlmCisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpCit7
Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmKQoreworfQorCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25z
dCBTdHJpbmcmLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJk
TGlzdEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpuYXZpZ2F0aW9uR2VzdHVy
ZURpZEVuZChib29sLCBXZWJCYWNrRm9yd2FyZExpc3RJdGVtJikKK3sKK30KKwordm9pZCBQYWdl
Q2xpZW50SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoKQoreworfQorCit2b2lkIFBhZ2VD
bGllbnRJbXBsOjp3aWxsUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KFdlYkJhY2tGb3J3YXJkTGlz
dEl0ZW0mKQoreworfQorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZW1vdmVOYXZpZ2F0aW9u
R2VzdHVyZVNuYXBzaG90KCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpCit7Cit9CisKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKK3sKK30KKwordm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZShTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uVHlwZSkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdl
QmFja2dyb3VuZENvbG9yKCkKK3sKK30KKwordm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVmVmlldygp
Cit7Cit9CisKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCit7Cit9CisKKyNpZiBF
TkFCTEUoVklERU8pCitib29sIFBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JJbnN0YWxs
TWlzc2luZ01lZGlhUGx1Z2luc1Blcm1pc3Npb25SZXF1ZXN0KEluc3RhbGxNaXNzaW5nTWVkaWFQ
bHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKyNlbmRp
ZgorCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZXN0b3JlU2Nyb2xsUG9zaXRpb24oKQorewor
fQorCitXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIFBhZ2VDbGllbnRJbXBs
Ojp1c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6
VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbjo6TFRSOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1BhZ2VD
bGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9QYWdlQ2xpZW50
SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5jM2NmZDc4ZGZi
OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1Bh
Z2VDbGllbnRJbXBsLmgKQEAgLTAsMCArMSwxMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJQYWdl
Q2xpZW50LmgiCisKK25hbWVzcGFjZSBXS1dQRSB7CitjbGFzcyBWaWV3OworfQorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXI7CisKK2NsYXNzIFBh
Z2VDbGllbnRJbXBsIGZpbmFsIDogcHVibGljIFBhZ2VDbGllbnQgeworcHVibGljOgorICAgIFBh
Z2VDbGllbnRJbXBsKFdLV1BFOjpWaWV3Jik7CisgICAgdmlydHVhbCB+UGFnZUNsaWVudEltcGwo
KTsKKworcHJpdmF0ZToKKyAgICAvLyBQYWdlQ2xpZW50CisgICAgc3RkOjp1bmlxdWVfcHRyPERy
YXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgV2ViQ29yZTo6UmVnaW9uJikgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXF1ZXN0U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIGJvb2wpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgdmlld1Njcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisgICAgV2ViQ29yZTo6SW50U2l6
ZSB2aWV3U2l6ZSgpIG92ZXJyaWRlOworICAgIGJvb2wgaXNWaWV3V2luZG93QWN0aXZlKCkgb3Zl
cnJpZGU7CisgICAgYm9vbCBpc1ZpZXdGb2N1c2VkKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1Zp
ZXdWaXNpYmxlKCkgb3ZlcnJpZGU7CisgICAgYm9vbCBpc1ZpZXdJbldpbmRvdygpIG92ZXJyaWRl
OworCisgICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVs
YXVuY2hQcm9jZXNzKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBwYWdlQ2xvc2VkKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpIG92ZXJyaWRlOworICAgIHZvaWQgdG9v
bFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7CisKKyAg
ICB2b2lkIGRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiwgYm9vbCkgb3Zl
cnJpZGU7CisgICAgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopIG92
ZXJyaWRlOworCisgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJikgb3ZlcnJpZGU7CisKKyAgICB2b2lkIHNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpD
dXJzb3ImKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldEN1cnNvckhpZGRlblVudGlsTW91c2VNb3Zl
cyhib29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhj
b25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMmKSBvdmVycmlkZTsKKworICAgIHZvaWQg
cmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQ
YWdlUHJveHk6OlVuZG9PclJlZG8pIG92ZXJyaWRlOworICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29t
bWFuZHMoKSBvdmVycmlkZTsKKyAgICBib29sIGNhblVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5k
b09yUmVkbykgb3ZlcnJpZGU7CisgICAgdm9pZCBleGVjdXRlVW5kb1JlZG8oV2ViUGFnZVByb3h5
OjpVbmRvT3JSZWRvKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBjb252ZXJ0
VG9EZXZpY2VTcGFjZShjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmKSBvdmVycmlkZTsKKyAgICBX
ZWJDb3JlOjpGbG9hdFJlY3QgY29udmVydFRvVXNlclNwYWNlKGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpIG92ZXJyaWRlOworICAgIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXco
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBvdmVycmlkZTsKKyAgICBXZWJDb3JlOjpJbnRSZWN0
IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworCisg
ICAgdm9pZCBkb25lV2l0aEtleUV2ZW50KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmLCBi
b29sKSBvdmVycmlkZTsKKyAgICB2b2lkIGRvbmVXaXRoVG91Y2hFdmVudChjb25zdCBOYXRpdmVX
ZWJUb3VjaEV2ZW50JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdm9pZCB3aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50Jikgb3ZlcnJpZGU7CisK
KyAgICBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IGNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBh
Z2VQcm94eSYpIG92ZXJyaWRlOworI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQorICAgIHN0ZDo6
dW5pcXVlX3B0cjxXZWJDb250ZXh0TWVudVByb3h5PiBjcmVhdGVDb250ZXh0TWVudVByb3h5KFdl
YlBhZ2VQcm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0
YSYpIG92ZXJyaWRlOworI2VuZGlmCisKKyAgICB2b2lkIGVudGVyQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4dCYpIG92ZXJyaWRlOworICAgIHZvaWQgZXhp
dEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkgb3ZlcnJpZGU7CisgICAgdm9pZCB1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJp
ZGU7CisKKyAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9tQ29udGVudFByb3Zp
ZGVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYpIG92ZXJyaWRlOwor
CisgICAgdm9pZCBuYXZpZ2F0aW9uR2VzdHVyZURpZEJlZ2luKCkgb3ZlcnJpZGU7CisgICAgdm9p
ZCBuYXZpZ2F0aW9uR2VzdHVyZVdpbGxFbmQoYm9vbCwgV2ViQmFja0ZvcndhcmRMaXN0SXRlbSYp
IG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVEaWRFbmQoYm9vbCwgV2ViQmFj
a0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgbmF2aWdhdGlvbkdlc3R1cmVE
aWRFbmQoKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxSZWNvcmROYXZpZ2F0aW9uU25hcHNob3Qo
V2ViQmFja0ZvcndhcmRMaXN0SXRlbSYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlkUmVtb3ZlTmF2
aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpIG92ZXJyaWRlOworCisgICAgdm9pZCBkaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRp
ZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRTYW1lRG9jdW1lbnROYXZpZ2F0
aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKSBvdmVycmlkZTsKKwor
ICAgIHZvaWQgZGlkQ2hhbmdlQmFja2dyb3VuZENvbG9yKCkgb3ZlcnJpZGU7CisKKyAgICB2b2lk
IHJlZlZpZXcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGRlcmVmVmlldygpIG92ZXJyaWRlOworCisj
aWYgRU5BQkxFKFZJREVPKQorICAgIGJvb2wgZGVjaWRlUG9saWN5Rm9ySW5zdGFsbE1pc3NpbmdN
ZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdChJbnN0YWxsTWlzc2luZ01lZGlhUGx1Z2luc1Bl
cm1pc3Npb25SZXF1ZXN0Jikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIHZvaWQgZGlkUmVzdG9y
ZVNjcm9sbFBvc2l0aW9uKCkgb3ZlcnJpZGU7CisKKyAgICBXZWJDb3JlOjpVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uIHVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oKSBvdmVycmlkZTsK
KworICAgIHZvaWQgZGlkQ2hhbmdlQ2xpcFRvU2FmZUFyZWEoYm9vbCkgb3ZlcnJpZGUgeyB9CisK
KyAgICBXS1dQRTo6VmlldyYgbV92aWV3OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbEdl
c3R1cmVDb250cm9sbGVyPiBtX3Njcm9sbEdlc3R1cmVDb250cm9sbGVyOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmRhMTJjOGViMzUxCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuY3Bw
CkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlNjcm9sbEdlc3R1cmVD
b250cm9sbGVyLmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworYm9vbCBTY3JvbGxHZXN0dXJlQ29udHJvbGxlcjo6aGFuZGxlRXZlbnQo
Y29uc3Qgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVudF9yYXcqIHRvdWNoUG9pbnQpCit7Cisg
ICAgc3dpdGNoICh0b3VjaFBvaW50LT50eXBlKSB7CisgICAgY2FzZSB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfdHlwZV9kb3duOgorICAgICAgICBtX3N0YXJ0LnRpbWUgPSB0b3VjaFBvaW50LT50aW1l
OworICAgICAgICBtX3N0YXJ0LnggPSB0b3VjaFBvaW50LT54OworICAgICAgICBtX3N0YXJ0Lnkg
PSB0b3VjaFBvaW50LT55OworICAgICAgICBtX29mZnNldC54ID0gdG91Y2hQb2ludC0+eDsKKyAg
ICAgICAgbV9vZmZzZXQueSA9IHRvdWNoUG9pbnQtPnk7CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBlX21vdGlvbjoKKyAgICAgICAgaWYg
KCFtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWCA9IHRvdWNoUG9pbnQt
PnggLSBtX3N0YXJ0Lng7CisgICAgICAgICAgICBpbnQzMl90IGRlbHRhWSA9IHRvdWNoUG9pbnQt
PnkgLSBtX3N0YXJ0Lnk7CisgICAgICAgICAgICB1aW50MzJfdCBkZWx0YVRpbWUgPSB0b3VjaFBv
aW50LT50aW1lIC0gbV9zdGFydC50aW1lOworCisgICAgICAgICAgICBpbnQgcGl4ZWxzUGVyTGlu
ZVN0ZXAgPSBXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAg
ICAgICBtX2hhbmRsaW5nID0gc3RkOjphYnMoZGVsdGFYKSA+PSBwaXhlbHNQZXJMaW5lU3RlcAor
ICAgICAgICAgICAgICAgIHx8IHN0ZDo6YWJzKGRlbHRhWSkgPj0gcGl4ZWxzUGVyTGluZVN0ZXAK
KyAgICAgICAgICAgICAgICB8fCBkZWx0YVRpbWUgPj0gMjAwOworICAgICAgICB9CisgICAgICAg
IGlmIChtX2hhbmRsaW5nKSB7CisgICAgICAgICAgICBtX2F4aXNFdmVudCA9IHsKKyAgICAgICAg
ICAgICAgICB3cGVfaW5wdXRfYXhpc19ldmVudF90eXBlX21vdGlvbiwKKyAgICAgICAgICAgICAg
ICB0b3VjaFBvaW50LT50aW1lLCBtX3N0YXJ0LngsIG1fc3RhcnQueSwKKyAgICAgICAgICAgICAg
ICAyLCAodG91Y2hQb2ludC0+eSAtIG1fb2Zmc2V0LnkpCisgICAgICAgICAgICB9OworICAgICAg
ICAgICAgbV9vZmZzZXQueCA9IHRvdWNoUG9pbnQtPng7CisgICAgICAgICAgICBtX29mZnNldC55
ID0gdG91Y2hQb2ludC0+eTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjYXNlIHdwZV9pbnB1dF90b3VjaF9ldmVudF90eXBl
X3VwOgorICAgICAgICBpZiAobV9oYW5kbGluZykgeworICAgICAgICAgICAgbV9oYW5kbGluZyA9
IGZhbHNlOworICAgICAgICAgICAgbV9heGlzRXZlbnQgPSB7CisgICAgICAgICAgICAgICAgd3Bl
X2lucHV0X2F4aXNfZXZlbnRfdHlwZV9udWxsLAorICAgICAgICAgICAgICAgIDAsIDAsIDAsIDAs
IDAKKyAgICAgICAgICAgIH07CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0dXJlQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDdkMTcyNGFhZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9TY3JvbGxHZXN0
dXJlQ29udHJvbGxlci5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3cGUv
aW5wdXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBTY3JvbGxHZXN0dXJlQ29u
dHJvbGxlciB7CitwdWJsaWM6CisgICAgU2Nyb2xsR2VzdHVyZUNvbnRyb2xsZXIoKSA9IGRlZmF1
bHQ7CisKKyAgICBzdHJ1Y3Qgd3BlX2lucHV0X2F4aXNfZXZlbnQqIGF4aXNFdmVudCgpIHsgcmV0
dXJuICZtX2F4aXNFdmVudDsgfQorCisgICAgYm9vbCBoYW5kbGVFdmVudChjb25zdCBzdHJ1Y3Qg
d3BlX2lucHV0X3RvdWNoX2V2ZW50X3JhdyopOworCitwcml2YXRlOgorICAgIHN0cnVjdCB7Cisg
ICAgICAgIHVpbnQzMl90IHRpbWUgeyAwIH07CisgICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAg
ICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0gbV9zdGFydDsKKworICAgIHN0cnVjdCB7Cisg
ICAgICAgIGludDMyX3QgeCB7IDAgfTsKKyAgICAgICAgaW50MzJfdCB5IHsgMCB9OworICAgIH0g
bV9vZmZzZXQ7CisKKyAgICBib29sIG1faGFuZGxpbmcgeyBmYWxzZSB9OworICAgIHN0cnVjdCB3
cGVfaW5wdXRfYXhpc19ldmVudCBtX2F4aXNFdmVudDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmll
dy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2Q3YjYyM2E1NTUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApA
QCAtMCwwICsxLDE1MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV1BFVmlldy5oIgorCisj
aW5jbHVkZSAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiTmF0aXZlV2ViTW91c2VFdmVudC5oIgorI2luY2x1ZGUg
Ik5hdGl2ZVdlYlRvdWNoRXZlbnQuaCIKKyNpbmNsdWRlICJOYXRpdmVXZWJXaGVlbEV2ZW50Lmgi
CisjaW5jbHVkZSAiV2ViUGFnZUdyb3VwLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
KyNpbmNsdWRlIDx3cGUvdmlldy1iYWNrZW5kLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CisKK25hbWVzcGFjZSBXS1dQRSB7CisKK1ZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tl
bmQqIGJhY2tlbmQsIGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDb25maWd1cmF0
aW9uKQorICAgIDogbV9wYWdlQ2xpZW50KHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+
KCp0aGlzKSkKKyAgICAsIG1fc2l6ZSB7IDgwMCwgNjAwIH0KKyAgICAsIG1fdmlld1N0YXRlRmxh
Z3MoV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpBY3Rp
dml0eVN0YXRlOjpJc0ZvY3VzZWQgfCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc1Zpc2libGUg
fCBXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpJc0luV2luZG93KQorICAgICwgbV9jb21wb3NpdGlu
Z01hbmFnZXJQcm94eSgqdGhpcykKK3sKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBiYXNlQ29u
ZmlndXJhdGlvbi5jb3B5KCk7CisgICAgYXV0byogcHJlZmVyZW5jZXMgPSBjb25maWd1cmF0aW9u
LT5wcmVmZXJlbmNlcygpOworICAgIGlmICghcHJlZmVyZW5jZXMgJiYgY29uZmlndXJhdGlvbi0+
cGFnZUdyb3VwKCkpIHsKKyAgICAgICAgcHJlZmVyZW5jZXMgPSAmY29uZmlndXJhdGlvbi0+cGFn
ZUdyb3VwKCktPnByZWZlcmVuY2VzKCk7CisgICAgICAgIGNvbmZpZ3VyYXRpb24tPnNldFByZWZl
cmVuY2VzKHByZWZlcmVuY2VzKTsKKyAgICB9CisgICAgaWYgKHByZWZlcmVuY2VzKSB7CisgICAg
ICAgIHByZWZlcmVuY2VzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCh0cnVlKTsK
KyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAg
ICAgICBwcmVmZXJlbmNlcy0+c2V0QWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQodHJ1ZSk7Cisg
ICAgICAgIHByZWZlcmVuY2VzLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHByZWZl
cmVuY2VzLT5zZXRXZWJTZWN1cml0eUVuYWJsZWQoZmFsc2UpOworICAgICAgICBwcmVmZXJlbmNl
cy0+c2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCh0cnVlKTsKKyAgICB9CisKKyAgICBhdXRvKiBw
b29sID0gY29uZmlndXJhdGlvbi0+cHJvY2Vzc1Bvb2woKTsKKyAgICBtX3BhZ2VQcm94eSA9IHBv
b2wtPmNyZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RGTW92ZShjb25maWd1cmF0aW9uKSk7
CisKKyAgICBtX2JhY2tlbmQgPSBiYWNrZW5kOworICAgIGlmICghbV9iYWNrZW5kKQorICAgICAg
ICBtX2JhY2tlbmQgPSB3cGVfdmlld19iYWNrZW5kX2NyZWF0ZSgpOworICAgIG1fY29tcG9zaXRp
bmdNYW5hZ2VyUHJveHkuaW5pdGlhbGl6ZSgpOworCisgICAgc3RhdGljIHN0cnVjdCB3cGVfdmll
d19iYWNrZW5kX2NsaWVudCBzX2JhY2tlbmRDbGllbnQgPSB7CisgICAgICAgIC8vIHNldF9zaXpl
CisgICAgICAgIFtdKHZvaWQqIGRhdGEsIHVpbnQzMl90IHdpZHRoLCB1aW50MzJfdCBoZWlnaHQp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxW
aWV3Kj4oZGF0YSk7CisgICAgICAgICAgICB2aWV3LnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZSh3
aWR0aCwgaGVpZ2h0KSk7CisgICAgICAgIH0sCisgICAgICAgIC8vIGZyYW1lX2Rpc3BsYXllZAor
ICAgICAgICBbXSh2b2lkKiBkYXRhKQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiB2aWV3
ID0gKnJlaW50ZXJwcmV0X2Nhc3Q8Vmlldyo+KGRhdGEpOworICAgICAgICAgICAgdmlldy5mcmFt
ZURpc3BsYXllZCgpOworICAgICAgICB9CisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3Nl
dF9iYWNrZW5kX2NsaWVudChtX2JhY2tlbmQsICZzX2JhY2tlbmRDbGllbnQsIHRoaXMpOworCisg
ICAgc3RhdGljIHN0cnVjdCB3cGVfdmlld19iYWNrZW5kX2lucHV0X2NsaWVudCBzX2lucHV0Q2xp
ZW50ID0geworICAgICAgICAvLyBoYW5kbGVfa2V5Ym9hcmRfZXZlbnQKKyAgICAgICAgW10odm9p
ZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGF1dG8mIHZpZXcgPSAqcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0
YSk7CisgICAgICAgICAgICB2aWV3LnBhZ2UoKS5oYW5kbGVLZXlib2FyZEV2ZW50KFdlYktpdDo6
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCkpOworICAgICAgICB9LAorICAgICAgICAvLyBo
YW5kbGVfcG9pbnRlcl9ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lu
cHV0X3BvaW50ZXJfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBw
YWdlID0gcmVpbnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAg
IHBhZ2UuaGFuZGxlTW91c2VFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYk1vdXNlRXZlbnQoZXZlbnQs
IHBhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5k
bGVfYXhpc19ldmVudAorICAgICAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3BlX2lucHV0X2F4
aXNfZXZlbnQqIGV2ZW50KQorICAgICAgICB7CisgICAgICAgICAgICBhdXRvJiBwYWdlID0gcmVp
bnRlcnByZXRfY2FzdDxWaWV3Kj4oZGF0YSktPnBhZ2UoKTsKKyAgICAgICAgICAgIHBhZ2UuaGFu
ZGxlV2hlZWxFdmVudChXZWJLaXQ6Ok5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIHBhZ2UuZGV2
aWNlU2NhbGVGYWN0b3IoKSkpOworICAgICAgICB9LAorICAgICAgICAvLyBoYW5kbGVfdG91Y2hf
ZXZlbnQKKyAgICAgICAgW10odm9pZCogZGF0YSwgc3RydWN0IHdwZV9pbnB1dF90b3VjaF9ldmVu
dCogZXZlbnQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGF1dG8mIHBhZ2UgPSByZWludGVycHJl
dF9jYXN0PFZpZXcqPihkYXRhKS0+cGFnZSgpOworICAgICAgICAgICAgcGFnZS5oYW5kbGVUb3Vj
aEV2ZW50KFdlYktpdDo6TmF0aXZlV2ViVG91Y2hFdmVudChldmVudCwgcGFnZS5kZXZpY2VTY2Fs
ZUZhY3RvcigpKSk7CisgICAgICAgIH0sCisgICAgfTsKKyAgICB3cGVfdmlld19iYWNrZW5kX3Nl
dF9pbnB1dF9jbGllbnQobV9iYWNrZW5kLCAmc19pbnB1dENsaWVudCwgdGhpcyk7CisKKyAgICB3
cGVfdmlld19iYWNrZW5kX2luaXRpYWxpemUobV9iYWNrZW5kKTsKKworICAgIG1fcGFnZVByb3h5
LT5pbml0aWFsaXplV2ViUGFnZSgpOworfQorCitWaWV3Ojp+VmlldygpCit7CisgICAgd3BlX3Zp
ZXdfYmFja2VuZF9kZXN0cm95KG1fYmFja2VuZCk7Cit9CisKK3ZvaWQgVmlldzo6aW5pdGlhbGl6
ZUNsaWVudChjb25zdCBXS1ZpZXdDbGllbnRCYXNlKiBjbGllbnQpCit7CisgICAgbV9jbGllbnQu
aW5pdGlhbGl6ZShjbGllbnQpOworfQorCit2b2lkIFZpZXc6OmZyYW1lRGlzcGxheWVkKCkKK3sK
KyAgICBtX2NsaWVudC5mcmFtZURpc3BsYXllZCgqdGhpcyk7Cit9CisKK3ZvaWQgVmlldzo6c2V0
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIG1fc2l6ZSA9IHNpemU7
CisgICAgaWYgKG1fcGFnZVByb3h5LT5kcmF3aW5nQXJlYSgpKQorICAgICAgICBtX3BhZ2VQcm94
eS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShzaXplLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNv
cmU6OkludFNpemUoKSk7Cit9CisKK3ZvaWQgVmlldzo6c2V0Vmlld1N0YXRlKFdlYkNvcmU6OkFj
dGl2aXR5U3RhdGU6OkZsYWdzIGZsYWdzKQoreworICAgIHN0YXRpYyBjb25zdCBXZWJDb3JlOjpB
Y3Rpdml0eVN0YXRlOjpGbGFncyBkZWZhdWx0RmxhZ3MgPSBXZWJDb3JlOjpBY3Rpdml0eVN0YXRl
OjpXaW5kb3dJc0FjdGl2ZSB8IFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OklzRm9jdXNlZDsKKwor
ICAgIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIGNoYW5nZWRGbGFncyA9IG1fdmlld1N0
YXRlRmxhZ3MgXiAoZGVmYXVsdEZsYWdzIHwgZmxhZ3MpOworICAgIG1fdmlld1N0YXRlRmxhZ3Mg
PSBkZWZhdWx0RmxhZ3MgfCBmbGFnczsKKworICAgIGlmIChjaGFuZ2VkRmxhZ3MpCisgICAgICAg
IG1fcGFnZVByb3h5LT5hY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKGNoYW5nZWRGbGFncyk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL3dwZS9XUEVWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3dwZS9X
UEVWaWV3LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjJiM2M5ZDg0
YzlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUv
V1BFVmlldy5oCkBAIC0wLDAgKzEsODMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJBUElPYmplY3Qu
aCIKKyNpbmNsdWRlICJDb21wb3NpdGluZ01hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIlBhZ2VD
bGllbnRJbXBsLmgiCisjaW5jbHVkZSAiV1BFVmlld0NsaWVudC5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvQWN0aXZpdHlTdGF0ZS5oPgorI2luY2x1ZGUg
PG1lbW9yeT4KKyNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CisKK3N0cnVjdCB3cGVfdmlld19iYWNr
ZW5kOworCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VHcm91cDsKK2NsYXNzIFdl
YlByb2Nlc3NQb29sOworfQorCituYW1lc3BhY2UgV0tXUEUgeworCitjbGFzcyBWaWV3IDogcHVi
bGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6Vmlldz4geworcHVibGljOgor
ICAgIHN0YXRpYyBWaWV3KiBjcmVhdGUoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQs
IGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24pCisgICAgeworICAg
ICAgICByZXR1cm4gbmV3IFZpZXcoYmFja2VuZCwgY29uZmlndXJhdGlvbik7CisgICAgfQorCisg
ICAgLy8gQ2xpZW50IG1ldGhvZHMKKyAgICB2b2lkIGluaXRpYWxpemVDbGllbnQoY29uc3QgV0tW
aWV3Q2xpZW50QmFzZSopOworICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoKTsKKworICAgIFdlYktp
dDo6V2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4gKm1fcGFnZVByb3h5OyB9CisKKyAgICBz
dHJ1Y3Qgd3BlX3ZpZXdfYmFja2VuZCogYmFja2VuZCgpIHsgcmV0dXJuIG1fYmFja2VuZDsgfQor
CisgICAgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2l6
ZTsgfQorCisgICAgV2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3U3RhdGVGbGFnczsgfQorICAgIHZvaWQgc2V0Vmlld1N0YXRlKFdl
YkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzKTsKKworcHJpdmF0ZToKKyAgICBWaWV3KHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiwgY29uc3QgQVBJOjpQYWdlQ29uZmlndXJhdGlvbiYpOworICAg
IHZpcnR1YWwgflZpZXcoKTsKKworICAgIHZvaWQgc2V0U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRT
aXplJik7CisKKyAgICBWaWV3Q2xpZW50IG1fY2xpZW50OworCisgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYktpdDo6UGFnZUNsaWVudEltcGw+IG1fcGFnZUNsaWVudDsKKyAgICBSZWZQdHI8V2ViS2l0
OjpXZWJQYWdlUHJveHk+IG1fcGFnZVByb3h5OworICAgIFdlYkNvcmU6OkludFNpemUgbV9zaXpl
OworICAgIFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlRmxhZ3M7CisK
KyAgICBXZWJLaXQ6OkNvbXBvc2l0aW5nTWFuYWdlclByb3h5IG1fY29tcG9zaXRpbmdNYW5hZ2Vy
UHJveHk7CisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIG1fYmFja2VuZDsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdLV1BFCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3dwZS9XUEVWaWV3Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1dQRVZpZXdDbGllbnQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwLi40NDRhYzk4ODY0ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorI2luY2x1ZGUgIldQRVZpZXdDbGllbnQuaCIKKworI2luY2x1ZGUgIldLQVBJQ2FzdC5o
IgorI2luY2x1ZGUgIldLQmFzZS5oIgorI2luY2x1ZGUgIldQRVZpZXcuaCIKKwordXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKKworbmFtZXNwYWNlIFdLV1BFIHsKKwordm9pZCBWaWV3Q2xpZW50Ojpm
cmFtZURpc3BsYXllZChWaWV3JiB2aWV3KQoreworICAgIGlmIChtX2NsaWVudC5mcmFtZURpc3Bs
YXllZCkKKyAgICAgICAgbV9jbGllbnQuZnJhbWVEaXNwbGF5ZWQodG9BUEkoJnZpZXcpLCBtX2Ns
aWVudC5iYXNlLmNsaWVudEluZm8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXS1dQRQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlld0NsaWVudC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5kNWU1NTlmYWY1ZQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXdDbGllbnQuaApA
QCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiQVBJQ2xpZW50LmgiCisjaW5jbHVk
ZSA8V2ViS2l0L1dLVmlldy5oPgorCituYW1lc3BhY2UgQVBJIHsKK3RlbXBsYXRlPD4gc3RydWN0
IENsaWVudFRyYWl0czxXS1ZpZXdDbGllbnRCYXNlPiB7CisgICAgdHlwZWRlZiBzdGQ6OnR1cGxl
PFdLVmlld0NsaWVudFYwPiBWZXJzaW9uczsKK307Cit9CisKK25hbWVzcGFjZSBXS1dQRSB7CisK
K2NsYXNzIFZpZXc7CisKK2NsYXNzIFZpZXdDbGllbnQgOiBwdWJsaWMgQVBJOjpDbGllbnQ8V0tW
aWV3Q2xpZW50QmFzZT4geworcHVibGljOgorICAgIHZvaWQgZnJhbWVEaXNwbGF5ZWQoVmlldyYp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXQySW5zcGVjdG9yR1Jlc291cmNlQnVuZGxlLnhtbCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3Vy
Y2VCdW5kbGUueG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41ODIw
OTJiYmZlYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdDJJbnNwZWN0b3JHUmVzb3VyY2VCdW5kbGUueG1sCkBAIC0wLDAgKzEsNiBAQAor
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxncmVzb3VyY2VzPgorICA8
Z3Jlc291cmNlIHByZWZpeD0iL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UiPgorICAg
IDxmaWxlPmluc3BlY3RvclBhZ2VJbmRleC5odG1sPC9maWxlPgorICA8L2dyZXNvdXJjZT4KKzwv
Z3Jlc291cmNlcz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9DaGlsZFBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJv
eHkuY3BwCmluZGV4IDI3YmVjMzYyMzE1Li5mZDg0OGNjZWQzOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCkBAIC01NSw3ICs1NSw3IEBAIHZv
aWQgQ2hpbGRQcm9jZXNzUHJveHk6OmdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpM
YXVuY2hPcHRpb25zJiBsYXVuY2hPCiAgICAgaWYgKG1fYWx3YXlzUnVuc0F0QmFja2dyb3VuZFBy
aW9yaXR5KQogICAgICAgICBsYXVuY2hPcHRpb25zLmV4dHJhSW5pdGlhbGl6YXRpb25EYXRhLmFk
ZChBU0NJSUxpdGVyYWwoImFsd2F5cy1ydW5zLWF0LWJhY2tncm91bmQtcHJpb3JpdHkiKSwgInRy
dWUiKTsKIAotI2lmIEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgUExBVEZPUk0oR1RLKQorI2lm
IEVOQUJMRShERVZFTE9QRVJfTU9ERSkgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KSkKICAgICBjb25zdCBjaGFyKiB2YXJuYW1lOwogICAgIHN3aXRjaCAobGF1bmNoT3B0aW9ucy5w
cm9jZXNzVHlwZSkgewogICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6V2Vi
OgpAQCAtNzksNyArNzksNyBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRp
b25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoTwogICAgIGNvbnN0IGNo
YXIqIHByb2Nlc3NDbWRQcmVmaXggPSBnZXRlbnYodmFybmFtZSk7CiAgICAgaWYgKHByb2Nlc3ND
bWRQcmVmaXggJiYgKnByb2Nlc3NDbWRQcmVmaXgpCiAgICAgICAgIGxhdW5jaE9wdGlvbnMucHJv
Y2Vzc0NtZFByZWZpeCA9IFN0cmluZzo6ZnJvbVVURjgocHJvY2Vzc0NtZFByZWZpeCk7Ci0jZW5k
aWYgLy8gRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9STShHVEspCisjZW5kaWYgLy8g
RU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUp
KQogfQogCiB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5Ojpjb25uZWN0KCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNl
cnZlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvSW5zcGVjdG9yU2VydmVyL3dw
ZS9XZWJJbnNwZWN0b3JTZXJ2ZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4yNjgzZTNkNzE2MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9JbnNwZWN0b3JTZXJ2ZXIvd3BlL1dlYkluc3BlY3RvclNlcnZlcldQRS5jcHAK
QEAgLTAsMCArMSwxNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVj
dHJvbmljcyBMdGQuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORAorICogQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyAqIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwor
ICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJJbnNwZWN0b3JTZXJ2ZXIuaCIKKworI2lmIEVO
QUJMRShJTlNQRUNUT1JfU0VSVkVSKQorCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
KyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxjc3RkaW8+CisjaW5jbHVkZSA8
Z21vZHVsZS5oPgorI2luY2x1ZGUgPG11dGV4PgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3ll
ZC5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9T
dHJpbmdCdWlsZGVyLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYkluc3BlY3Rv
clNlcnZlcjo6cGxhdGZvcm1SZXNvdXJjZUZvclBhdGgoY29uc3QgU3RyaW5nJiBwYXRoLCBWZWN0
b3I8Y2hhcj4mIGRhdGEsIFN0cmluZyYgY29udGVudFR5cGUpCit7CisgICAgLy8gVGhlIHBhZ2Ug
bGlzdCBjb250YWlucyBhbiB1bmZvcm1hdGVkIGxpc3Qgb2YgcGFnZXMgdGhhdCBjYW4gYmUgaW5z
cGVjdGVkIHdpdGggYSBsaW5rIHRvIG9wZW4gYSBzZXNzaW9uLgorICAgIGlmIChwYXRoID09ICIv
cGFnZWxpc3QuanNvbiIpIHsKKyAgICAgICAgYnVpbGRQYWdlTGlzdChkYXRhLCBjb250ZW50VHlw
ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBmbGFnOworICAgIHN0ZDo6Y2FsbF9vbmNlKGZsYWcsIFtdIHsKKyAgICAgICAgR01vZHVs
ZSogcmVzb3VyY2VzTW9kdWxlID0gZ19tb2R1bGVfb3BlbigibGliV1BFV2ViSW5zcGVjdG9yUmVz
b3VyY2VzLnNvIiwgR19NT0RVTEVfQklORF9MQVpZKTsKKyAgICAgICAgaWYgKCFyZXNvdXJjZXNN
b2R1bGUpIHsKKyAgICAgICAgICAgIFdURkxvZ0Fsd2F5cygiRXJyb3IgbG9hZGluZyBsaWJXUEVX
ZWJJbnNwZWN0b3JSZXNvdXJjZXMuc286ICVzIiwgZ19tb2R1bGVfZXJyb3IoKSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBnX21vZHVsZV9tYWtlX3Jlc2lkZW50
KHJlc291cmNlc01vZHVsZSk7CisgICAgfSk7CisKKyAgICAvLyBQb2ludCB0aGUgZGVmYXVsdCBw
YXRoIHRvIGEgZm9ybWF0dGVkIHBhZ2UgdGhhdCBxdWVyaWVzIHRoZSBwYWdlIGxpc3QgYW5kIGRp
c3BsYXkgdGhlbS4KKyAgICBDU3RyaW5nIHJlc291cmNlUGF0aCA9IG1ha2VTdHJpbmcoIi9vcmcv
d3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlIiwgKHBhdGggPT0gIi8iID8gIi9pbnNwZWN0b3JQ
YWdlSW5kZXguaHRtbCIgOiBwYXRoKSkudXRmOCgpOworICAgIGlmIChyZXNvdXJjZVBhdGguaXNO
dWxsKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIEdVbmlxdWVPdXRQdHI8R0Vycm9y
PiBlcnJvcjsKKyAgICBHUmVmUHRyPEdCeXRlcz4gcmVzb3VyY2VCeXRlcyA9IGFkb3B0R1JlZihn
X3Jlc291cmNlc19sb29rdXBfZGF0YShyZXNvdXJjZVBhdGguZGF0YSgpLCBHX1JFU09VUkNFX0xP
T0tVUF9GTEFHU19OT05FLCAmZXJyb3Iub3V0UHRyKCkpKTsKKyAgICBpZiAoIXJlc291cmNlQnl0
ZXMpIHsKKyAgICAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOworICAgICAgICBidWlsZGVyLmFw
cGVuZExpdGVyYWwoIjwhRE9DVFlQRSBodG1sPjxodG1sPjxoZWFkPjwvaGVhZD48Ym9keT5FcnJv
cjogIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGVycm9yLT5jb2RlKTsKKyAgICAg
ICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChl
cnJvci0+bWVzc2FnZSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiIG9jY3VycmVk
IGR1cmluZyBmZXRjaGluZyBpbnNwZWN0b3IgcmVzb3VyY2UgZmlsZXMuPC9ib2R5PjwvaHRtbD4i
KTsKKworICAgICAgICBDU3RyaW5nIGVycm9ySFRNTCA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4
KCk7CisgICAgICAgIGRhdGEuYXBwZW5kKGVycm9ySFRNTC5kYXRhKCksIGVycm9ySFRNTC5sZW5n
dGgoKSk7CisgICAgICAgIGNvbnRlbnRUeXBlID0gInRleHQvaHRtbDsgY2hhcnNldD11dGYtOCI7
CisKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJFcnJvciBmZXRjaGluZyB3ZWJpbnNwZWN0b3IgcmVz
b3VyY2UgZmlsZXM6ICVkLCAlcyIsIGVycm9yLT5jb2RlLCBlcnJvci0+bWVzc2FnZSk7CisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBnc2l6ZSByZXNvdXJjZURhdGFTaXplOwor
ICAgIGdjb25zdHBvaW50ZXIgcmVzb3VyY2VEYXRhID0gZ19ieXRlc19nZXRfZGF0YShyZXNvdXJj
ZUJ5dGVzLmdldCgpLCAmcmVzb3VyY2VEYXRhU2l6ZSk7CisgICAgZGF0YS5hcHBlbmQoc3RhdGlj
X2Nhc3Q8Y29uc3QgY2hhcio+KHJlc291cmNlRGF0YSksIHJlc291cmNlRGF0YVNpemUpOworCisg
ICAgR1VuaXF1ZVB0cjxnY2hhcj4gbWltZVR5cGUoZ19jb250ZW50X3R5cGVfZ3Vlc3MocmVzb3Vy
Y2VQYXRoLmRhdGEoKSwgc3RhdGljX2Nhc3Q8Y29uc3QgZ3VjaGFyKj4ocmVzb3VyY2VEYXRhKSwg
cmVzb3VyY2VEYXRhU2l6ZSwgbnVsbHB0cikpOworICAgIGNvbnRlbnRUeXBlID0gbWltZVR5cGUu
Z2V0KCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yU2VydmVyOjpi
dWlsZFBhZ2VMaXN0KFZlY3RvcjxjaGFyPiYgZGF0YSwgU3RyaW5nJiBjb250ZW50VHlwZSkKK3sK
KyAgICAvLyBjaHJvbWVkZXZ0b29scyAoaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9tZWRl
dnRvb2xzKSAwLjMuOCBleHBlY3RlZCBKU09OIGZvcm1hdDoKKyAgICAvLyB7CisgICAgLy8gICJ0
aXRsZSI6ICJGb28iLAorICAgIC8vICAidXJsIjogImh0dHA6Ly9mb28iLAorICAgIC8vICAiZGV2
dG9vbHNGcm9udGVuZFVybCI6ICIvTWFpbi5odG1sP3dzPWxvY2FsaG9zdDo5MjIyL2RldnRvb2xz
L3BhZ2UvMSIsCisgICAgLy8gICJ3ZWJTb2NrZXREZWJ1Z2dlclVybCI6ICJ3czovL2xvY2FsaG9z
dDo5MjIyL2RldnRvb2xzL3BhZ2UvMSIKKyAgICAvLyB9LAorCisgICAgU3RyaW5nQnVpbGRlciBi
dWlsZGVyOworICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiWyAiKTsKKyAgICBDbGllbnRNYXA6
Oml0ZXJhdG9yIGVuZCA9IG1fY2xpZW50TWFwLmVuZCgpOworICAgIGZvciAoQ2xpZW50TWFwOjpp
dGVyYXRvciBpdCA9IG1fY2xpZW50TWFwLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAg
ICAgICBXZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBpdC0+dmFsdWUtPmluc3BlY3RlZFBhZ2UoKTsK
KyAgICAgICAgaWYgKGl0ICE9IG1fY2xpZW50TWFwLmJlZ2luKCkpCisgICAgICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgi
eyBcImlkXCI6ICIpOworICAgICAgICBidWlsZGVyLmFwcGVuZE51bWJlcihpdC0+a2V5KTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCIsIFwidGl0bGVcIjogXCIiKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmQod2ViUGFnZS0+cGFnZUxvYWRTdGF0ZSgpLnRpdGxlKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcInVybFwiOiBcIiIpOworICAgICAgICBidWls
ZGVyLmFwcGVuZCh3ZWJQYWdlLT5wYWdlTG9hZFN0YXRlKCkuYWN0aXZlVVJMKCkpOworICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlwiLCBcImluc3BlY3RvclVybFwiOiBcIiIpOworICAg
ICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIi9NYWluLmh0bWw/cGFnZT0iKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmROdW1iZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0
ZXJhbCgiXCIsIFwiZGV2dG9vbHNGcm9udGVuZFVybFwiOiBcIiIpOworICAgICAgICBidWlsZGVy
LmFwcGVuZExpdGVyYWwoIi9NYWluLmh0bWw/d3M9Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5k
KGJpbmRBZGRyZXNzKCkpOworICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIjoiKTsKKyAg
ICAgICAgYnVpbGRlci5hcHBlbmROdW1iZXIocG9ydCgpKTsKKyAgICAgICAgYnVpbGRlci5hcHBl
bmRMaXRlcmFsKCIvZGV2dG9vbHMvcGFnZS8iKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmROdW1i
ZXIoaXQtPmtleSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiXCIsIFwid2ViU29j
a2V0RGVidWdnZXJVcmxcIjogXCIiKTsKKyAgICAgICAgYnVpbGRlci5hcHBlbmRMaXRlcmFsKCJ3
czovLyIpOworICAgICAgICBidWlsZGVyLmFwcGVuZChiaW5kQWRkcmVzcygpKTsKKyAgICAgICAg
YnVpbGRlci5hcHBlbmRMaXRlcmFsKCI6Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVy
KHBvcnQoKSk7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTGl0ZXJhbCgiL2RldnRvb2xzL3BhZ2Uv
Iik7CisgICAgICAgIGJ1aWxkZXIuYXBwZW5kTnVtYmVyKGl0LT5rZXkpOworICAgICAgICBidWls
ZGVyLmFwcGVuZExpdGVyYWwoIlwiIH0iKTsKKyAgICB9CisgICAgYnVpbGRlci5hcHBlbmRMaXRl
cmFsKCIgXSIpOworICAgIENTdHJpbmcgY3N0ciA9IGJ1aWxkZXIudG9TdHJpbmcoKS51dGY4KCk7
CisgICAgZGF0YS5hcHBlbmQoY3N0ci5kYXRhKCksIGNzdHIubGVuZ3RoKCkpOworICAgIGNvbnRl
bnRUeXBlID0gImFwcGxpY2F0aW9uL2pzb247IGNoYXJzZXQ9dXRmLTgiOworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKaW5kZXggMzk5NTA2OTQ4ZWYuLmJhNzdjMmFj
NzJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vz
c0xhdW5jaGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nl
c3NMYXVuY2hlci5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICAgICAgUHJvY2Vzc1R5
cGUgcHJvY2Vzc1R5cGU7CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dHJhSW5p
dGlhbGl6YXRpb25EYXRhOwogCi0jaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiBQTEFURk9S
TShHVEspCisjaWYgRU5BQkxFKERFVkVMT1BFUl9NT0RFKSAmJiAoUExBVEZPUk0oR1RLKSB8fCBQ
TEFURk9STShXUEUpKQogICAgICAgICBTdHJpbmcgcHJvY2Vzc0NtZFByZWZpeDsKICNlbmRpZgog
ICAgIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvd3Bl
L1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNo
ZXIvd3BlL1Byb2Nlc3NMYXVuY2hlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLjZkNDYwOTg2OTBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0xhdW5jaGVyL3dwZS9Qcm9jZXNzTGF1bmNoZXJXUEUuY3BwCkBAIC0wLDAg
KzEsMTUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2Jp
bGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlByb2Nlc3NMYXVuY2hlci5oIgorCisjaW5jbHVkZSAi
Q29ubmVjdGlvbi5oIgorI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgorI2luY2x1
ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgorI2luY2x1ZGUgPGVycm5vLmg+CisjaW5jbHVkZSA8
ZmNudGwuaD4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3BlL3JlbmRlcmVyLWhvc3Qu
aD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dMaWJVdGls
aXRpZXMuaD4KKyNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisjaW5jbHVkZSA8d3Rm
L3RleHQvQ1N0cmluZy5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCisvLyBG
SVhNRTogTWVyZ2Ugd2l0aCBQcm9jZXNzTGF1bmNoZXJHdGs/CisKK3VzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIHZvaWQgY2hpbGRTZXR1cEZ1
bmN0aW9uKGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIGludCBzb2NrZXQgPSBHUE9JTlRFUl9U
T19JTlQodXNlckRhdGEpOworICAgIGNsb3NlKHNvY2tldCk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xh
dW5jaGVyOjpsYXVuY2hQcm9jZXNzKCkKK3sKKyAgICBHUGlkIHBpZCA9IDA7CisKKyAgICBJUEM6
OkNvbm5lY3Rpb246OlNvY2tldFBhaXIgc29ja2V0UGFpciA9IElQQzo6Q29ubmVjdGlvbjo6Y3Jl
YXRlUGxhdGZvcm1Db25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbjo6Q29ubmVjdGlvbk9wdGlvbnM6
OlNldENsb2V4ZWNPblNlcnZlcik7CisKKyAgICBTdHJpbmcgZXhlY3V0YWJsZVBhdGg7CisgICAg
Q1N0cmluZyByZWFsRXhlY3V0YWJsZVBhdGg7CisgICAgc3dpdGNoIChtX2xhdW5jaE9wdGlvbnMu
cHJvY2Vzc1R5cGUpIHsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6Oldl
YjoKKyAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2Vzcygp
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFByb2Nlc3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6
Ok5ldHdvcms6CisgICAgICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZk5ldHdv
cmtQcm9jZXNzKCk7CisgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShEQVRBQkFTRV9QUk9DRVNT
KQorICAgIGNhc2UgUHJvY2Vzc0xhdW5jaGVyOjpQcm9jZXNzVHlwZTo6RGF0YWJhc2U6CisgICAg
ICAgIGV4ZWN1dGFibGVQYXRoID0gZXhlY3V0YWJsZVBhdGhPZkRhdGFiYXNlUHJvY2VzcygpOwor
ICAgICAgICBicmVhazsKKyNlbmRpZgorICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgcmVhbEV4ZWN1dGFibGVQ
YXRoID0gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKGV4ZWN1dGFibGVQYXRoKTsKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiB3a1NvY2tldChnX3N0cmR1cF9wcmludGYoIiVkIiwgc29ja2V0UGFpci5j
bGllbnQpKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiB3cGVTb2NrZXQ7CisKKyAgICB1bnNpZ25l
ZCBuYXJncyA9IDQ7IC8vIHNpemUgb2YgdGhlIGFyZ3YgYXJyYXkgZm9yIGdfc3Bhd25fYXN5bmMo
KQorICAgIGlmIChtX2xhdW5jaE9wdGlvbnMucHJvY2Vzc1R5cGUgPT0gUHJvY2Vzc0xhdW5jaGVy
OjpQcm9jZXNzVHlwZTo6V2ViKSB7CisgICAgICAgIHdwZVNvY2tldCA9IEdVbmlxdWVQdHI8Z2No
YXI+KGdfc3RyZHVwX3ByaW50ZigiJWQiLCB3cGVfcmVuZGVyZXJfaG9zdF9jcmVhdGVfY2xpZW50
KCkpKTsKKyAgICAgICAgbmFyZ3MgPSA1OworICAgIH0KKworI2lmIEVOQUJMRShERVZFTE9QRVJf
TU9ERSkKKyAgICBWZWN0b3I8Q1N0cmluZz4gcHJlZml4QXJnczsKKyAgICBpZiAoIW1fbGF1bmNo
T3B0aW9ucy5wcm9jZXNzQ21kUHJlZml4LmlzTnVsbCgpKSB7CisgICAgICAgIFZlY3RvcjxTdHJp
bmc+IHNwbGl0QXJnczsKKyAgICAgICAgbV9sYXVuY2hPcHRpb25zLnByb2Nlc3NDbWRQcmVmaXgu
c3BsaXQoJyAnLCBzcGxpdEFyZ3MpOworICAgICAgICBmb3IgKGF1dG8gaXQgPSBzcGxpdEFyZ3Mu
YmVnaW4oKTsgaXQgIT0gc3BsaXRBcmdzLmVuZCgpOyBpdCsrKQorICAgICAgICAgICAgcHJlZml4
QXJncy5hcHBlbmQoaXQtPnV0ZjgoKSk7CisgICAgICAgIG5hcmdzICs9IHByZWZpeEFyZ3Muc2l6
ZSgpOworICAgIH0KKyNlbmRpZgorCisgICAgY2hhcioqIGFyZ3YgPSBnX25ld2EoY2hhciosIG5h
cmdzKTsKKyAgICB1bnNpZ25lZCBpID0gMDsKKyNpZiBFTkFCTEUoREVWRUxPUEVSX01PREUpCisg
ICAgLy8gSWYgdGhlcmUncyBhIHByZWZpeCBjb21tYW5kLCBwdXQgaXQgYmVmb3JlIHRoZSByZXN0
IG9mIHRoZSBhcmdzLgorICAgIGZvciAoYXV0byBpdCA9IHByZWZpeEFyZ3MuYmVnaW4oKTsgaXQg
IT0gcHJlZml4QXJncy5lbmQoKTsgaXQrKykKKyAgICAgICAgYXJndltpKytdID0gY29uc3RfY2Fz
dDxjaGFyKj4oaXQtPmRhdGEoKSk7CisjZW5kaWYKKyAgICBhcmd2W2krK10gPSBjb25zdF9jYXN0
PGNoYXIqPihyZWFsRXhlY3V0YWJsZVBhdGguZGF0YSgpKTsKKyAgICBhcmd2W2krK10gPSB3a1Nv
Y2tldC5nZXQoKTsKKyAgICBpZiAobV9sYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID09IFByb2Nl
c3NMYXVuY2hlcjo6UHJvY2Vzc1R5cGU6OldlYikKKyAgICAgICAgYXJndltpKytdID0gd3BlU29j
a2V0LmdldCgpOworICAgIGFyZ3ZbaSsrXSA9IG51bGxwdHI7CisKKyAgICBHVW5pcXVlT3V0UHRy
PEdFcnJvcj4gZXJyb3I7CisgICAgaWYgKCFnX3NwYXduX2FzeW5jKDAsIGFyZ3YsIDAsIEdfU1BB
V05fTEVBVkVfREVTQ1JJUFRPUlNfT1BFTiwgY2hpbGRTZXR1cEZ1bmN0aW9uLCBHSU5UX1RPX1BP
SU5URVIoc29ja2V0UGFpci5zZXJ2ZXIpLCAmcGlkLCAmZXJyb3Iub3V0UHRyKCkpKSB7CisgICAg
ICAgIGdfcHJpbnRlcnIoIlVuYWJsZSB0byBmb3JrIGEgbmV3IFdlYlByb2Nlc3M6ICVzLlxuIiwg
ZXJyb3ItPm1lc3NhZ2UpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisK
KyAgICAvLyBEb24ndCBleHBvc2UgdGhlIHBhcmVudCBzb2NrZXQgdG8gcG90ZW50aWFsIGZ1dHVy
ZSBjaGlsZHJlbi4KKyAgICB3aGlsZSAoZmNudGwoc29ja2V0UGFpci5jbGllbnQsIEZfU0VURkQs
IEZEX0NMT0VYRUMpID09IC0xKQorICAgICAgICBSRUxFQVNFX0FTU0VSVChlcnJubyAhPSBFSU5U
Uik7CisKKyAgICBjbG9zZShzb2NrZXRQYWlyLmNsaWVudCk7CisgICAgbV9wcm9jZXNzSWRlbnRp
ZmllciA9IHBpZDsKKworICAgIC8vIFdlJ3ZlIGZpbmlzaGVkIGxhdW5jaGluZyB0aGUgcHJvY2Vz
cywgbWVzc2FnZSBiYWNrIHRvIHRoZSBtYWluIHJ1biBsb29wLgorICAgIFJlZlB0cjxQcm9jZXNz
TGF1bmNoZXI+IHByb3RlY3RlZFRoaXModGhpcyk7CisgICAgSVBDOjpDb25uZWN0aW9uOjpJZGVu
dGlmaWVyIHNlcnZlclNvY2tldCA9IHNvY2tldFBhaXIuc2VydmVyOworICAgIFJ1bkxvb3A6Om1h
aW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkVGhpcywgcGlkLCBzZXJ2ZXJTb2NrZXRdIHsKKyAgICAg
ICAgcHJvdGVjdGVkVGhpcy0+ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcyhwaWQsIHNlcnZlclNv
Y2tldCk7CisgICAgfSk7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5jaGVyOjp0ZXJtaW5hdGVQcm9j
ZXNzKCkKK3sKKyAgICBpZiAobV9pc0xhdW5jaGluZykgeworICAgICAgICBpbnZhbGlkYXRlKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fcHJvY2Vzc0lkZW50aWZpZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIGtpbGwobV9wcm9jZXNzSWRlbnRpZmllciwgU0lHS0lM
TCk7CisgICAgbV9wcm9jZXNzSWRlbnRpZmllciA9IDA7Cit9CisKK3ZvaWQgUHJvY2Vzc0xhdW5j
aGVyOjpwbGF0Zm9ybUludmFsaWRhdGUoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmgKaW5kZXggMWM4
ZWY0NjNjYzIuLjg0N2ZiNWMzMjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaApAQCAtMjI0LDcgKzIyNCw3IEBAIHByaXZhdGU6CiAKICAgICBXZWJQ
cmVmZXJlbmNlcyYgaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3Q7CiAKLSNpZiBQTEFU
Rk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCiAgICAgdm9pZCBj
cmVhdGVJbnNwZWN0b3JXaW5kb3coKTsKICAgICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1Rp
dGxlKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYXN0ZWJvYXJkUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0
ZWJvYXJkUHJveHkuaAppbmRleCA0NGU4MzY1NTNiNS4uOWJiNmQ1NGNhMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTk4LDYgKzk4LDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHNldFBhc3RlYm9hcmRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0
IFN0cmluZyYsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAgICAgdm9pZCBzZXRQYXN0ZWJv
YXJkQnVmZmVyRm9yVHlwZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJp
bmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIHVpbnQ2NF90
IHNpemUsIHVpbnQ2NF90JiBuZXdDaGFuZ2VDb3VudCk7CiAjZW5kaWYKKwogI2lmIFBMQVRGT1JN
KEdUSykKICAgICB2b2lkIHdyaXRlVG9DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
TmFtZSwgY29uc3QgV2ViU2VsZWN0aW9uRGF0YSYpOwogICAgIHZvaWQgcmVhZEZyb21DbGlwYm9h
cmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgV2ViU2VsZWN0aW9uRGF0YSYpOwpAQCAt
MTA1LDcgKzEwNiwxNCBAQCBwcml2YXRlOgogICAgIFdlYkZyYW1lUHJveHkqIG1fcHJpbWFyeVNl
bGVjdGlvbk93bmVyIHsgbnVsbHB0ciB9OwogICAgIFdlYkZyYW1lUHJveHkqIG1fZnJhbWVXcml0
aW5nVG9DbGlwYm9hcmQgeyBudWxscHRyIH07CiAjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQotICAg
IAorCisjaWYgUExBVEZPUk0oV1BFKQorICAgIHZvaWQgZ2V0UGFzdGVib2FyZFR5cGVzKFZlY3Rv
cjxTdHJpbmc+JiBwYXN0ZWJvYXJkVHlwZXMpOworICAgIHZvaWQgcmVhZFN0cmluZ0Zyb21QYXN0
ZWJvYXJkKHVpbnQ2NF90IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBXVEY6
OlN0cmluZyYpOworICAgIHZvaWQgd3JpdGVXZWJDb250ZW50VG9QYXN0ZWJvYXJkKGNvbnN0IFdl
YkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50Jik7CisgICAgdm9pZCB3cml0ZVN0cmluZ1RvUGFz
dGVib2FyZChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmKTsKKyNl
bmRpZgorCiAgICAgV2ViUHJvY2Vzc1Byb3h5TGlzdCBtX3dlYlByb2Nlc3NQcm94eUxpc3Q7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA3NjZiYzEyZWQzYi4uNDAxMmFkNWEzYjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNz
YWdlcy5pbgpAQCAtNTgsNCArNTgsMTEgQEAgbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5
IHsKICAgICBXcml0ZVRvQ2xpcGJvYXJkKFN0cmluZyBwYXN0ZWJvYXJkTmFtZSwgc3RydWN0IFdl
YktpdDo6V2ViU2VsZWN0aW9uRGF0YSBwYXN0ZWJvYXJkQ29udGVudCkKICAgICBSZWFkRnJvbUNs
aXBib2FyZChTdHJpbmcgcGFzdGVib2FyZE5hbWUpIC0+IChzdHJ1Y3QgV2ViS2l0OjpXZWJTZWxl
Y3Rpb25EYXRhIHBhc3RlYm9hcmRDb250ZW50KQogI2VuZGlmCisKKyNpZiBQTEFURk9STShXUEUp
CisgICAgR2V0UGFzdGVib2FyZFR5cGVzKCkgLT4gKFZlY3RvcjxTdHJpbmc+IHR5cGVzKQorICAg
IFJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3RlYm9h
cmRUeXBlKSAtPiAoU3RyaW5nIHN0cmluZykKKyAgICBXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9h
cmQoc3RydWN0IFdlYkNvcmU6OlBhc3RlYm9hcmRXZWJDb250ZW50IGNvbnRlbnQpCisgICAgV3Jp
dGVTdHJpbmdUb1Bhc3RlYm9hcmQoU3RyaW5nIHBhc3RlYm9hcmRUeXBlLCBTdHJpbmcgdGV4dCkK
KyNlbmRpZgogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAK
aW5kZXggNDBkZTNkMWRhMmUuLjhhMTZlMzI2M2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTI4Myw3ICsyODMsNyBAQCBXZWJQcm9jZXNzUG9v
bDo6V2ViUHJvY2Vzc1Bvb2woQVBJOjpQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24mIGNvbmZpZ3Vy
YXRpb24pCiAgICAgbm90aWZ5VGhpc1dlYlByb2Nlc3NQb29sV2FzQ3JlYXRlZCgpOwogfQogCi0j
aWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oR1RLKQorI2lmICFQTEFURk9STShDT0NP
QSkgJiYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JNKFdQRSkKIHZvaWQgV2ViUHJvY2Vzc1Bv
b2w6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiB7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3Mvd3BlL1RleHRDaGVja2VyV1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi4wMzcwZmYyYmExYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy93cGUvVGV4dENoZWNrZXJXUEUuY3BwCkBAIC0wLDAgKzEsMTQxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgorCisjaW5jbHVkZSAiVGV4dENoZWNr
ZXJTdGF0ZS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitzdGF0aWMgVGV4dENo
ZWNrZXJTdGF0ZSB0ZXh0Q2hlY2tlclN0YXRlOworCitjb25zdCBUZXh0Q2hlY2tlclN0YXRlJiBU
ZXh0Q2hlY2tlcjo6c3RhdGUoKQoreworICAgIHJldHVybiB0ZXh0Q2hlY2tlclN0YXRlOworfQor
Cit2b2lkIFRleHRDaGVja2VyOjpzZXRUZXN0aW5nTW9kZShib29sKQoreworfQorCitib29sIFRl
eHRDaGVja2VyOjppc1Rlc3RpbmdNb2RlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBmYWxzZTsKK30KKworYm9vbCBUZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxD
aGVja2luZ0FsbG93ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZh
bHNlOworfQorCit2b2lkIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVj
a2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkU3RhdGVDaGFuZ2VkKGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBUZXh0Q2hlY2tlcjo6Z3JhbW1hckNoZWNraW5nRW5hYmxlZFN0YXRlQ2hhbmdlZChib29sKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2ludDY0X3QgVGV4dENoZWNrZXI6OnVuaXF1
ZVNwZWxsRG9jdW1lbnRUYWcoV2ViUGFnZVByb3h5KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6Y2xvc2VTcGVsbERv
Y3VtZW50V2l0aFRhZyhpbnQ2NF90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgVGV4dENoZWNrZXI6OmNoZWNrU3BlbGxpbmdPZlN0cmluZyhpbnQ2NF90LCBTdHJpbmdWaWV3
LCBpbnQzMl90JiwgaW50MzJfdCYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBUZXh0Q2hlY2tlcjo6Y2hlY2tHcmFtbWFyT2ZTdHJpbmcoaW50NjRfdCwgU3RyaW5nVmlldywg
VmVjdG9yPFdlYkNvcmU6OkdyYW1tYXJEZXRhaWw+JiwgaW50MzJfdCYsIGludDMyX3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgVGV4dENoZWNrZXI6OnNwZWxsaW5nVUlJ
c1Nob3dpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOwor
fQorCit2b2lkIFRleHRDaGVja2VyOjp0b2dnbGVTcGVsbGluZ1VJSXNTaG93aW5nKCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjp1cGRhdGVTcGVsbGlu
Z1VJV2l0aE1pc3NwZWxsZWRXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBUZXh0Q2hlY2tlcjo6dXBkYXRlU3BlbGxpbmdVSVdp
dGhHcmFtbWFyU3RyaW5nKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IEdyYW1tYXJEZXRh
aWwmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgVGV4dENoZWNrZXI6Omdl
dEd1ZXNzZXNGb3JXb3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGlu
dDMyX3QsIFZlY3RvcjxTdHJpbmc+JiwgYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
fQorCit2b2lkIFRleHRDaGVja2VyOjpsZWFybldvcmQoaW50NjRfdCwgY29uc3QgU3RyaW5nJikK
K3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFRleHRDaGVja2VyOjppZ25vcmVX
b3JkKGludDY0X3QsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30K
Kwordm9pZCBUZXh0Q2hlY2tlcjo6cmVxdWVzdENoZWNraW5nT2ZTdHJpbmcoUGFzc1JlZlB0cjxU
ZXh0Q2hlY2tlckNvbXBsZXRpb24+LCBpbnQzMl90KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3dwZS9XZWJJbnNwZWN0b3JQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNWJhZWVlM2MxN2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYkluc3BlY3RvclByb3h5V1BFLmNwcApAQCAtMCww
ICsxLDE1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yUHJveHkuaCIK
KworI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlBhZ2VQcm94eSogV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBXZWJJbnNwZWN0
b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yV2luZG93KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlk
Q2xvc2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtRGlkQ2xvc2VGb3JDcmFzaCgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3JtSW52YWxpZGF0ZSgpCit7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtSGlkZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9p
ZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdJ
bnNwZWN0ZWRQYWdlVG9Gcm9udCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworYm9v
bCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1Jc0Zyb250KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdl
VVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJjZTovLy9vcmcvd3BlL2luc3BlY3Rv
ci9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCIpOworfQorCitTdHJpbmcgV2ViSW5zcGVjdG9yUHJv
eHk6Omluc3BlY3RvclRlc3RQYWdlVVJMKCkKK3sKKyAgICByZXR1cm4gU3RyaW5nKCJyZXNvdXJj
ZTovLy9vcmcvd3BlL2luc3BlY3Rvci9Vc2VySW50ZXJmYWNlL1Rlc3QuaHRtbCIpOworfQorCitT
dHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvckJhc2VVUkwoKQoreworICAgIHJldHVy
biBTdHJpbmcoInJlc291cmNlOi8vL29yZy93cGUvaW5zcGVjdG9yL1VzZXJJbnRlcmZhY2UvIik7
Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
dW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVkV2luZG93
V2lkdGgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2F2ZShjb25z
dCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBib29sLCBib29sKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXBwZW5kKGNvbnN0
IFN0cmluZyYsIGNvbnN0IFN0cmluZyYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2Vk
KGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94
eVdQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhZ2VQcm94eVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRhMjAyYWJlYjRmCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYWdlUHJv
eHlXUEUuY3BwCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdh
bGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgorCisjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZS5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgV2Vi
UGFnZVByb3h5OjpwbGF0Zm9ybUluaXRpYWxpemUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK1N0cmluZyBXZWJQYWdlUHJveHk6OnN0YW5kYXJkVXNlckFnZW50KGNvbnN0IFN0cmlu
ZyYpCit7CisgICAgcmV0dXJuICJNb3ppbGxhLzUuMCAoTGludXg7IHg4Nl82NCBHTlUvTGludXgp
IEFwcGxlV2ViS2l0LzYwMS4xIChLSFRNTCwgbGlrZSBHZWNrbykgVmVyc2lvbi84LjAgU2FmYXJp
LzYwMS4xIjsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OnNhdmVSZWNlbnRTZWFyY2hlcyhjb25z
dCBTdHJpbmcmLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmxvYWRSZWNlbnRTZWFy
Y2hlcyhjb25zdCBTdHJpbmcmLCBWZWN0b3I8V2ViQ29yZTo6UmVjZW50U2VhcmNoPiYpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpwbGF0Zm9y
bVJlbW92ZVJlY2VudFNlYXJjaGVzKHN0ZDo6Y2hyb25vOjpzeXN0ZW1fY2xvY2s6OnRpbWVfcG9p
bnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQYWdlUHJveHk6OmVk
aXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBhc3RlYm9hcmRQcm94eVdQRS5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjhkM2QwZWI0NmQ0Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQYXN0ZWJvYXJkUHJveHlXUEUuY3Bw
CkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBhc3RlYm9hcmRQ
cm94eS5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVBhc3RlYm9hcmQuaD4KKyNpbmNs
dWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisK
K25hbWVzcGFjZSBXZWJLaXQgewordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OmdldFBhc3RlYm9h
cmRUeXBlcyhWZWN0b3I8U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzKQoreworICAgIFBsYXRmb3Jt
UGFzdGVib2FyZCgpLmdldFR5cGVzKHBhc3RlYm9hcmRUeXBlcyk7Cit9CisKK3ZvaWQgV2ViUGFz
dGVib2FyZFByb3h5OjpyZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQodWludDY0X3QgaW5kZXgsIGNv
bnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIFdURjo6U3RyaW5nJiB2YWx1ZSkKK3sKKyAgICB2
YWx1ZSA9IFBsYXRmb3JtUGFzdGVib2FyZCgpLnJlYWRTdHJpbmcoaW5kZXgsIHBhc3RlYm9hcmRU
eXBlKTsKK30KKwordm9pZCBXZWJQYXN0ZWJvYXJkUHJveHk6OndyaXRlV2ViQ29udGVudFRvUGFz
dGVib2FyZChjb25zdCBXZWJDb3JlOjpQYXN0ZWJvYXJkV2ViQ29udGVudCYgY29udGVudCkKK3sK
KyAgICBQbGF0Zm9ybVBhc3RlYm9hcmQoKS53cml0ZShjb250ZW50KTsKK30KKwordm9pZCBXZWJQ
YXN0ZWJvYXJkUHJveHk6OndyaXRlU3RyaW5nVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCkKK3sKKyAgICBQbGF0Zm9ybVBhc3RlYm9h
cmQoKS53cml0ZShwYXN0ZWJvYXJkVHlwZSwgdGV4dCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcmVmZXJl
bmNlc1dQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlByZWZlcmVuY2Vz
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZmY4MWZjZGEx
Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mvd3BlL1dlYlBy
ZWZlcmVuY2VzV1BFLmNwcApAQCAtMCwwICsxLDg3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJQcmVmZXJlbmNlcy5oIgorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZvcm1J
bml0aWFsaXplU3RvcmUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2Vi
UHJlZmVyZW5jZXM6OnBsYXRmb3JtVXBkYXRlU3RyaW5nVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YlByZWZlcmVuY2VzOjpwbGF0Zm9ybVVwZGF0ZUJvb2xWYWx1ZUZvcktleShjb25zdCBTdHJpbmcm
LCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgV2ViUHJlZmVyZW5j
ZXM6OnBsYXRmb3JtVXBkYXRlVUludDMyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5nJiwgdWludDMy
X3QpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6
cGxhdGZvcm1VcGRhdGVEb3VibGVWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBkb3VibGUpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJQcmVmZXJlbmNlczo6cGxhdGZv
cm1VcGRhdGVGbG9hdFZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIGZsb2F0KQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6OnBsYXRmb3JtR2V0U3Ry
aW5nVXNlclZhbHVlRm9yS2V5KGNvbnN0IFN0cmluZyYsIFN0cmluZyYpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgV2ViUHJlZmVyZW5jZXM6
OnBsYXRmb3JtR2V0Qm9vbFVzZXJWYWx1ZUZvcktleShjb25zdCBTdHJpbmcmLCBib29sJikKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBXZWJQ
cmVmZXJlbmNlczo6cGxhdGZvcm1HZXRVSW50MzJVc2VyVmFsdWVGb3JLZXkoY29uc3QgU3RyaW5n
JiwgdWludDMyX3QmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNl
OworfQorCitib29sIFdlYlByZWZlcmVuY2VzOjpwbGF0Zm9ybUdldERvdWJsZVVzZXJWYWx1ZUZv
cktleShjb25zdCBTdHJpbmcmLCBkb3VibGUmKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93cGUvV2ViUHJvY2Vzc1Bvb2xXUEUuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmQwZmE1MmRhZjdjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dwZS9XZWJQcm9jZXNzUG9vbFdQRS5jcHAK
QEAgLTAsMCArMSwxNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAyMDEwIE1vdG9y
b2xhIE1vYmlsaXR5LCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MgTHRkLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCisK
KyNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJMb2dn
aW5nLmgiCisjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3NNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldl
YkNvb2tpZU1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIldlYkluc3BlY3RvclNlcnZlci5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJXZWJQ
cm9jZXNzTWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TY2hlbWVS
ZWdpc3RyeS5oPgorI2luY2x1ZGUgPGNzdGRsaWI+CisjaW5jbHVkZSA8d3RmL2dsaWIvR1VuaXF1
ZVB0ci5oPgorCisvLyBGSVhNRTogTWVyZ2Ugd2l0aCBXZWJQcm9jZXNzUG9vbEd0az8gQWJzdHJh
Y3QgdGhlIGNvbW1vbiBwYXJ0cz8KKworbmFtZXNwYWNlIFdlYktpdCB7CisKKyNpZiBFTkFCTEUo
SU5TUEVDVE9SX1NFUlZFUikKK3N0YXRpYyB2b2lkIGluaXRJbnNwZWN0b3JTZXJ2ZXIoKQorewor
ICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkID0gZmFsc2U7CisgICAgaWYgKGluaXRpYWxpemVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBpbml0aWFsaXplZCA9IHRydWU7CisgICAgU3RyaW5n
IHNlcnZlckFkZHJlc3MoZ19nZXRlbnYoIldFQktJVF9JTlNQRUNUT1JfU0VSVkVSIikpOworCisg
ICAgaWYgKCFzZXJ2ZXJBZGRyZXNzLmlzTnVsbCgpKSB7CisgICAgICAgIFN0cmluZyBiaW5kQWRk
cmVzcyA9ICIxMjcuMC4wLjEiOworICAgICAgICB1bnNpZ25lZCBzaG9ydCBwb3J0ID0gMjk5OTsK
KworICAgICAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQ7CisgICAgICAgIHNlcnZlckFkZHJlc3Mu
c3BsaXQoJzonLCByZXN1bHQpOworCisgICAgICAgIGlmIChyZXN1bHQuc2l6ZSgpID09IDIpIHsK
KyAgICAgICAgICAgIGJpbmRBZGRyZXNzID0gcmVzdWx0WzBdOworICAgICAgICAgICAgYm9vbCBv
ayA9IGZhbHNlOworICAgICAgICAgICAgcG9ydCA9IHJlc3VsdFsxXS50b0ludCgmb2spOworICAg
ICAgICAgICAgaWYgKCFvaykgeworICAgICAgICAgICAgICAgIHBvcnQgPSAyOTk5OworICAgICAg
ICAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgcGFyc2UgdGhlIHBvcnQuIFVzZSAyOTk5IGlu
c3RlYWQuIik7CisgICAgICAgICAgICB9CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgTE9H
X0VSUk9SKCJDb3VsZG4ndCBwYXJzZSAlcywgd3JvbmcgZm9ybWF0PyBVc2UgMTI3LjAuMC4xOjI5
OTkgaW5zdGVhZC4iLCBzZXJ2ZXJBZGRyZXNzLnV0ZjgoKS5kYXRhKCkpOworCisgICAgICAgIGlm
ICghV2ViSW5zcGVjdG9yU2VydmVyOjpzaW5nbGV0b24oKS5saXN0ZW4oYmluZEFkZHJlc3MsIHBv
cnQpKQorICAgICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBzdGFydCBsaXN0ZW5pbmcgb246
IElQIGFkZHJlc3M9JXMsIHBvcnQ9JWQuIiwgYmluZEFkZHJlc3MudXRmOCgpLmRhdGEoKSwgcG9y
dCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBMT0coSW5zcGVjdG9yU2VydmVyLCAi
VG8gc3RhcnQgaW5zcGVjdG9yIHNlcnZlciBzZXQgV0VCS0lUX0lOU1BFQ1RPUl9TRVJWRVIgdG8g
MTI3LjAuMC4xOjI5OTkgZm9yIGV4YW1wbGUuIik7Cit9CisjZW5kaWYKKworV1RGOjpTdHJpbmcg
V2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRmb3JtRGVmYXVsdEFwcGxpY2F0aW9uQ2FjaGVEaXJl
Y3RvcnkoKQoreworICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGNhY2hlRGlyZWN0b3J5KGdfYnVpbGRf
ZmlsZW5hbWUoZ19nZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJhcHBjYWNoZSIsIG51bGxw
dHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRh
dGlvbihjYWNoZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1dURjo6U3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUNhY2hlRGlyZWN0b3J5KCkKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBjYWNoZURpcmVjdG9yeShnX2J1aWxkX2ZpbGVuYW1lKGdfZ2V0X3Vz
ZXJfY2FjaGVfZGlyKCksICJ3cGUiLCAibWVkaWFjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihjYWNoZURpcmVj
dG9yeS5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Bvb2w6OnBsYXRmb3JtSW5pdGlhbGl6
ZSgpCit7CisgICAgbV93ZWJzaXRlRGF0YVN0b3JlLT53ZWJzaXRlRGF0YVN0b3JlKCkucmVnaXN0
ZXJTaGFyZWRSZXNvdXJjZUxvYWRPYnNlcnZlcigpOworfQorCit2b2lkIFdlYlByb2Nlc3NQb29s
OjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRl
cnMmIHBhcmFtZXRlcnMpCit7CisjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCisgICAgaW5p
dEluc3BlY3RvclNlcnZlcigpOworI2VuZGlmCisKKyAgICBwYXJhbWV0ZXJzLm1lbW9yeUNhY2hl
RGlzYWJsZWQgPSBtX21lbW9yeUNhY2hlRGlzYWJsZWQgfHwgY2FjaGVNb2RlbCgpID09IENhY2hl
TW9kZWxEb2N1bWVudFZpZXdlcjsKK30KKwordm9pZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1J
bnZhbGlkYXRlQ29udGV4dCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5n
IFdlYlByb2Nlc3NQb29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRXZWJTUUxEYXRhYmFzZURpcmVj
dG9yeSgpCit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgbnVs
bHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJlc2Vu
dGF0aW9uKGRhdGFiYXNlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHRJbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeSgpCit7
CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gaW5kZXhlZERCRGF0YWJhc2VEaXJlY3RvcnkoZ19idWls
ZF9maWxlbmFtZShnX2dldF91c2VyX2RhdGFfZGlyKCksICJ3cGUiLCAiZGF0YWJhc2VzIiwgImlu
ZGV4ZWRkYiIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVT
eXN0ZW1SZXByZXNlbnRhdGlvbihpbmRleGVkREJEYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9
CisKK1N0cmluZyBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1EZWZhdWx0SWNvbkRhdGFiYXNlUGF0
aCgpIGNvbnN0Cit7CisgICAgR1VuaXF1ZVB0cjxnY2hhcj4gZGF0YWJhc2VEaXJlY3RvcnkoZ19i
dWlsZF9maWxlbmFtZShnX2dldF91c2VyX2NhY2hlX2RpcigpLCAid3BlIiwgImljb25kYXRhYmFz
ZSIsIG51bGxwdHIpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1S
ZXByZXNlbnRhdGlvbihkYXRhYmFzZURpcmVjdG9yeS5nZXQoKSk7Cit9CisKK1N0cmluZyBXZWJQ
cm9jZXNzUG9vbDo6bGVnYWN5UGxhdGZvcm1EZWZhdWx0TG9jYWxTdG9yYWdlRGlyZWN0b3J5KCkK
K3sKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBzdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgImxvY2Fsc3RvcmFnZSIsIG51bGxwdHIp
KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlv
bihzdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQb29sOjps
ZWdhY3lQbGF0Zm9ybURlZmF1bHRNZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KCkKK3sKKyAgICBH
VW5pcXVlUHRyPGdjaGFyPiBtZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5h
bWUoZ19nZXRfdXNlcl9kYXRhX2RpcigpLCAid3BlIiwgIm1lZGlha2V5cyIsIG51bGxwdHIpKTsK
KyAgICByZXR1cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbiht
ZWRpYUtleXNTdG9yYWdlRGlyZWN0b3J5LmdldCgpKTsKK30KKworU3RyaW5nIFdlYlByb2Nlc3NQ
b29sOjpsZWdhY3lQbGF0Zm9ybURlZmF1bHROZXR3b3JrQ2FjaGVEaXJlY3RvcnkoKQoreworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gZGlza0NhY2hlRGlyZWN0b3J5KGdfYnVpbGRfZmlsZW5hbWUoZ19n
ZXRfdXNlcl9jYWNoZV9kaXIoKSwgIndwZSIsICJjYWNoZSIsIG51bGxwdHIpKTsKKyAgICByZXR1
cm4gV2ViQ29yZTo6c3RyaW5nRnJvbUZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihkaXNrQ2FjaGVE
aXJlY3RvcnkuZ2V0KCkpOworfQorCitTdHJpbmcgV2ViUHJvY2Vzc1Bvb2w6OmxlZ2FjeVBsYXRm
b3JtRGVmYXVsdEphdmFTY3JpcHRDb25maWd1cmF0aW9uRGlyZWN0b3J5KCkKK3sKKyAgICBHVW5p
cXVlUHRyPGdjaGFyPiBqYXZhU2NyaXB0Q29yZUNvbmZpZ0RpcmVjdG9yeShnX2J1aWxkX2ZpbGVu
YW1lKGdfZ2V0X3VzZXJfZGF0YV9kaXIoKSwgIndwZSIsICJKYXZhU2NyaXB0Q29yZURlYnVnIiwg
bnVsbHB0cikpOworICAgIHJldHVybiBXZWJDb3JlOjpzdHJpbmdGcm9tRmlsZVN5c3RlbVJlcHJl
c2VudGF0aW9uKGphdmFTY3JpcHRDb3JlQ29uZmlnRGlyZWN0b3J5LmdldCgpKTsKK30KKwordm9p
ZCBXZWJQcm9jZXNzUG9vbDo6cGxhdGZvcm1SZXNvbHZlUGF0aHNGb3JTYW5kYm94RXh0ZW5zaW9u
cygpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJiMzViNjYwNmI2Li44Y2Qz
MWYyM2FhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtOTU0MSw3ICs5NTQxLDcgQEAKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVw
bG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7Ci0JCQlz
aGVsbFNjcmlwdCA9ICJXS0JBU0VfSD0ke1RBUkdFVF9CVUlMRF9ESVJ9LyR7UFJJVkFURV9IRUFE
RVJTX0ZPTERFUl9QQVRIfS9XS0Jhc2UuaFxuXG51bmlmZGVmIC1CIC1EX19BUFBMRV9fIC1VQlVJ
TERJTkdfR1RLX18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tC
QVNFX0h9XCJcblxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRl
ZlxuICAgIDs7XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztc
biopXG4gICAgZXhpdCAxXG5lc2FjXG4iOworCQkJc2hlbGxTY3JpcHQgPSAiV0tCQVNFX0g9JHtU
QVJHRVRfQlVJTERfRElSfS8ke1BSSVZBVEVfSEVBREVSU19GT0xERVJfUEFUSH0vV0tCYXNlLmhc
blxudW5pZmRlZiAtQiAtRF9fQVBQTEVfXyAtVUJVSUxESU5HX0dUS19fIC1VQlVJTERJTkdfV1BF
X18gLVVVU0VfU09VUCAtbyBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZiBcIiR7V0tCQVNFX0h9XCJc
blxuY2FzZSAkPyBpblxuMClcbiAgICBybSBcIiR7V0tCQVNFX0h9XCIudW5pZmRlZlxuICAgIDs7
XG4xKVxuICAgIG12IFwiJHtXS0JBU0VfSH1cInsudW5pZmRlZix9XG4gICAgOztcbiopXG4gICAg
ZXhpdCAxXG5lc2FjXG4iOwogCQl9OwogCQkzN0U1MzEwMTFCMjM5MTA5MDA3NEYwREYgLyogQ29w
eSBpT1MgU2FuZGJveCBQcm9maWxlcyBmb3IgTWFudWFsIFNhbmRib3hpbmcgKi8gPSB7CiAJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyUHJlZml4LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyUHJlZml4LmgKaW5kZXgg
NTc1MDliOTdhNGMuLmUyYmU4MDlkOGY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyUHJlZml4LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0MlByZWZpeC5oCkBAIC01Nyw3
ICs1Nyw3IEBACiAKICNlbmRpZgogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oV1BFKQogI2RlZmluZSBFTkFCTEVfU0hBUkVBQkxFX1JFU09VUkNFIDEK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggYzkxYjQ1YTljNTEuLjA4YTY4
ZDA3OTg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC0yOTcsNyArMjk3LDcgQEAgdm9p
ZCBXZWJFZGl0b3JDbGllbnQ6OnJlZG8oKQogICAgIG1fcGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRvKHN0YXRpY19jYXN0PHVpbnQzMl90PihXZWJQ
YWdlUHJveHk6OlJlZG8pKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RXhlY3V0ZVVuZG9SZWRv
OjpSZXBseShyZXN1bHQpKTsKIH0KIAotI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShD
T0NPQSkKKyNpZiAhUExBVEZPUk0oR1RLKSAmJiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9S
TShXUEUpCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlS2V5Ym9hcmRFdmVudChLZXlib2Fy
ZEV2ZW50KiBldmVudCkKIHsKICAgICBpZiAobV9wYWdlLT5oYW5kbGVFZGl0aW5nS2V5Ym9hcmRF
dmVudChldmVudCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDU3ODFj
ODZkMmM2Li5lZjY2ZTU4ZTZiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAK
QEAgLTE4MDIsNCArMTgwMiwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpmaW5pc2hl
ZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBTaGFyZWRCdQogICAgIH0KIH0K
IAorYm9vbCBXZWJGcmFtZUxvYWRlckNsaWVudDo6c2hvdWxkUGFpbnRCcm9rZW5JbWFnZShjb25z
dCBXZWJDb3JlOjpVUkwmKSBjb25zdAoreworI2lmIFBMQVRGT1JNKFdQRSkKKyAgICByZXR1cm4g
ZmFsc2U7CisjZWxzZQorICAgIHJldHVybiB0cnVlOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IDIxMmYxMGZkZGUx
Li4zZjAzZTY5MzlmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjYyLDYg
KzI2Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0
IFdlYkNvcmU6OkxpbmtJY29uJiwgdWludDY0X3QgY2FsbGJhY2tJRCkgZmluYWw7CiAgICAgdm9p
ZCBmaW5pc2hlZExvYWRpbmdJY29uKHVpbnQ2NF90IGxvYWRJZGVudGlmaWVyLCBXZWJDb3JlOjpT
aGFyZWRCdWZmZXIqKSBmaW5hbDsKIAorICAgIGJvb2wgc2hvdWxkUGFpbnRCcm9rZW5JbWFnZShj
b25zdCBXZWJDb3JlOjpVUkwmKSBjb25zdCBvdmVycmlkZTsKKwogICAgIFdlYkZyYW1lKiBtX2Zy
YW1lOwogICAgIFJlZlB0cjxQbHVnaW5WaWV3PiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hh
c1NlbnRSZXNwb25zZVRvUGx1Z2luVmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVz
LmNwcAppbmRleCA4MjMyOTBkZjQyNC4uMWFhMmQ4YmVlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAKQEAgLTM3NSw0ICszNzUsMzEgQEAgUmVmPFNlbGVjdGlvbkRhdGE+
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6cmVhZEZyb21DbGlwYm9hcmQoY29uc3QgU3RyaW5nJiBw
YXN0ZWIKIAogI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKIAorI2lmIFBMQVRGT1JNKFdQRSkKKy8v
IFBhc3RlYm9hcmRTdHJhdGVneQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Z2V0VHlw
ZXMoVmVjdG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigp
LnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJv
YXJkUHJveHk6OkdldFBhc3RlYm9hcmRUeXBlcygpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFBy
b3h5OjpHZXRQYXN0ZWJvYXJkVHlwZXM6OlJlcGx5KHR5cGVzKSwgMCk7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpCit7CisgICAgU3RyaW5nIHZhbHVlOworICAg
IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRT
eW5jKE1lc3NhZ2VzOjpXZWJQYXN0ZWJvYXJkUHJveHk6OlJlYWRTdHJpbmdGcm9tUGFzdGVib2Fy
ZChpbmRleCwgcGFzdGVib2FyZFR5cGUpLCBNZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpS
ZWFkU3RyaW5nRnJvbVBhc3RlYm9hcmQ6OlJlcGx5KHZhbHVlKSwgMCk7CisgICAgcmV0dXJuIHZh
bHVlOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3RlYm9hcmQo
Y29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmIGNvbnRlbnQpCit7CisgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkucGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpXcml0ZVdlYkNvbnRlbnRUb1Bhc3RlYm9hcmQoY29u
dGVudCksIDApOworfQorCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6d3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0KQor
eworICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OldlYlBhc3RlYm9hcmRQcm94eTo6V3JpdGVTdHJpbmdUb1Bhc3RlYm9h
cmQocGFzdGVib2FyZFR5cGUsIHRleHQpLCAwKTsKK30KKworI2VuZGlmIC8vIFBMQVRGT1JNKFdQ
RSkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMu
aAppbmRleCA0MTkzOGVkOWViMS4uYWYwZjFhMzA0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaApAQCAtODksMTAgKzg5LDE4IEBAIHByaXZhdGU6CiAgICAgbG9uZyBzZXRQYXRo
bmFtZXNGb3JUeXBlKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiwgY29uc3QgU3RyaW5nJiBwYXN0ZWJv
YXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAgICAgbG9u
ZyBzZXRTdHJpbmdGb3JUeXBlKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogI2VuZGlmCisK
ICNpZiBQTEFURk9STShHVEspCiAgICAgdm9pZCB3cml0ZVRvQ2xpcGJvYXJkKGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFdlYkNvcmU6OlNlbGVjdGlvbkRhdGEmKSBvdmVycmlk
ZTsKICAgICBSZWY8V2ViQ29yZTo6U2VsZWN0aW9uRGF0YT4gcmVhZEZyb21DbGlwYm9hcmQoY29u
c3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CiAjZW5kaWYKKworI2lmIFBMQVRG
T1JNKFdQRSkKKyAgICB2b2lkIGdldFR5cGVzKFZlY3RvcjxTdHJpbmc+JiB0eXBlcykgb3ZlcnJp
ZGU7CisgICAgU3RyaW5nIHJlYWRTdHJpbmdGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgsIGNvbnN0
IFN0cmluZyYgcGFzdGVib2FyZFR5cGUpIG92ZXJyaWRlOworICAgIHZvaWQgd3JpdGVUb1Bhc3Rl
Ym9hcmQoY29uc3QgV2ViQ29yZTo6UGFzdGVib2FyZFdlYkNvbnRlbnQmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIHdyaXRlVG9QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNv
bnN0IFN0cmluZyYpIG92ZXJyaWRlOworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
d3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYkNvbnRleHRNZW51Q2xpZW50V1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZWQwMzRiMDI2NzMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJD
b250ZXh0TWVudUNsaWVudFdQRS5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViQ29udGV4dE1lbnVDbGllbnQuaCIKKworI2lmIEVOQUJMRShDT05URVhUX01F
TlVTKQorCisjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6bG9va1VwSW5EaWN0aW9uYXJ5
KFdlYkNvcmU6OkZyYW1lKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdl
YkNvbnRleHRNZW51Q2xpZW50Ojppc1NwZWFraW5nKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBXZWJDb250ZXh0TWVudUNsaWVudDo6c3Bl
YWsoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIFdl
YkNvbnRleHRNZW51Q2xpZW50OjpzdG9wU3BlYWtpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKENPTlRF
WFRfTUVOVVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L3dwZS9XZWJFZGl0b3JDbGllbnRXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC93cGUvV2ViRWRpdG9yQ2xpZW50V1BFLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uYmRjYTMwMjRjZWQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJFZGl0
b3JDbGllbnRXUEUuY3BwCkBAIC0wLDAgKzEsMjQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJXZWJFZGl0b3JDbGllbnQuaCIKKworI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0VkaXRv
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnROYW1lcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL05vZGUuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dpbmRvd3NLZXlib2FyZENvZGVzLmg+
CisjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworLy8gVGhlIGlkZWEgZm9yIHRoZSBhcnJheS9t
YXAgYmVsb3cgY29tZXMgZnJvbSBCbGluaydzIEVkaXRpbmdCZWhhdmlvci5jcHAuCisKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5ICA9IDEgPDwgMDsKK3N0YXRpYyBjb25zdCB1bnNpZ25l
ZCBBbHRLZXkgICA9IDEgPDwgMTsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEg
PDwgMjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBNZXRhS2V5ICA9IDEgPDwgMzsKKworLy8gS2V5
cyB3aXRoIHNwZWNpYWwgbWVhbmluZy4gVGhlc2Ugd2lsbCBiZSBkZWxlZ2F0ZWQgdG8gdGhlIGVk
aXRvciB1c2luZworLy8gdGhlIGV4ZWNDb21tYW5kKCkgbWV0aG9kCitzdHJ1Y3QgS2V5RG93bkVu
dHJ5IHsKKyAgICB1bnNpZ25lZCB2aXJ0dWFsS2V5OworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsK
KyAgICBjb25zdCBjaGFyKiBuYW1lOworfTsKKworc3RydWN0IEtleVByZXNzRW50cnkgeworICAg
IHVuc2lnbmVkIGNoYXJDb2RlOworICAgIHVuc2lnbmVkIG1vZGlmaWVyczsKKyAgICBjb25zdCBj
aGFyKiBuYW1lOworfTsKKworc3RhdGljIGNvbnN0IEtleURvd25FbnRyeSBrZXlEb3duRW50cmll
c1tdID0geworICAgIHsgVktfTEVGVCwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlTGVmdCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19MRUZULCAgIFNoaWZ0
S2V5LCAgICAgICAgICAgIk1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX0xFRlQsICAgQ3RybEtleSwgICAgICAgICAgICAiTW92ZVdvcmRMZWZ0IiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTEVGVCwgICBDdHJsS2V5IHwg
U2hpZnRLZXksCisgICAgICAgICJNb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JJR0hULCAgMCwg
ICAgICAgICAgICAgICAgICAiTW92ZVJpZ2h0IiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB9LAorICAgIHsgVktfUklHSFQsICBTaGlmdEtleSwgICAgICAgICAgICJNb3ZlUmlnaHRBbmRN
b2RpZnlTZWxlY3Rpb24iICAgICAgICAgICAgIH0sCisgICAgeyBWS19SSUdIVCwgIEN0cmxLZXks
ICAgICAgICAgICAgIk1vdmVXb3JkUmlnaHQiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX1JJR0hULCAgQ3RybEtleSB8IFNoaWZ0S2V5LCAiTW92ZVdvcmRSaWdodEFuZE1v
ZGlmeVNlbGVjdGlvbiIgICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICAwLCAgICAgICAgICAg
ICAgICAgICJNb3ZlVXAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAg
eyBWS19VUCwgICAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1vdmVVcEFuZE1vZGlmeVNlbGVjdGlv
biIgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1BSSU9SLCAgU2hpZnRLZXksICAgICAgICAg
ICAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAgICAgICB9LAorICAgIHsgVktf
RE9XTiwgICAwLCAgICAgICAgICAgICAgICAgICJNb3ZlRG93biIgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIH0sCisgICAgeyBWS19ET1dOLCAgIFNoaWZ0S2V5LCAgICAgICAgICAgIk1v
dmVEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX05FWFQs
ICAgU2hpZnRLZXksICAgICAgICAgICAiTW92ZVBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uIiAg
ICAgICAgICB9LAorICAgIHsgVktfVVAsICAgICBDdHJsS2V5IHwgU2hpZnRLZXksICJNb3ZlUGFy
YWdyYXBoQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24iIH0sCisgICAgeyBWS19ET1dOLCAgIEN0
cmxLZXkgfCBTaGlmdEtleSwgIk1vdmVQYXJhZ3JhcGhGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9u
IiAgfSwKKyAgICB7IFZLX1BSSU9SLCAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVBhZ2VVcCIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfTkVYVCwgICAwLCAgICAg
ICAgICAgICAgICAgICJNb3ZlUGFnZURvd24iICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyBWS19IT01FLCAgIDAsICAgICAgICAgICAgICAgICAgIk1vdmVUb0JlZ2lubmluZ09m
TGluZSIgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgU2hpZnRLZXksCisg
ICAgICAgICJNb3ZlVG9CZWdpbm5pbmdPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0hPTUUsICAgQ3RybEtleSwgICAgICAg
ICAgICAiTW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudCIgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfSE9NRSwgICBDdHJsS2V5IHwgU2hpZnRLZXksCisgICAgICAgICJNb3ZlVG9CZWdpbm5pbmdP
ZkRvY3VtZW50QW5kTW9kaWZ5U2VsZWN0aW9uIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwK
KyAgICB7IFZLX0VORCwgICAgMCwgICAgICAgICAgICAgICAgICAiTW92ZVRvRW5kT2ZMaW5lIiAg
ICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfRU5ELCAgICBTaGlmdEtleSwgICAg
ICAgICAgICJNb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24iICAgICAgIH0sCisgICAg
eyBWS19FTkQsICAgIEN0cmxLZXksICAgICAgICAgICAgIk1vdmVUb0VuZE9mRG9jdW1lbnQiICAg
ICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0VORCwgICAgQ3RybEtleSB8IFNoaWZ0S2V5
LAorICAgICAgICAiTW92ZVRvRW5kT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlvbiIgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19CQUNLLCAgIDAsICAgICAgICAg
ICAgICAgICAgIkRlbGV0ZUJhY2t3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAg
ICB7IFZLX0JBQ0ssICAgU2hpZnRLZXksICAgICAgICAgICAiRGVsZXRlQmFja3dhcmQiICAgICAg
ICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCAwLCAgICAgICAgICAgICAg
ICAgICJEZWxldGVGb3J3YXJkIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBW
S19CQUNLLCAgIEN0cmxLZXksICAgICAgICAgICAgIkRlbGV0ZVdvcmRCYWNrd2FyZCIgICAgICAg
ICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0RFTEVURSwgQ3RybEtleSwgICAgICAgICAgICAi
RGVsZXRlV29yZEZvcndhcmQiICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ0InLCAg
ICAgICAgIEN0cmxLZXksICAgICAgICAgICJUb2dnbGVCb2xkIiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIH0sCisgICAgeyAnSScsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIlRvZ2ds
ZUl0YWxpYyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdVJywgICAgICAg
ICBDdHJsS2V5LCAgICAgICAgICAiVG9nZ2xlVW5kZXJsaW5lIiAgICAgICAgICAgICAgICAgICAg
ICAgICB9LAorICAgIHsgVktfRVNDQVBFLCAwLCAgICAgICAgICAgICAgICAgICJDYW5jZWwiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19PRU1fUEVSSU9ELCBD
dHJsS2V5LCAgICAgICAgIkNhbmNlbCIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fSwKKyAgICB7IFZLX1RBQiwgICAgMCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgVktfVEFCLCAgICBTaGlmdEtleSwg
ICAgICAgICAgICJJbnNlcnRCYWNrdGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisg
ICAgeyBWS19SRVRVUk4sIDAsICAgICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JFVFVSTiwgQ3RybEtleSwgICAgICAg
ICAgICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsg
VktfUkVUVVJOLCBBbHRLZXksICAgICAgICAgICAgICJJbnNlcnROZXdsaW5lIiAgICAgICAgICAg
ICAgICAgICAgICAgICAgIH0sCisgICAgeyBWS19SRVRVUk4sIEFsdEtleSB8IFNoaWZ0S2V5LCAg
Ikluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX1JF
VFVSTiwgU2hpZnRLZXksICAgICAgICAgICAiSW5zZXJ0TGluZUJyZWFrIiAgICAgICAgICAgICAg
ICAgICAgICAgICB9LAorICAgIC8vIFRoZXNlIHByb2JhYmx5IG5lZWQgaGFuZGxpbmcgc29tZXdo
ZXJlIGVsc2Ugc28gZG8gbm90IGV4ZWN1dGUgdGhlbS4gVGhlCisgICAgLy8gJ0N1dCcgY29tbWFu
ZCBpcyByZW1vdmluZyB0ZXh0IHNvIGxldCdzIGF2b2lkIGxvc2luZyB0aGUgdXNlciBsb3Npbmcg
ZGF0YQorICAgIC8vIHVudGlsIHdlIGltcGxlbWVudCBjbGlwYm9hcmQgc3VwcG9ydCB3aGVyZXZl
ciBpdCBzaG91bGQgYmUuCisgICAgeyBWS19JTlNFUlQsIEN0cmxLZXksICAgICAgICAgICAgIkNv
cHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7IFZLX0lOU0VS
VCwgU2hpZnRLZXksICAgICAgICAgICAiUGFzdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgVktfREVMRVRFLCBTaGlmdEtleSwgICAgICAgICAgICJDdXQiICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnQycsICAgICAgICAg
Q3RybEtleSwgICAgICAgICAgIkNvcHkiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7ICdWJywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUGFzdGUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1YnLCAgICAgICAgIEN0cmxL
ZXkgfCBTaGlmdEtleSwgIlBhc3RlQW5kTWF0Y2hTdHlsZSIgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyAnWCcsICAgICAgICAgQ3RybEtleSwgICAgICAgICAgIkN1dCIgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdBJywgICAgICAgICBDdHJsS2V5LCAg
ICAgICAgICAiU2VsZWN0QWxsIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAg
IHsgJ1onLCAgICAgICAgIEN0cmxLZXksICAgICAgICAgICJVbmRvIiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnWicsICAgICAgICAgQ3RybEtleSB8IFNoaWZ0
S2V5LCAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdZ
JywgICAgICAgICBDdHJsS2V5LCAgICAgICAgICAiUmVkbyIgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB9LAorICAgIHsgVktfSU5TRVJULCAwLCAgICAgICAgICAgICAgICAgICJP
dmVyV3JpdGUiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCit9OworCitzdGF0aWMg
Y29uc3QgS2V5UHJlc3NFbnRyeSBrZXlQcmVzc0VudHJpZXNbXSA9IHsKKyAgICB7ICdcdCcsICAg
MCwgICAgICAgICAgICAgICAgICAiSW5zZXJ0VGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB9LAorICAgIHsgJ1x0JywgICBTaGlmdEtleSwgICAgICAgICAgICJJbnNlcnRCYWNr
dGFiIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sCisgICAgeyAnXHInLCAgIDAsICAg
ICAgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfSwKKyAgICB7ICdccicsICAgQ3RybEtleSwgICAgICAgICAgICAiSW5zZXJ0TmV3bGluZSIg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorICAgIHsgJ1xyJywgICBTaGlmdEtleSwg
ICAgICAgICAgICJJbnNlcnRMaW5lQnJlYWsiICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0s
CisgICAgeyAnXHInLCAgIEFsdEtleSwgICAgICAgICAgICAgIkluc2VydE5ld2xpbmUiICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfSwKKyAgICB7ICdccicsICAgQWx0S2V5IHwgU2hpZnRL
ZXksICAiSW5zZXJ0TmV3bGluZSIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LAorfTsK
Kworc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNvbnN0IEtleWJvYXJkRXZl
bnQmIGV2ZW50KQoreworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxIYXNoTWFwPGludCwgY29u
c3QgY2hhcio+PiBrZXlEb3duQ29tbWFuZHNNYXA7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PEhhc2hNYXA8aW50LCBjb25zdCBjaGFyKj4+IGtleVByZXNzQ29tbWFuZHNNYXA7CisKKyAgICBp
ZiAoa2V5RG93bkNvbW1hbmRzTWFwLmdldCgpLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgV1RGX0FSUkFZX0xFTkdUSChrZXlEb3duRW50cmllcyk7IGkrKykK
KyAgICAgICAgICAgIGtleURvd25Db21tYW5kc01hcC5nZXQoKS5zZXQoa2V5RG93bkVudHJpZXNb
aV0ubW9kaWZpZXJzIDw8IDE2IHwga2V5RG93bkVudHJpZXNbaV0udmlydHVhbEtleSwga2V5RG93
bkVudHJpZXNbaV0ubmFtZSk7CisgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBXVEZf
QVJSQVlfTEVOR1RIKGtleVByZXNzRW50cmllcyk7IGkrKykKKyAgICAgICAgICAgIGtleVByZXNz
Q29tbWFuZHNNYXAuZ2V0KCkuc2V0KGtleVByZXNzRW50cmllc1tpXS5tb2RpZmllcnMgPDwgMTYg
fCBrZXlQcmVzc0VudHJpZXNbaV0uY2hhckNvZGUsIGtleVByZXNzRW50cmllc1tpXS5uYW1lKTsK
KyAgICB9CisKKyAgICB1bnNpZ25lZCBtb2RpZmllcnMgPSAwOworICAgIGlmIChldmVudC5zaGlm
dEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gU2hpZnRLZXk7CisgICAgaWYgKGV2ZW50LmFs
dEtleSgpKQorICAgICAgICBtb2RpZmllcnMgfD0gQWx0S2V5OworICAgIGlmIChldmVudC5jdHJs
S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBDdHJsS2V5OworICAgIGlmIChldmVudC5tZXRh
S2V5KCkpCisgICAgICAgIG1vZGlmaWVycyB8PSBNZXRhS2V5OworCisgICAgaWYgKGV2ZW50LnR5
cGUoKSA9PSBldmVudE5hbWVzKCkua2V5ZG93bkV2ZW50KSB7CisgICAgICAgIGludCBtYXBLZXkg
PSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5rZXlDb2RlKCk7CisgICAgICAgIHJldHVybiBtYXBL
ZXkgPyBrZXlEb3duQ29tbWFuZHNNYXAuZ2V0KCkuZ2V0KG1hcEtleSkgOiBudWxscHRyOworICAg
IH0KKworICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldmVudC5jaGFyQ29kZSgp
OworICAgIHJldHVybiBtYXBLZXkgPyBrZXlQcmVzc0NvbW1hbmRzTWFwLmdldCgpLmdldChtYXBL
ZXkpIDogbnVsbHB0cjsKK30KKworc3RhdGljIHZvaWQgaGFuZGxlS2V5UHJlc3MoRnJhbWUmIGZy
YW1lLCBLZXlib2FyZEV2ZW50JiBldmVudCwgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBw
bGF0Zm9ybUV2ZW50KQoreworICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGludGVycHJldEtleUV2
ZW50KGV2ZW50KTsKKworICAgIGlmICghY29tbWFuZE5hbWUuaXNFbXB0eSgpKSB7CisgICAgICAg
IGZyYW1lLmVkaXRvcigpLmNvbW1hbmQoY29tbWFuZE5hbWUpLmV4ZWN1dGUoKTsKKyAgICAgICAg
ZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIERvbid0IGluc2VydCBudWxsIG9yIGNvbnRyb2wgY2hhcmFjdGVycyBhcyB0aGV5IGNhbiBy
ZXN1bHQgaW4gdW5leHBlY3RlZCBiZWhhdmlvdXIKKyAgICBpZiAoZXZlbnQuY2hhckNvZGUoKSA8
ICcgJykKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG9uJ3QgaW5zZXJ0IGFueXRoaW5nIGlm
IGEgbW9kaWZpZXIgaXMgcHJlc3NlZCBhbmQgaXQgaGFzIG5vdCBiZWVuIGhhbmRsZWQgeWV0Cisg
ICAgaWYgKHBsYXRmb3JtRXZlbnQuY3RybEtleSgpIHx8IHBsYXRmb3JtRXZlbnQuYWx0S2V5KCkp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChmcmFtZS5lZGl0b3IoKS5pbnNlcnRUZXh0KHBs
YXRmb3JtRXZlbnQudGV4dCgpLCAmZXZlbnQpKQorICAgICAgICBldmVudC5zZXREZWZhdWx0SGFu
ZGxlZCgpOworfQorCitzdGF0aWMgdm9pZCBoYW5kbGVLZXlEb3duKEZyYW1lJiBmcmFtZSwgS2V5
Ym9hcmRFdmVudCYgZXZlbnQsIGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpCit7CisgICAg
U3RyaW5nIGNvbW1hbmROYW1lID0gaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQpOworICAgIGlmIChj
b21tYW5kTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIFdlIHNob3Vs
ZG4ndCBpbnNlcnQgdGV4dCB0aHJvdWdoIHRoZSBlZGl0b3IuIExldCBXZWJDb3JlIGRlY2lkZQor
ICAgIC8vIGhvdyB0byBoYW5kbGUgdGhhdCAoc2F5LCBUYWIsIHdoaWNoIGNvdWxkIGFsc28gYmUg
dXNlZCB0bworICAgIC8vIGNoYW5nZSBmb2N1cykuCisgICAgRWRpdG9yOjpDb21tYW5kIGNvbW1h
bmQgPSBmcmFtZS5lZGl0b3IoKS5jb21tYW5kKGNvbW1hbmROYW1lKTsKKyAgICBpZiAoY29tbWFu
ZC5pc1RleHRJbnNlcnRpb24oKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgY29tbWFuZC5leGVj
dXRlKCk7CisgICAgZXZlbnQuc2V0RGVmYXVsdEhhbmRsZWQoKTsKK30KKwordm9pZCBXZWJFZGl0
b3JDbGllbnQ6OmhhbmRsZUtleWJvYXJkRXZlbnQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogZXZl
bnQpCit7CisgICAgTm9kZSogbm9kZSA9IGV2ZW50LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAg
QVNTRVJUKG5vZGUpOworICAgIEZyYW1lKiBmcmFtZSA9IG5vZGUtPmRvY3VtZW50KCkuZnJhbWUo
KTsKKyAgICBBU1NFUlQoZnJhbWUpOworCisgICAgLy8gRklYTUU6IFJlb3JkZXIgdGhlIGNoZWNr
cyBpbiBhIG1vcmUgc2Vuc2libGUgd2F5LgorCisgICAgY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2
ZW50KiBwbGF0Zm9ybUV2ZW50ID0gZXZlbnQtPmtleUV2ZW50KCk7CisgICAgaWYgKCFwbGF0Zm9y
bUV2ZW50KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBJZiB0aGlzIHdhcyBhbiBJTUUgZXZl
bnQgZG9uJ3QgZG8gYW55dGhpbmcuCisgICAgaWYgKHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0
dWFsS2V5Q29kZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIHJldHVybjsKKworICAgIC8v
IERvbid0IGFsbG93IHRleHQgaW5zZXJ0aW9uIGZvciBub2RlcyB0aGF0IGNhbm5vdCBlZGl0Lgor
ICAgIGlmICghZnJhbWUtPmVkaXRvcigpLmNhbkVkaXQoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gVGhpcyBpcyBqdXN0IGEgbm9ybWFsIHRleHQgaW5zZXJ0aW9uLCBzbyB3YWl0IHRvIGV4
ZWN1dGUgdGhlIGluc2VydGlvbgorICAgIC8vIHVudGlsIGEga2V5cHJlc3MgZXZlbnQgaGFwcGVu
cy4gVGhpcyB3aWxsIGVuc3VyZSB0aGF0IHRoZSBpbnNlcnRpb24gd2lsbCBub3QKKyAgICAvLyBi
ZSByZWZsZWN0ZWQgaW4gdGhlIGNvbnRlbnRzIG9mIHRoZSBmaWVsZCB1bnRpbCB0aGUga2V5dXAg
RE9NIGV2ZW50LgorICAgIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5rZXlwcmVz
c0V2ZW50KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5UHJlc3MoKmZyYW1lLCAqZXZlbnQsICpw
bGF0Zm9ybUV2ZW50KTsKKyAgICBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCkua2V5
ZG93bkV2ZW50KQorICAgICAgICByZXR1cm4gaGFuZGxlS2V5RG93bigqZnJhbWUsICpldmVudCwg
KnBsYXRmb3JtRXZlbnQpOworfQorCit2b2lkIFdlYkVkaXRvckNsaWVudDo6aGFuZGxlSW5wdXRN
ZXRob2RLZXlkb3duKFdlYkNvcmU6OktleWJvYXJkRXZlbnQqIGV2ZW50KQoreworICAgIGNvbnN0
IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCogcGxhdGZvcm1FdmVudCA9IGV2ZW50LT5rZXlFdmVudCgp
OworICAgIGlmIChwbGF0Zm9ybUV2ZW50ICYmIHBsYXRmb3JtRXZlbnQtPndpbmRvd3NWaXJ0dWFs
S2V5Q29kZSgpID09IFZLX1BST0NFU1NLRVkpCisgICAgICAgIGV2ZW50LT5wcmV2ZW50RGVmYXVs
dCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L3dwZS9XZWJQb3B1cE1lbnVX
UEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWI4MzdiMGE0
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvd3BlL1dlYlBvcHVwTWVudVdQRS5jcHAKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmln
LmgiCisjaW5jbHVkZSAiV2ViUG9wdXBNZW51LmgiCisKKyNpbmNsdWRlIDxXZWJDb3JlL05vdElt
cGxlbWVudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIFdlYlBvcHVwTWVudTo6
c2V0VXBQbGF0Zm9ybURhdGEoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFBsYXRmb3JtUG9wdXBN
ZW51RGF0YSYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9UaHJl
YWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKaW5kZXggNjBlOTE2Nzk5YjMuLmQzZGY0
NmExODdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29v
cmRpbmF0ZWRHcmFwaGljcy9UaHJlYWRlZENvb3JkaW5hdGVkTGF5ZXJUcmVlSG9zdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3QuY3BwCkBAIC03NCwxMCArNzQsMTAgQEAg
VGhyZWFkZWRDb29yZGluYXRlZExheWVyVHJlZUhvc3Q6OlRocmVhZGVkQ29vcmRpbmF0ZWRMYXll
clRyZWVIb3N0KFdlYlBhZ2UmIHdlYlAKICAgICAgICAgLy8gRG8gbm90IGRvIGZyYW1lIHN5bmMg
d2hlbiByZW5kZXJpbmcgb2Zmc2NyZWVuIGluIHRoZSB3ZWIgcHJvY2VzcyB0byBlbnN1cmUgdGhh
dCBTd2FwQnVmZmVycyBuZXZlciBibG9ja3MuCiAgICAgICAgIC8vIFJlbmRlcmluZyB0byB0aGUg
YWN0dWFsIHNjcmVlbiB3aWxsIGhhcHBlbiBsYXRlciBhbnl3YXkgc2luY2UgdGhlIFVJIHByb2Nl
c3Mgc2NoZWR1bGVzIGEgcmVkcmF3IGZvciBldmVyeSB1cGRhdGUsCiAgICAgICAgIC8vIHRoZSBj
b21wb3NpdG9yIHdpbGwgdGFrZSBjYXJlIG9mIHN5bmNpbmcgdG8gdmJsYW5rLgotICAgICAgICBt
X2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JDbGll
bnQsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRvdygpLCBUaHJlYWRl
ZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50RmxhZ3MpOworICAgICAg
ICBtX2NvbXBvc2l0b3IgPSBUaHJlYWRlZENvbXBvc2l0b3I6OmNyZWF0ZShtX2NvbXBvc2l0b3JD
bGllbnQsIHdlYlBhZ2UsIHNjYWxlZFNpemUsIHNjYWxlRmFjdG9yLCBtX3N1cmZhY2UtPndpbmRv
dygpLCBUaHJlYWRlZENvbXBvc2l0b3I6OlNob3VsZERvRnJhbWVTeW5jOjpZZXMsIHBhaW50Rmxh
Z3MpOwogICAgICAgICBtX2xheWVyVHJlZUNvbnRleHQuY29udGV4dElEID0gbV9zdXJmYWNlLT5z
dXJmYWNlSUQoKTsKICAgICB9IGVsc2UKLSAgICAgICAgbV9jb21wb3NpdG9yID0gVGhyZWFkZWRD
b21wb3NpdG9yOjpjcmVhdGUobV9jb21wb3NpdG9yQ2xpZW50LCBzY2FsZWRTaXplLCBzY2FsZUZh
Y3Rvcik7CisgICAgICAgIG1fY29tcG9zaXRvciA9IFRocmVhZGVkQ29tcG9zaXRvcjo6Y3JlYXRl
KG1fY29tcG9zaXRvckNsaWVudCwgd2ViUGFnZSwgc2NhbGVkU2l6ZSwgc2NhbGVGYWN0b3IpOwog
CiAgICAgZGlkQ2hhbmdlVmlld3BvcnQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuY3BwCmluZGV4IDJlNzgwZDkxYmU1Li41ZjA5M2Fj
N2I1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdp
bmdBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2lu
Z0FyZWEuY3BwCkBAIC0zNyw2ICszNyw4IEBACiAjaWYgUExBVEZPUk0oQ09DT0EpCiAjaW5jbHVk
ZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEuaCIKICNpbmNsdWRlICJUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oIgorI2VsaWYgUExBVEZPUk0oV1BFKQorI2luY2x1ZGUgIkRyYXdp
bmdBcmVhV1BFLmgiCiAjZWxzZQogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW1wbC5oIgogI2VuZGlm
CkBAIC01NSw2ICs1Nyw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYT4gRHJhd2luZ0Fy
ZWE6OmNyZWF0ZShXZWJQYWdlJiB3ZWJQYWdlLCBjb25zdCBXZWJQYWdlCiAjZW5kaWYKICAgICBj
YXNlIERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZToKICAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWE+KHdlYlBhZ2UsIHBhcmFtZXRl
cnMpOworI2VsaWYgUExBVEZPUk0oV1BFKQorICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlV1BFOgor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxEcmF3aW5nQXJlYVdQRT4od2ViUGFnZSwg
cGFyYW1ldGVycyk7CiAjZWxzZQogICAgIGNhc2UgRHJhd2luZ0FyZWFUeXBlSW1wbDoKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8RHJhd2luZ0FyZWFJbXBsPih3ZWJQYWdlLCBwYXJh
bWV0ZXJzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNw
cAppbmRleCBjNzIzOTY5MmMzYy4uMDc0NDdiZjAzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTM0OTUsNyArMzQ5NSw3IEBAIE5vdGlm
aWNhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlciogV2ViUGFnZTo6bm90aWZpY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hCiAgICAgcmV0dXJuIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyLmdldCgpOwogfQogCi0jaWYgIVBMQVRGT1JNKEdUSykgJiYgIVBMQVRGT1JN
KENPQ09BKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShDT0NPQSkgJiYgIVBMQVRG
T1JNKFdQRSkKIGJvb2wgV2ViUGFnZTo6aGFuZGxlRWRpdGluZ0tleWJvYXJkRXZlbnQoS2V5Ym9h
cmRFdmVudCogZXZ0KQogewogICAgIE5vZGUqIG5vZGUgPSBldnQtPnRhcmdldCgpLT50b05vZGUo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IGFi
OGM3ODBjYjVmLi5hNWNlNjdhYzdhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5oCkBAIC0xMDE5LDcgKzEwMTksNyBAQCBwcml2YXRlOgogI2VuZGlmCiAj
ZW5kaWYKIAotI2lmICFQTEFURk9STShDT0NPQSkKKyNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQ
TEFURk9STShXUEUpCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2ZW50KGNv
bnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjRlMjNkMzQwZDkx
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dw
ZS9Db21wb3NpdGluZ01hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIkNvbXBvc2l0aW5nTWFuYWdlci5oIgorCisjaW5jbHVkZSAiQ29tcG9zaXRpbmdN
YW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYlBhZ2UuaCIKKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK0NvbXBvc2l0aW5nTWFuYWdlcjo6fkNvbXBvc2l0aW5nTWFuYWdlcigpCit7
CisgICAgQVNTRVJUKG1fY29ubmVjdGlvbkZkID09IC0xKTsKK30KKwordm9pZCBDb21wb3NpdGlu
Z01hbmFnZXI6OmVzdGFibGlzaENvbm5lY3Rpb24oV2ViUGFnZSYgd2ViUGFnZSkKK3sKKyAgICBJ
UEM6OkF0dGFjaG1lbnQgY29ubmVjdGlvbkhhbmRsZTsKKyAgICB3ZWJQYWdlLnNlbmRTeW5jKE1l
c3NhZ2VzOjpDb21wb3NpdGluZ01hbmFnZXJQcm94eTo6RXN0YWJsaXNoQ29ubmVjdGlvbigpLAor
ICAgICAgICBNZXNzYWdlczo6Q29tcG9zaXRpbmdNYW5hZ2VyUHJveHk6OkVzdGFibGlzaENvbm5l
Y3Rpb246OlJlcGx5KGNvbm5lY3Rpb25IYW5kbGUpKTsKKworICAgIG1fY29ubmVjdGlvbkZkID0g
Y29ubmVjdGlvbkhhbmRsZS5yZWxlYXNlRmlsZURlc2NyaXB0b3IoKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL3dwZS9Db21wb3NpdGluZ01hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uMjFlMjc5MjIxOWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0NvbXBvc2l0aW5nTWFuYWdlci5oCkBAIC0wLDAg
KzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2U7CisKK2NsYXNzIENvbXBvc2l0aW5nTWFuYWdl
ciBmaW5hbCB7CisgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoQ29tcG9zaXRpbmdNYW5hZ2VyKTsK
K3B1YmxpYzoKKyAgICBDb21wb3NpdGluZ01hbmFnZXIoKSA9IGRlZmF1bHQ7CisgICAgfkNvbXBv
c2l0aW5nTWFuYWdlcigpOworCisgICAgdm9pZCBlc3RhYmxpc2hDb25uZWN0aW9uKFdlYlBhZ2Um
KTsKKyAgICBpbnQgcmVsZWFzZUNvbm5lY3Rpb25GZCgpIHsgcmV0dXJuIHN0ZDo6ZXhjaGFuZ2Uo
bV9jb25uZWN0aW9uRmQsIC0xKTsgfTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9jb25uZWN0aW9u
RmQgeyAtMSB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL0RyYXdpbmdBcmVhV1BFLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFXUEUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4zNDQ3YWM4Y2IwZAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2lu
Z0FyZWFXUEUuY3BwCkBAIC0wLDAgKzEsMTkyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJE
cmF3aW5nQXJlYVdQRS5oIgorCisjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eU1lc3NhZ2VzLmgi
CisjaW5jbHVkZSAiV2ViUGFnZS5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzS2V5cy5oIgor
I2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvTWFpbkZyYW1lLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CitEcmF3aW5nQXJlYVdQRTo6RHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYgd2ViUGFnZSwgY29uc3Qg
V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpCisgICAgOiBEcmF3aW5nQXJlYShEcmF3aW5nQXJl
YVR5cGVXUEUsIHdlYlBhZ2UpCit7CisgICAgd2ViUGFnZS5jb3JlUGFnZSgpLT5zZXR0aW5ncygp
LnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKHRydWUpOworICAgIGVudGVyQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUoMCk7Cit9CisKK0RyYXdpbmdBcmVhV1BFOjp+RHJhd2luZ0FyZWFXUEUoKQor
eworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpsYXllckhvc3REaWRGbHVzaExheWVycygpCit7
CisgICAgbV93ZWJQYWdlLnNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhUHJveHk6OkVudGVyQWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoMCwgbV9sYXllclRyZWVIb3N0LT5sYXllclRyZWVDb250
ZXh0KCkpKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0TmVlZHNEaXNwbGF5KCkKK3sK
KyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldE5v
bkNvbXBvc2l0ZWRDb250ZW50c05lZWREaXNwbGF5KCk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFX
UEU6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBJbnRSZWN0JiByZWN0KQoreworICAgIEFT
U0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9zdC0+c2V0Tm9uQ29tcG9z
aXRlZENvbnRlbnRzTmVlZERpc3BsYXlJblJlY3QocmVjdCk7Cit9CisKK3ZvaWQgRHJhd2luZ0Fy
ZWFXUEU6OnNjcm9sbChjb25zdCBJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBJbnRTaXplJikK
K3sKKyAgICBBU1NFUlQobV9sYXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNj
cm9sbE5vbkNvbXBvc2l0ZWRDb250ZW50cyhzY3JvbGxSZWN0KTsKK30KKwordm9pZCBEcmF3aW5n
QXJlYVdQRTo6cGFnZUJhY2tncm91bmRUcmFuc3BhcmVuY3lDaGFuZ2VkKCkKK3sKKyAgICBpZiAo
bV9sYXllclRyZWVIb3N0KQorICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnBhZ2VCYWNrZ3JvdW5k
VHJhbnNwYXJlbmN5Q2hhbmdlZCgpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpmb3JjZVJl
cGFpbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK2Jvb2wgRHJhd2luZ0FyZWFX
UEU6OmZvcmNlUmVwYWludEFzeW5jKHVpbnQ2NF90IGNhbGxiYWNrSUQpCit7CisgICAgcmV0dXJu
IG1fbGF5ZXJUcmVlSG9zdCAmJiBtX2xheWVyVHJlZUhvc3QtPmZvcmNlUmVwYWludEFzeW5jKGNh
bGxiYWNrSUQpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzZXRMYXllclRyZWVTdGF0ZUlz
RnJvemVuKGJvb2wgZnJvemVuKQoreworICAgIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbiA9IGZy
b3plbjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0UGFpbnRpbmdFbmFibGVkKGJvb2wp
Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBk
YXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCit7CisgICAg
bV93ZWJQYWdlLmNvcmVQYWdlKCktPnNldHRpbmdzKCkuc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZUNvbXBvc2l0
aW5nTW9kZUtleSgpKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6Om1haW5GcmFtZUNvbnRl
bnRTaXplQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplKQoreworICAgIGlmICht
X2xheWVyVHJlZUhvc3QpCisgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+Y29udGVudHNTaXplQ2hh
bmdlZChzaXplKTsKK30KKworR3JhcGhpY3NMYXllckZhY3RvcnkqIERyYXdpbmdBcmVhV1BFOjpn
cmFwaGljc0xheWVyRmFjdG9yeSgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAg
ICAgcmV0dXJuIG1fbGF5ZXJUcmVlSG9zdC0+Z3JhcGhpY3NMYXllckZhY3RvcnkoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6c2V0Um9vdENvbXBvc2l0
aW5nTGF5ZXIoR3JhcGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQobV9s
YXllclRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RDb21wb3NpdGluZ0xh
eWVyKGdyYXBoaWNzTGF5ZXIpOworfQorCit2b2lkIERyYXdpbmdBcmVhV1BFOjpzY2hlZHVsZUNv
bXBvc2l0aW5nTGF5ZXJGbHVzaCgpCit7CisgICAgaWYgKG1fbGF5ZXJUcmVlSG9zdCkKKyAgICAg
ICAgbV9sYXllclRyZWVIb3N0LT5zY2hlZHVsZUxheWVyRmx1c2goKTsKK30KKwordm9pZCBEcmF3
aW5nQXJlYVdQRTo6c2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2hJbW1lZGlhdGVseSgpCit7
CisgICAgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKTsKK30KKworI2lmIFVTRShSRVFV
RVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCitSZWZQdHI8V2ViQ29yZTo6RGlz
cGxheVJlZnJlc2hNb25pdG9yPiBEcmF3aW5nQXJlYVdQRTo6Y3JlYXRlRGlzcGxheVJlZnJlc2hN
b25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK3sKKyAgICBpZiAobV9sYXllclRy
ZWVIb3N0KQorICAgICAgICByZXR1cm4gbV9sYXllclRyZWVIb3N0LT5jcmVhdGVEaXNwbGF5UmVm
cmVzaE1vbml0b3IoZGlzcGxheUlEKTsKKworICAgIHJldHVybiBudWxscHRyOworfQorI2VuZGlm
CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmF0dGFjaFZpZXdPdmVybGF5R3JhcGhpY3NMYXllcihX
ZWJDb3JlOjpGcmFtZSogZnJhbWUsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIHZpZXdPdmVybGF5
Um9vdExheWVyKQoreworICAgIGlmICghZnJhbWUtPmlzTWFpbkZyYW1lKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOworICAgIG1fbGF5ZXJUcmVlSG9z
dC0+c2V0Vmlld092ZXJsYXlSb290TGF5ZXIodmlld092ZXJsYXlSb290TGF5ZXIpOworfQorCisj
aWYgVVNFKENPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEKQordm9pZCBEcmF3aW5nQXJlYVdQ
RTo6ZGlkQ2hhbmdlVmlld3BvcnRBdHRyaWJ1dGVzKFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXRl
cyYmKQoreworfQorI2VuZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVT
RShURVhUVVJFX01BUFBFUikKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRldmljZU9yUGFnZVNjYWxl
RmFjdG9yQ2hhbmdlZCgpCit7Cit9CisjZW5kaWYKKwordm9pZCBEcmF3aW5nQXJlYVdQRTo6dXBk
YXRlQmFja2luZ1N0b3JlU3RhdGUodWludDY0X3QsIGJvb2wsIGZsb2F0IGRldmljZVNjYWxlRmFj
dG9yLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzaXplLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBzY3JvbGxPZmZzZXQpCit7CisgICAgbV93ZWJQYWdlLnNldERldmljZVNjYWxlRmFjdG9yKGRl
dmljZVNjYWxlRmFjdG9yKTsKKyAgICBtX3dlYlBhZ2Uuc2V0U2l6ZShzaXplKTsKKyAgICBtX3dl
YlBhZ2UubGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX3dlYlBhZ2Uuc2Nyb2xsTWFpbkZyYW1lSWZO
b3RBdE1heFNjcm9sbFBvc2l0aW9uKHNjcm9sbE9mZnNldCk7CisKKyAgICBBU1NFUlQobV9sYXll
clRyZWVIb3N0KTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNpemVEaWRDaGFuZ2UobV93ZWJQYWdl
LnNpemUoKSk7Cit9CisKK3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmRpZFVwZGF0ZSgpCit7Cit9CisK
K3ZvaWQgRHJhd2luZ0FyZWFXUEU6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoR3Jh
cGhpY3NMYXllciogZ3JhcGhpY3NMYXllcikKK3sKKyAgICBBU1NFUlQoIW1fbGF5ZXJUcmVlSG9z
dCk7CisgICAgbV9sYXllclRyZWVIb3N0ID0gTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKG1fd2ViUGFn
ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zZXRSb290Q29tcG9zaXRpbmdMYXllcihncmFwaGlj
c0xheWVyKTsKKyAgICBtX2xheWVyVHJlZUhvc3QtPnNldFNob3VsZE5vdGlmeUFmdGVyTmV4dFNj
aGVkdWxlZExheWVyRmx1c2godHJ1ZSk7CisgICAgbV9sYXllclRyZWVIb3N0LT5zaXplRGlkQ2hh
bmdlKG1fd2ViUGFnZS5zaXplKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvRHJhd2luZ0FyZWFX
UEUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMDk5MTk3YzAyYWYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3Bl
L0RyYXdpbmdBcmVhV1BFLmgKQEAgLTAsMCArMSw5MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxNSBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkRy
YXdpbmdBcmVhLmgiCisKKyNpbmNsdWRlICJMYXllclRyZWVIb3N0LmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBEcmF3aW5nQXJlYVdQRSA6IHB1YmxpYyBEcmF3aW5nQXJlYSB7Citw
dWJsaWM6CisgICAgRHJhd2luZ0FyZWFXUEUoV2ViUGFnZSYsIGNvbnN0IFdlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnMmKTsKKyAgICB2aXJ0dWFsIH5EcmF3aW5nQXJlYVdQRSgpOworCisgICAgdm9p
ZCBsYXllckhvc3REaWRGbHVzaExheWVycygpIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIC8v
IERyYXdpbmdBcmVhCisgICAgdm9pZCBzZXROZWVkc0Rpc3BsYXkoKSBvdmVycmlkZTsKKyAgICB2
b2lkIHNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEpIG92ZXJyaWRlOworCisgICAgdm9p
ZCBwYWdlQmFja2dyb3VuZFRyYW5zcGFyZW5jeUNoYW5nZWQoKSBvdmVycmlkZTsKKyAgICB2b2lk
IGZvcmNlUmVwYWludCgpIG92ZXJyaWRlOworICAgIGJvb2wgZm9yY2VSZXBhaW50QXN5bmModWlu
dDY0X3QgY2FsbGJhY2tJRCkgb3ZlcnJpZGU7CisgICAgdm9pZCBzZXRMYXllclRyZWVTdGF0ZUlz
RnJvemVuKGJvb2wpIG92ZXJyaWRlOworICAgIGJvb2wgbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbigp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fbGF5ZXJUcmVlU3RhdGVJc0Zyb3plbjsgfQorICAg
IExheWVyVHJlZUhvc3QqIGxheWVyVHJlZUhvc3QoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBt
X2xheWVyVHJlZUhvc3QuZ2V0KCk7IH0KKworICAgIHZvaWQgc2V0UGFpbnRpbmdFbmFibGVkKGJv
b2wpIG92ZXJyaWRlOworICAgIHZvaWQgdXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVy
ZW5jZXNTdG9yZSYpIG92ZXJyaWRlOworICAgIHZvaWQgbWFpbkZyYW1lQ29udGVudFNpemVDaGFu
Z2VkKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKSBvdmVycmlkZTsKKworICAgIFdlYkNvcmU6Okdy
YXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIG92ZXJyaWRlOworICAg
IHZvaWQgc2V0Um9vdENvbXBvc2l0aW5nTGF5ZXIoV2ViQ29yZTo6R3JhcGhpY3NMYXllciopIG92
ZXJyaWRlOworICAgIHZvaWQgc2NoZWR1bGVDb21wb3NpdGluZ0xheWVyRmx1c2goKSBvdmVycmlk
ZTsKKyAgICB2b2lkIHNjaGVkdWxlQ29tcG9zaXRpbmdMYXllckZsdXNoSW1tZWRpYXRlbHkoKSBv
dmVycmlkZTsKKworI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklU
T1IpCisgICAgUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlz
cGxheVJlZnJlc2hNb25pdG9yKFdlYkNvcmU6OlBsYXRmb3JtRGlzcGxheUlEKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgdm9pZCBhdHRhY2hWaWV3T3ZlcmxheUdyYXBoaWNzTGF5ZXIoV2ViQ29y
ZTo6RnJhbWUqLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyKikgb3ZlcnJpZGU7CisKKyNpZiBVU0Uo
Q09PUkRJTkFURURfR1JBUEhJQ1NfVEhSRUFERUQpCisgICAgdm9pZCBkaWRDaGFuZ2VWaWV3cG9y
dEF0dHJpYnV0ZXMoV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJiYpIG92ZXJyaWRlOworI2Vu
ZGlmCisKKyNpZiBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpIHx8IFVTRShURVhUVVJFX01BUFBF
UikKKyAgICB2b2lkIGRldmljZU9yUGFnZVNjYWxlRmFjdG9yQ2hhbmdlZCgpIG92ZXJyaWRlOwor
I2VuZGlmCisKKyAgICB2b2lkIHVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlKHVpbnQ2NF90LCBib29s
LCBmbG9hdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZFVwZGF0ZSgpIG92ZXJyaWRlOworCisgICAgdm9pZCBl
bnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqKTsK
KworICAgIC8vIFdoZW4gdHJ1ZSwgd2UgbWFpbnRhaW4gdGhlIGxheWVyIHRyZWUgaW4gaXRzIGN1
cnJlbnQgc3RhdGUgYnkgbm90IGxlYXZpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgbW9kZQor
ICAgIC8vIGFuZCBub3Qgc2NoZWR1bGluZyBsYXllciBmbHVzaGVzLgorICAgIGJvb2wgbV9sYXll
clRyZWVTdGF0ZUlzRnJvemVuIHsgZmFsc2UgfTsKKworICAgIC8vIFRoZSBsYXllciB0cmVlIGhv
c3QgdGhhdCBoYW5kbGVzIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLgorICAgIFJlZlB0cjxMYXll
clRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViSW5z
cGVjdG9yVUlXUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJJbnNwZWN0b3JVSVdQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAuLjc0Yzg0NGJjYmE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JVSVdQRS5jcHAKQEAgLTAsMCArMSw0OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUkuaCIKKworI2luY2x1ZGUgIlJl
bW90ZVdlYkluc3BlY3RvclVJLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitib29sIFdlYklu
c3BlY3RvclVJOjpjYW5TYXZlKCkKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBX
ZWJJbnNwZWN0b3JVSTo6bG9jYWxpemVkU3RyaW5nc1VSTCgpCit7CisgICAgcmV0dXJuIFN0cmlu
ZygpOworfQorCitTdHJpbmcgUmVtb3RlV2ViSW5zcGVjdG9yVUk6OmxvY2FsaXplZFN0cmluZ3NV
UkwoKQoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dlYklu
c3BlY3RvcldQRS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd3BlL1dl
Ykluc3BlY3RvcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmM0ZTBjNjVlMGVmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL3dwZS9XZWJJbnNwZWN0b3JXUEUuY3BwCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYkluc3BlY3Rvci5oIgorCisjaWYgRU5BQkxFKElOU1BFQ1RP
UikKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Jvb2wgV2ViSW5zcGVjdG9yOjpjYW5TYXZlKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3I6Omxv
Y2FsaXplZFN0cmluZ3NVUkwoKSBjb25zdAoreworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9XZWJQYWdlV1BF
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93cGUvV2ViUGFnZVdQRS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjA3MWMyNDZiODE4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dwZS9X
ZWJQYWdlV1BFLmNwcApAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0
IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJX
ZWJQYWdlLmgiCisKKyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldlYlBy
ZWZlcmVuY2VzS2V5cy5oIgorI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCitu
YW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQor
eworfQorCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGV0YWNoKCkKK3sKK30KKwordm9pZCBXZWJQ
YWdlOjpwbGF0Zm9ybUVkaXRvclN0YXRlKEZyYW1lJiwgRWRpdG9yU3RhdGUmLCBJbmNsdWRlUG9z
dExheW91dERhdGFIaW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3Zv
aWQgV2ViUGFnZTo6cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdl
YlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2Fy
ZEV2ZW50JikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30K
KworYm9vbCBXZWJQYWdlOjpwbGF0Zm9ybUhhc0xvY2FsRGF0YUZvclVSTChjb25zdCBVUkwmKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcg
V2ViUGFnZTo6Y2FjaGVkUmVzcG9uc2VNSU1FVHlwZUZvclVSTChjb25zdCBVUkwmKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQorCitib29sIFdlYlBh
Z2U6OnBsYXRmb3JtQ2FuSGFuZGxlUmVxdWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitTdHJpbmcgV2Vi
UGFnZTo6Y2FjaGVkU3VnZ2VzdGVkRmlsZW5hbWVGb3JVUkwoY29uc3QgVVJMJikKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gV2ViUGFnZTo6Y2FjaGVkUmVzcG9uc2VEYXRhRm9yVVJMKGNvbnN0IFVSTCYpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworU3RyaW5n
IFdlYlBhZ2U6OnBsYXRmb3JtVXNlckFnZW50KGNvbnN0IFVSTCYpIGNvbnN0Cit7CisgICAgbm90
SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJv
Y2Vzc01haW5XUEUuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy93cGUvV2ViUHJvY2Vz
c01haW5XUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iYWNh
ODU0ZWY4NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mvd3Bl
L1dlYlByb2Nlc3NNYWluV1BFLmNwcApAQCAtMCwwICsxLDc4IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIFBvcnRpb25zIENv
cHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBNb2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlByb2Nl
c3NNYWluVW5peC5oIgorCisjaW5jbHVkZSAiQ2hpbGRQcm9jZXNzTWFpbi5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtRGlzcGxheVdQRS5oPgor
I2luY2x1ZGUgPGdsaWIuaD4KKyNpbmNsdWRlIDxpb3N0cmVhbT4KKyNpbmNsdWRlIDxsaWJzb3Vw
L3NvdXAuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQg
eworCitjbGFzcyBXZWJQcm9jZXNzTWFpbiBmaW5hbDogcHVibGljIENoaWxkUHJvY2Vzc01haW5C
YXNlIHsKK3B1YmxpYzoKKyAgICBib29sIHBsYXRmb3JtSW5pdGlhbGl6ZSgpIG92ZXJyaWRlCisg
ICAgeworICAgICAgICAvLyBUT0RPOiBXcmFwIHdpdGggI2lmbmRlZiBOREVCVUcKKyAgICAgICAg
aWYgKGdfZ2V0ZW52KCJXRUJLSVQyX1BBVVNFX1dFQl9QUk9DRVNTX09OX0xBVU5DSCIpKSB7Cisg
ICAgICAgICAgICBnX3ByaW50ZXJyKCJXZWJQcm9jZXNzIFBJRDogJWRcbiIsIGdldHBpZCgpKTsK
KyAgICAgICAgICAgIFdURjo6c2xlZXAoMzApOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgfQorCisgICAgYm9vbCBwYXJzZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjaGFy
KiogYXJndikgb3ZlcnJpZGUKKyAgICB7CisgICAgICAgIEFTU0VSVChhcmdjID09IDMpOworICAg
ICAgICBpZiAoYXJnYyA8IDMpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAg
aWYgKCFDaGlsZFByb2Nlc3NNYWluQmFzZTo6cGFyc2VDb21tYW5kTGluZShhcmdjLCBhcmd2KSkK
KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgICAgICBpbnQgd3BlRmQgPSBhdG9pKGFy
Z3ZbMl0pOworICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goCisgICAgICAgICAgICBb
d3BlRmRdIHsKKyAgICAgICAgICAgICAgICBSRUxFQVNFX0FTU0VSVChpczxQbGF0Zm9ybURpc3Bs
YXlXUEU+KFBsYXRmb3JtRGlzcGxheTo6c2hhcmVkRGlzcGxheSgpKSk7CisgICAgICAgICAgICAg
ICAgZG93bmNhc3Q8UGxhdGZvcm1EaXNwbGF5V1BFPihQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERp
c3BsYXkoKSkuaW5pdGlhbGl6ZSh3cGVGZCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgfQorfTsKKworaW50IFdlYlByb2Nlc3NNYWluVW5peChpbnQgYXJnYywg
Y2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIENoaWxkUHJvY2Vzc01haW48V2ViUHJvY2Vzcywg
V2ViUHJvY2Vzc01haW4+KGFyZ2MsIGFyZ3YpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dwZS93cGUtd2Via2l0LnBjLmluIGIvU291cmNl
L1dlYktpdDIvd3BlL3dwZS13ZWJraXQucGMuaW4KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAuLmU5OWMwMjUxODE0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvd3BlL3dwZS13ZWJraXQucGMuaW4KQEAgLTAsMCArMSwxMSBAQAorcHJlZml4PUBDTUFLRV9J
TlNUQUxMX1BSRUZJWEAKK2V4ZWNfcHJlZml4PSR7cHJlZml4fQorbGliZGlyPUBMSUJfSU5TVEFM
TF9ESVJACitpbmNsdWRlZGlyPSR7cHJlZml4fS9pbmNsdWRlCisKK05hbWU6IFdlYktpdDIKK0Rl
c2NyaXB0aW9uOiBXUEUtZmxhdm9yZWQgV2ViIGVuZ2luZQorVmVyc2lvbjogQFBST0pFQ1RfVkVS
U0lPTkAKK1JlcXVpcmVzLnByaXZhdGU6IGdsaWItMi4wIGxpYnNvdXAtMi40CitMaWJzOiAtTCR7
bGliZGlyfSAtbFdQRVdlYktpdCAtbFdQRQorQ2ZsYWdzOiAtSSR7aW5jbHVkZWRpcn0vd3BlLUBX
UEVfQVBJX1ZFUlNJT05AIC1JJHtpbmNsdWRlZGlyfS93cGUtQFdQRV9BUElfVkVSU0lPTkAvV1BF
CmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZExpYkdCTS5jbWFrZSBiL1NvdXJjZS9jbWFr
ZS9GaW5kTGliR0JNLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5kMjA5MWNiZmI0MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9GaW5kTGliR0JN
LmNtYWtlCkBAIC0wLDAgKzEsNDYgQEAKKyMgLSBUcnkgdG8gZmluZCBnYm0uCisjIE9uY2UgZG9u
ZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgTElCR0JNX0lOQ0xVREVfRElSUyAtIHRoZSBnYm0g
aW5jbHVkZSBkaXJlY3RvcmllcworIyAgTElCR0JNX0xJQlJBUklFUyAtIGxpbmsgdGhlc2UgdG8g
dXNlIGdibS4KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDE1IElnYWxpYSBTLkwuCisjCisjIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisj
IDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTCisjIElTJycgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBIT0xERVIgT1IgSVRTCisjIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorIyBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisjIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOworIyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwKKyMgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IKKyMgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRgorIyBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
ZmluZF9wYWNrYWdlKFBrZ0NvbmZpZykKK3BrZ19jaGVja19tb2R1bGVzKFBDX0xJQkdCTSBnYm0p
CisKK2ZpbmRfcGF0aChMSUJHQk1fSU5DTFVERV9ESVJTCisgICAgTkFNRVMgZ2JtLmgKKyAgICBI
SU5UUyAke1BDX0xJQkdCTV9JTkNMVURFX0RJUlN9ICR7UENfTElCR0JNX0lOQ1VERURJUn0KKykK
KworZmluZF9saWJyYXJ5KExJQkdCTV9MSUJSQVJJRVMKKyAgICBOQU1FUyBnYm0KKyAgICBISU5U
UyAke1BDX0xJQkdCTV9MSUJSQVJZX0RJUlN9ICR7UENfTElCR0JNX0xJQkRJUn0KKykKKworaW5j
bHVkZShGaW5kUGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVf
U1RBTkRBUkRfQVJHUyhMSUJHQk0gREVGQVVMVF9NU0cgTElCR0JNX0xJQlJBUklFUykKKworbWFy
a19hc19hZHZhbmNlZChMSUJHQk1fSU5DTFVERV9ESVJTIExJQkdCTV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQtbWVzYS5jbWFrZSBiL1NvdXJjZS9j
bWFrZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwLi42MTYxNTRlNjExOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFr
ZS9GaW5kV1BFQmFja2VuZC1tZXNhLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkgdG8g
ZmluZCBXUEUtbWVzYS4KKyMgT25jZSBkb25lLCB0aGlzIHdpbGwgZGVmaW5lCisjCisjICBXUEVf
TUVTQV9GT1VORCAtIHN5c3RlbSBoYXMgV1BFLW1lc2EuCisjICBXUEVfTUVTQV9JTkNMVURFX0RJ
UlMgLSB0aGUgV1BFLW1lc2EgaW5jbHVkZSBkaXJlY3RvcmllcworIyAgV1BFX01FU0FfTElCUkFS
SUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BFLW1lc2EuCisjCisjIENvcHlyaWdodCAoQykgMjAx
NiBJZ2FsaWEgUy5MLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVIgQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUworIyBJUycnIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQgSE9MREVSIE9SIElUUworIyBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyMgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorIyBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsKKyMgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksCisj
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SCisjIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYKKyMgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ZpbmRfcGFja2FnZShQa2dDb25maWcpCitwa2dfY2hl
Y2tfbW9kdWxlcyhQQ19XUEVfTUVTQSBRVUlFVCB3cGUtbWVzYSkKKworZmluZF9wYXRoKFdQRV9N
RVNBX0lOQ0xVREVfRElSUworICAgIE5BTUVTIHdwZS1tZXNhL3ZpZXctYmFja2VuZC1leHBvcnRh
YmxlLWRtYS1idWYuaAorICAgIEhJTlRTICR7UENfV1BFX01FU0FfSU5DTFVERURJUn0gJHtQQ19X
UEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2ZpbmRfbGlicmFyeShXUEVfTUVTQV9MSUJSQVJJ
RVMKKyAgICBOQU1FUyBXUEVCYWNrZW5kLW1lc2EKKyAgICBISU5UUyAke1BDX1dQRV9NRVNBX0xJ
QkRJUn0gJHtQQ19XUEVfTUVTQV9MSUJSQVJZX0RJUlN9CispCisKK21hcmtfYXNfYWR2YW5jZWQo
V1BFX01FU0FfSU5DTFVERV9ESVJTIFdQRV9NRVNBX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5k
UGFja2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRf
QVJHUyhXUEVfTUVTQSBSRVFVSVJFRF9WQVJTIFdQRV9NRVNBX0lOQ0xVREVfRElSUyBXUEVfTUVT
QV9MSUJSQVJJRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21h
a2UgYi9Tb3VyY2UvY21ha2UvRmluZFdQRUJhY2tlbmQuY21ha2UKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAuLmM3YTkzZDAwNTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL2NtYWtlL0ZpbmRXUEVCYWNrZW5kLmNtYWtlCkBAIC0wLDAgKzEsNDcgQEAKKyMgLSBUcnkg
dG8gZmluZCBXUEUuCisjIE9uY2UgZG9uZSwgdGhpcyB3aWxsIGRlZmluZQorIworIyAgV1BFX0ZP
VU5EIC0gc3lzdGVtIGhhcyBXUEUuCisjICBXUEVfSU5DTFVERV9ESVJTIC0gdGhlIFdQRSBpbmNs
dWRlIGRpcmVjdG9yaWVzCisjICBXUEVfTElCUkFSSUVTIC0gbGluayB0aGVzZSB0byB1c2UgV1BF
LgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMKKyMgSVMnJyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorIyBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERF
UiBPUiBJVFMKKyMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisjIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyMgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7CisjIE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLAorIyBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUgorIyBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
CisjIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmaW5kX3Bh
Y2thZ2UoUGtnQ29uZmlnKQorcGtnX2NoZWNrX21vZHVsZXMoUENfV1BFIFFVSUVUIHdwZSkKKwor
ZmluZF9wYXRoKFdQRV9JTkNMVURFX0RJUlMKKyAgICBOQU1FUyB3cGUvbG9hZGVyLmgKKyAgICBI
SU5UUyAke1BDX1dQRV9JTkNMVURFRElSfSAke1BDX1dQRV9JTkNMVURFX0RJUlN9CispCisKK2Zp
bmRfbGlicmFyeShXUEVfTElCUkFSSUVTCisgICAgTkFNRVMgV1BFQmFja2VuZAorICAgIEhJTlRT
ICR7UENfV1BFX0xJQkRJUn0gJHtQQ19XUEVfTElCUkFSWV9ESVJTfQorKQorCittYXJrX2FzX2Fk
dmFuY2VkKFdQRV9JTkNMVURFX0RJUlMgV1BFX0xJQlJBUklFUykKKworaW5jbHVkZShGaW5kUGFj
a2FnZUhhbmRsZVN0YW5kYXJkQXJncykKK0ZJTkRfUEFDS0FHRV9IQU5ETEVfU1RBTkRBUkRfQVJH
UyhXUEUgUkVRVUlSRURfVkFSUyBXUEVfSU5DTFVERV9ESVJTIFdQRV9MSUJSQVJJRVMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvY21ha2UvT3B0aW9uc1dQRS5jbWFrZSBiL1NvdXJjZS9jbWFrZS9PcHRp
b25zV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5iOTU1
Y2Y5MWM5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9jbWFrZS9PcHRpb25zV1BFLmNtYWtl
CkBAIC0wLDAgKzEsMTM4IEBACitpbmNsdWRlKEdOVUluc3RhbGxEaXJzKQorCitzZXQoUFJPSkVD
VF9WRVJTSU9OX01BSk9SIDApCitzZXQoUFJPSkVDVF9WRVJTSU9OX01JTk9SIDApCitzZXQoUFJP
SkVDVF9WRVJTSU9OX1BBVENIIDIwMTcwNDI3KQorc2V0KFBST0pFQ1RfVkVSU0lPTiAke1BST0pF
Q1RfVkVSU0lPTl9NQUpPUn0uJHtQUk9KRUNUX1ZFUlNJT05fTUlOT1J9LiR7UFJPSkVDVF9WRVJT
SU9OX1BBVENIfSkKK3NldChXUEVfQVBJX1ZFUlNJT04gMC4xKQorCitpZiAoV1RGX0NQVV9YODZf
NjQpCisgICAgc2V0KEVOQUJMRV9GVExfREVGQVVMVCBPTikKK2Vsc2UgKCkKKyAgICBzZXQoRU5B
QkxFX0ZUTF9ERUZBVUxUIE9GRikKK2VuZGlmICgpCisKK1dFQktJVF9PUFRJT05fQkVHSU4oKQor
CitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfM0RfVFJBTlNGT1JNUyBQ
VUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfQUNDRUxF
UkFURURfMkRfQ0FOVkFTIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfQ1NTX1JFR0lPTlMgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX0NTU19TRUxFQ1RPUlNfTEVWRUw0IFBVQkxJQyBPTikKK1dFQktJ
VF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9EQVRBQkFTRV9QUk9DRVNTIFBSSVZB
VEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfREVWSUNFX09S
SUVOVEFUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShF
TkFCTEVfTEVHQUNZX0VOQ1JZUFRFRF9NRURJQSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9E
RUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0ZUTF9KSVQgUFJJVkFURSAke0VOQUJMRV9GVExfREVG
QVVMVH0pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfR0FNRVBBRCBQ
VUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX0dFT0xP
Q0FUSU9OIFBVQkxJQyBPRkYpCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSBQUklWQVRFIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BP
UlRfVkFMVUUoRU5BQkxFX0lOREVYRURfREFUQUJBU0VfSU5fV09SS0VSUyBQUklWQVRFIE9GRikK
K1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9NRURJQV9DT05UUk9MU19T
Q1JJUFQgUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxF
X01FRElBX1NPVVJDRSBQVUJMSUMgT0ZGKQorV0VCS0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFM
VUUoRU5BQkxFX01IVE1MIFBSSVZBVEUgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9W
QUxVRShFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSBQUklWQVRFIE9GRikKK1dFQktJVF9PUFRJ
T05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9UT1VDSF9FVkVOVFMgUFVCTElDIE9OKQorV0VC
S0lUX09QVElPTl9ERUZBVUxUX1BPUlRfVkFMVUUoRU5BQkxFX1ZJREVPIFBVQkxJQyBPTikKK1dF
QktJVF9PUFRJT05fREVGQVVMVF9QT1JUX1ZBTFVFKEVOQUJMRV9WSURFT19UUkFDSyBQVUJMSUMg
T04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFCTEVfVklFV19NT0RFX0NT
U19NRURJQSBQVUJMSUMgT04pCitXRUJLSVRfT1BUSU9OX0RFRkFVTFRfUE9SVF9WQUxVRShFTkFC
TEVfV0VCX0FOSU1BVElPTlMgUFJJVkFURSBPTikKK1dFQktJVF9PUFRJT05fREVGQVVMVF9QT1JU
X1ZBTFVFKEVOQUJMRV9XRUJfQVVESU8gUFVCTElDIE9OKQorV0VCS0lUX09QVElPTl9ERUZBVUxU
X1BPUlRfVkFMVUUoRU5BQkxFX1dFQkdMIFBVQkxJQyBPTikKK1dFQktJVF9PUFRJT05fREVGQVVM
VF9QT1JUX1ZBTFVFKEVOQUJMRV9XRUJfVElNSU5HIFBVQkxJQyBPTikKKworV0VCS0lUX09QVElP
Tl9ERUZJTkUoVVNFX0dTVFJFQU1FUl9HTCAiV2hldGhlciB0byBlbmFibGUgc3VwcG9ydCBmb3Ig
R1N0cmVhbWVyIEdMIiBQUklWQVRFIE9GRikKKworV0VCS0lUX09QVElPTl9FTkQoKQorCitzZXQo
RU5BQkxFX1dFQkNPUkUgT04pCitzZXQoRU5BQkxFX1dFQktJVCBPRkYpCitzZXQoRU5BQkxFX1dF
QktJVDIgT04pCitzZXQoRU5BQkxFX0FQSV9URVNUUyAke0RFVkVMT1BFUl9NT0RFfSkKK3NldChF
TkFCTEVfVE9PTFMgT04pCisKK3NldChXVEZfTElCUkFSWV9UWVBFIFNUQVRJQykKK3NldChKYXZh
U2NyaXB0Q29yZV9MSUJSQVJZX1RZUEUgU1RBVElDKQorc2V0KFdlYkNvcmVfTElCUkFSWV9UWVBF
IFNUQVRJQykKK3NldChXZWJLaXQyX09VVFBVVF9OQU1FIFdQRVdlYktpdCkKK3NldChXZWJLaXQy
X1dlYlByb2Nlc3NfT1VUUFVUX05BTUUgV1BFV2ViUHJvY2VzcykKK3NldChXZWJLaXQyX05ldHdv
cmtQcm9jZXNzX09VVFBVVF9OQU1FIFdQRU5ldHdvcmtQcm9jZXNzKQorc2V0KFdlYktpdDJfRGF0
YWJhc2VQcm9jZXNzX09VVFBVVF9OQU1FIFdQRURhdGFiYXNlUHJvY2VzcykKKworZmluZF9wYWNr
YWdlKElDVSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShUaHJlYWRzIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKFpMSUIgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoR0xJQiAyLjQwLjAgUkVRVUlSRUQg
Q09NUE9ORU5UUyBnaW8gZ2lvLXVuaXggZ29iamVjdCBndGhyZWFkIGdtb2R1bGUpCitmaW5kX3Bh
Y2thZ2UoR251VExTIDMuMC4wIFJFUVVJUkVEKQorCitmaW5kX3BhY2thZ2UoQ2Fpcm8gMS4xMC4y
IFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEZvbnRjb25maWcgMi44LjAgUkVRVUlSRUQpCitmaW5k
X3BhY2thZ2UoRnJlZXR5cGUyIDIuNC4yIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEhhcmZCdXp6
IDAuOS4xOCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShKUEVHIFJFUVVJUkVEKQorZmluZF9wYWNr
YWdlKExpYkdjcnlwdCAxLjYuMCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJTb3VwIDIuNDIu
MCBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShMaWJYbWwyIDIuOC4wIFJFUVVJUkVEKQorZmluZF9w
YWNrYWdlKExpYlhzbHQgMS4xLjcgUkVRVUlSRUQpCitmaW5kX3BhY2thZ2UoUE5HIFJFUVVJUkVE
KQorZmluZF9wYWNrYWdlKFNxbGl0ZSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXZWJQIFJFUVVJ
UkVEKQorCitmaW5kX3BhY2thZ2UoT3BlbkdMRVMyIFJFUVVJUkVEKQorZmluZF9wYWNrYWdlKEVH
TCBSRVFVSVJFRCkKKworZmluZF9wYWNrYWdlKFdQRUJhY2tlbmQgUkVRVUlSRUQpCisKK3NldChV
U0VfWERHTUlNRSBPTikKKworaWYgKEVOQUJMRV9WSURFTyBPUiBFTkFCTEVfV0VCX0FVRElPKQor
ICAgIHNldChHU1RSRUFNRVJfQ09NUE9ORU5UUyBhcHAgYXVkaW8gcGJ1dGlscykKKyAgICBTRVRf
QU5EX0VYUE9TRV9UT19CVUlMRChVU0VfR1NUUkVBTUVSIFRSVUUpCisgICAgaWYgKEVOQUJMRV9W
SURFTykKKyAgICAgICAgbGlzdChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgdmlkZW8gdGFn
KQorICAgIGVuZGlmICgpCisKKyAgICBpZiAoRU5BQkxFX1dFQl9BVURJTykKKyAgICAgICAgbGlz
dChBUFBFTkQgR1NUUkVBTUVSX0NPTVBPTkVOVFMgZmZ0KQorICAgICAgICBTRVRfQU5EX0VYUE9T
RV9UT19CVUlMRChVU0VfV0VCQVVESU9fR1NUUkVBTUVSIFRSVUUpCisgICAgZW5kaWYgKCkKKwor
ICAgIGZpbmRfcGFja2FnZShHU3RyZWFtZXIgMS4yLjMgUkVRVUlSRUQgQ09NUE9ORU5UUyAke0dT
VFJFQU1FUl9DT01QT05FTlRTfSkKKworICAgICMgRklYTUU6IFdoYXQgYWJvdXQgTVBFR1RTIHN1
cHBvcnQ/IFVTRV9HU1RSRUFNRVJfTVBFR1RTPworZW5kaWYgKCkKKworaWYgKEVOQUJMRV9NRURJ
QV9TVFJFQU0gT1IgRU5BQkxFX1dFQl9SVEMpCisgICAgZmluZF9wYWNrYWdlKE9wZW5XZWJSVEMp
CisgICAgaWYgKE5PVCBPUEVOV0VCUlRDX0ZPVU5EKQorICAgICAgICBtZXNzYWdlKEZBVEFMX0VS
Uk9SICJPcGVuV2ViUlRDIGlzIG5lZWRlZCBmb3IgRU5BQkxFX01FRElBX1NUUkVBTSBhbmQgRU5B
QkxFX1dFQl9SVEMuIikKKyAgICBlbmRpZiAoKQorICAgIFNFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOV0VCUlRDIFRSVUUpCitlbmRpZiAoKQorCitpZiAoRU5BQkxFX0FDQ0VMRVJBVEVE
XzJEX0NBTlZBUykKKyAgICBmaW5kX3BhY2thZ2UoQ2Fpcm9HTCAxLjEwLjIgUkVRVUlSRUQgQ09N
UE9ORU5UUyBjYWlyby1lZ2wpCitlbmRpZiAoKQorCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElO
R19XUEVfXz0xKQorYWRkX2RlZmluaXRpb25zKC1EREFUQV9ESVI9IiR7Q01BS0VfSU5TVEFMTF9E
QVRBRElSfSIpCisKK3NldChVU0VfVURJUzg2IDEpCisKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxE
KFVTRV9PUEVOR0xfRVNfMiBUUlVFKQorU0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0VHTCBU
UlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChFTkFCTEVfR1JBUEhJQ1NfQ09OVEVYVF8z
RCBUUlVFKQorCitTRVRfQU5EX0VYUE9TRV9UT19CVUlMRChVU0VfVEVYVFVSRV9NQVBQRVIgVFJV
RSkKK1NFVF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9URVhUVVJFX01BUFBFUl9HTCBUUlVFKQor
U0VUX0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX1RJTEVEX0JBQ0tJTkdfU1RPUkUgVFJVRSkKK1NF
VF9BTkRfRVhQT1NFX1RPX0JVSUxEKFVTRV9DT09SRElOQVRFRF9HUkFQSElDUyBUUlVFKQorU0VU
X0FORF9FWFBPU0VfVE9fQlVJTEQoVVNFX0NPT1JESU5BVEVEX0dSQVBISUNTX1RIUkVBREVEIFRS
VUUpCisKK3NldChGT1JXQVJESU5HX0hFQURFUlNfRElSICR7REVSSVZFRF9TT1VSQ0VTX0RJUn0v
Rm9yd2FyZGluZ0hlYWRlcnMpCisKKyMgQnVpbGQgd2l0aCAtZnZpc2liaWxpdHk9aGlkZGVuIHRv
IHJlZHVjZSB0aGUgc2l6ZSBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCisjIE5vdCB0byBiZSB1c2Vk
IHdoZW4gYnVpbGRpbmcgdGhlIFdlYktpdFRlc3RSdW5uZXIgbGlicmFyeS4KK2lmIChOT1QgREVW
RUxPUEVSX01PREUpCisgICAgc2V0KENNQUtFX0NfRkxBR1NfUkVMRUFTRSAiJHtDTUFLRV9DX0ZM
QUdTX1JFTEVBU0V9IC1mdmlzaWJpbGl0eT1oaWRkZW4iKQorICAgIHNldChDTUFLRV9DWFhfRkxB
R1NfUkVMRUFTRSAiJHtDTUFLRV9DWFhfRkxBR1NfUkVMRUFTRX0gLWZ2aXNpYmlsaXR5PWhpZGRl
biAtZnZpc2liaWxpdHktaW5saW5lcy1oaWRkZW4iKQorZW5kaWYgKCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZSBiL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1Y3QtYXJjaGl2ZQppbmRleCAyYzMwMmRiY2RlYi4uOTA3
YTU0NzM4MzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxkU2xhdmVTdXBwb3J0L2J1aWx0LXByb2R1
Y3QtYXJjaGl2ZQorKysgYi9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC9idWlsdC1wcm9kdWN0LWFy
Y2hpdmUKQEAgLTE3MCw3ICsxNzAsNyBAQCBkZWYgZGlyQ29udGFpbnNkd28oZGlyZWN0b3J5KToK
IAogCiBkZWYgYXJjaGl2ZUJ1aWx0UHJvZHVjdChjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgZnVs
bFBsYXRmb3JtKToKLSAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0aycs
ICdlZmwnLCAnaW9zJykKKyAgICBhc3NlcnQgcGxhdGZvcm0gaW4gKCdtYWMnLCAnd2luJywgJ2d0
aycsICdlZmwnLCAnaW9zJywgJ3dwZScpCiAKICAgICBpZiBwbGF0Zm9ybSA9PSAnaW9zJzoKICAg
ICAgICAgY29tYmluZWREaXJlY3RvcnkgPSBvcy5wYXRoLmpvaW4oX3RvcExldmVsQnVpbGREaXJl
Y3RvcnksICdjb21iaW5lZC1tYWMtYW5kLWlvcycpCkBAIC0xOTgsNyArMTk4LDcgQEAgZGVmIGFy
Y2hpdmVCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxhdGZvcm0sIGZ1bGxQbGF0Zm9ybSk6
CiAKICAgICAgICAgc2h1dGlsLnJtdHJlZSh0aGluRGlyZWN0b3J5KQogCi0gICAgZWxpZiBwbGF0
Zm9ybSA9PSAnZ3RrJyBvciBwbGF0Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09
ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAg
ICAjIE9uIEdUSysvRUZMIHdlIGRvbid0IG5lZWQgdGhlIGludGVybWVkaWF0ZSBzdGVwIG9mIGNy
ZWF0aW5nIGEgdGhpbkRpcmVjdG9yeQogICAgICAgICAjIHRvIGJlIGNvbXByZXNzZWQgaW4gYSBa
SVAgZmlsZSwgYmVjYXVzZSB3ZSBjYW4gY3JlYXRlIHRoZSBaSVAgZGlyZWN0bHkuCiAgICAgICAg
ICMgVGhpcyBpcyBmYXN0ZXIgYW5kIHJlcXVpcmVzIGxlc3MgZGlzayByZXNvdXJjZXMuCkBAIC0y
MzIsNyArMjMyLDcgQEAgZGVmIHVuemlwQXJjaGl2ZShkaXJlY3RvcnlUb0V4dHJhY3RUbywgY29u
ZmlndXJhdGlvbik6CiAKIAogZGVmIGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwg
cGxhdGZvcm0pOgotICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywg
J2VmbCcsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3Rr
JywgJ2VmbCcsICdpb3MnLCAnd3BlJykKIAogICAgIGFyY2hpdmVGaWxlID0gb3MucGF0aC5qb2lu
KF90b3BMZXZlbEJ1aWxkRGlyZWN0b3J5LCBjb25maWd1cmF0aW9uICsgJy56aXAnKQogCkBAIC0y
NDEsNyArMjQxLDcgQEAgZGVmIGV4dHJhY3RCdWlsdFByb2R1Y3QoY29uZmlndXJhdGlvbiwgcGxh
dGZvcm0pOgogCiAgICAgaWYgcGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIHJl
dHVybiB1bnppcEFyY2hpdmUoX3RvcExldmVsQnVpbGREaXJlY3RvcnksIGNvbmZpZ3VyYXRpb24p
Ci0gICAgZWxpZiBwbGF0Zm9ybSA9PSAnd2luJyBvciBwbGF0Zm9ybSA9PSAnZ3RrJyBvciBwbGF0
Zm9ybSA9PSAnZWZsJzoKKyAgICBlbGlmIHBsYXRmb3JtID09ICd3aW4nIG9yIHBsYXRmb3JtID09
ICdndGsnIG9yIHBsYXRmb3JtID09ICdlZmwnIG9yIHBsYXRmb3JtID09ICd3cGUnOgogICAgICAg
ICBwcmludCAnRXh0cmFjdGluZycsIF9jb25maWd1cmF0aW9uQnVpbGREaXJlY3RvcnkKICAgICAg
ICAgcmV0dXJuIHVuemlwQXJjaGl2ZShfY29uZmlndXJhdGlvbkJ1aWxkRGlyZWN0b3J5LCBjb25m
aWd1cmF0aW9uKQogCmRpZmYgLS1naXQgYS9Ub29scy9CdWlsZFNsYXZlU3VwcG9ydC90ZXN0LXJl
c3VsdC1hcmNoaXZlIGIvVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2
ZQppbmRleCAzYzJiMGJkN2EzNi4uOTgwZjA3MWMxNGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0J1aWxk
U2xhdmVTdXBwb3J0L3Rlc3QtcmVzdWx0LWFyY2hpdmUKKysrIGIvVG9vbHMvQnVpbGRTbGF2ZVN1
cHBvcnQvdGVzdC1yZXN1bHQtYXJjaGl2ZQpAQCAtNDYsNyArNDYsNyBAQCBkZWYgbWFpbigpOgog
ICAgIHJldHVybiBhcmNoaXZlVGVzdFJlc3VsdHMob3B0aW9ucy5jb25maWd1cmF0aW9uLCBvcHRp
b25zLnBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0RpcikKIAogZGVmIGFyY2hpdmVUZXN0UmVz
dWx0cyhjb25maWd1cmF0aW9uLCBwbGF0Zm9ybSwgbGF5b3V0VGVzdFJlc3VsdHNEaXIpOgotICAg
IGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywgJ2VmbCcsICd3aW5jYWly
bycsICdpb3MnKQorICAgIGFzc2VydCBwbGF0Zm9ybSBpbiAoJ21hYycsICd3aW4nLCAnZ3RrJywg
J2VmbCcsICd3aW5jYWlybycsICdpb3MnLCAnd3BlJykKIAogICAgIHRyeToKICAgICAgICAgb3Mu
dW5saW5rKGFyY2hpdmVGaWxlKQpAQCAtNjYsNyArNjYsNyBAQCBkZWYgYXJjaGl2ZVRlc3RSZXN1
bHRzKGNvbmZpZ3VyYXRpb24sIHBsYXRmb3JtLCBsYXlvdXRUZXN0UmVzdWx0c0Rpcik6CiAgICAg
aWYgcGxhdGZvcm0gaW4gKCdtYWMnLCAnaW9zJyk6CiAgICAgICAgIGlmIHN1YnByb2Nlc3MuY2Fs
bChbImRpdHRvIiwgIi1jIiwgIi1rIiwgIi0tc2VxdWVzdGVyUnNyYyIsICItLXpsaWJDb21wcmVz
c2lvbkxldmVsIiwgIjIiLCBsYXlvdXRUZXN0UmVzdWx0c0RpciwgYXJjaGl2ZUZpbGVdKToKICAg
ICAgICAgICAgIHJldHVybiAxCi0gICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAn
ZWZsJywgJ3dpbmNhaXJvJyk6CisgICAgZWxpZiBwbGF0Zm9ybSBpbiAoJ3dpbicsICdndGsnLCAn
ZWZsJywgJ3dpbmNhaXJvJywgJ3dwZScpOgogICAgICAgICBpZiBzdWJwcm9jZXNzLmNhbGwoWyJ6
aXAiLCAiLXIiLCAiLTIiLCBhcmNoaXZlRmlsZSwgIi4iXSwgY3dkPWxheW91dFRlc3RSZXN1bHRz
RGlyKToKICAgICAgICAgICAgIHJldHVybiAxCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NNYWtlTGlz
dHMudHh0IGIvVG9vbHMvQ01ha2VMaXN0cy50eHQKaW5kZXggYjMwNDliODg0MWQuLjgwZmRiOGM5
NGRlIDEwMDY0NAotLS0gYS9Ub29scy9DTWFrZUxpc3RzLnR4dAorKysgYi9Ub29scy9DTWFrZUxp
c3RzLnR4dApAQCAtMjMsNiArMjMsMTEgQEAgZWxzZWlmICgiJHtQT1JUfSIgU1RSRVFVQUwgIkpT
Q09ubHkiKQogICAgIGlmIChFTkFCTEVfQVBJX1RFU1RTKQogICAgICAgICBhZGRfc3ViZGlyZWN0
b3J5KFRlc3RXZWJLaXRBUEkpCiAgICAgZW5kaWYgKCkKK2Vsc2VpZiAoIiR7UE9SVH0iIFNUUkVR
VUFMICJXUEUiKQorICAgIGlmIChERVZFTE9QRVJfTU9ERSkKKyAgICAgICAgYWRkX3N1YmRpcmVj
dG9yeShJbWFnZURpZmYpCisgICAgICAgIGFkZF9zdWJkaXJlY3RvcnkoV2ViS2l0VGVzdFJ1bm5l
cikKKyAgICBlbmRpZiAoKQogZW5kaWYgKCkKIAogaWYgKFdJTjMyKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvSW1hZ2VEaWZmL1BsYXRmb3JtV1BFLmNtYWtlIGIvVG9vbHMvSW1hZ2VEaWZmL1BsYXRmb3Jt
V1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi40YjBlZTUz
MjhiYQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL0ltYWdlRGlmZi9QbGF0Zm9ybVdQRS5jbWFr
ZQpAQCAtMCwwICsxIEBACitpbmNsdWRlKENhaXJvLmNtYWtlKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy9idWlsZC1kdW1wcmVuZGVydHJlZSBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtZHVtcHJl
bmRlcnRyZWUKaW5kZXggNzYxZjQzZjY5ODkuLjE3ZGQ4MjA4YjIxIDEwMDc1NQotLS0gYS9Ub29s
cy9TY3JpcHRzL2J1aWxkLWR1bXByZW5kZXJ0cmVlCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQt
ZHVtcHJlbmRlcnRyZWUKQEAgLTY1LDggKzY1LDggQEAgY2hkaXIgRmlsZTo6U3BlYy0+Y2F0ZGly
KCJUb29scyIsICJEdW1wUmVuZGVyVHJlZSIpIG9yIGRpZTsKIG15ICRyZXN1bHQ7CiBpZiAoaXNB
cHBsZUNvY29hV2ViS2l0KCkpIHsKICAgICAkcmVzdWx0ID0gYnVpbGRYQ29kZVByb2plY3QoIkR1
bXBSZW5kZXJUcmVlIiwgJGNsZWFuLCBYY29kZU9wdGlvbnMoKSwgQEFSR1YpOwotfSBlbHNpZiAo
aXNHdGsoKSB8fCBpc0FueVdpbmRvd3MoKSkgewotICAgICMgR1RLIGFuZCBXaW5kb3dzIGJ1aWxk
IGV2ZXJ5dGhpbmcgaW4gb25lIHNob3QuIE5vIG5lZWQgdG8gYnVpbGQgYW55dGhpbmcgaGVyZS4K
K30gZWxzaWYgKGlzR3RrKCkgfHwgaXNXUEUoKSB8fCBpc0FueVdpbmRvd3MoKSkgeworICAgICMg
R1RLLCBXUEUgYW5kIFdpbmRvd3MgYnVpbGQgZXZlcnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVl
ZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAgICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAg
ICBkaWUgIkJ1aWxkaW5nIG5vdCBkZWZpbmVkIGZvciB0aGlzIHBsYXRmb3JtIVxuIjsKZGlmZiAt
LWdpdCBhL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IGIvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXQKaW5kZXggNzE0MmFlNjY0NzMuLjJmZWVjNjY1Y2ExIDEwMDc1NQotLS0gYS9Ub29scy9T
Y3JpcHRzL2J1aWxkLXdlYmtpdAorKysgYi9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdApAQCAt
MTAwLDYgKzEwMCw3IEBAIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdIFtvcHRpb25zIHRv
IHBhc3MgdG8gYnVpbGQgc3lzdGVtXQogICAtLWFuYWx5emUgICAgICAgICAgICAgICAgICAgICAg
ICAgRW5hYmxlIHN0YXRpYyBhbmF5bHNpcyAoaU9TIGFuZCBNYWMgb25seSkKIAogICAtLWd0ayAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIEdUSysgcG9ydAorICAtLXdwZSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQnVpbGQgdGhlIFdQRSBwb3J0CiAgIC0td2luY2Fp
cm8gICAgICAgICAgICAgICAgICAgICAgICBCdWlsZCB1c2luZyBDYWlybyAocmF0aGVyIHRoYW4g
Q29yZUdyYXBoaWNzKSBvbiBXaW5kb3dzCiAKICAgLS1pbnNwZWN0b3ItZnJvbnRlbmQgICAgICAg
ICAgICAgIENvcHkgV2ViIEluc3BlY3RvciB1c2VyIGludGVyZmFjZSByZXNvdXJjZXMgdG8gdGhl
IGJ1aWxkIGRpcmVjdG9yeQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0
ZXN0cnVubmVyIGIvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXR0ZXN0cnVubmVyCmluZGV4IDI0
MDNmOTM2OGQzLi45NzA3ZjY0NDYzYSAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9idWlsZC13
ZWJraXR0ZXN0cnVubmVyCisrKyBiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0dGVzdHJ1bm5l
cgpAQCAtNjEsOCArNjEsOCBAQCBjaGRpciAiVG9vbHMvV2ViS2l0VGVzdFJ1bm5lciIgb3IgZGll
OwogbXkgJHJlc3VsdDsKIGlmIChpc0FwcGxlQ29jb2FXZWJLaXQoKSkgewogICAgICRyZXN1bHQg
PSBidWlsZFhDb2RlUHJvamVjdCgiV2ViS2l0VGVzdFJ1bm5lciIsICRjbGVhbiwgWGNvZGVPcHRp
b25zKCksIEBBUkdWKTsKLX0gZWxzaWYgKGlzR3RrKCkpIHsKLSAgICAjIEdUSysgYnVpbGQgZXZl
cnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgorfSBl
bHNpZiAoaXNHdGsoKSB8fCBpc1dQRSgpKSB7CisgICAgIyBHVEsrIGFuZCBXUEUgYnVpbGQgZXZl
cnl0aGluZyBpbiBvbmUgc2hvdC4gTm8gbmVlZCB0byBidWlsZCBhbnl0aGluZyBoZXJlLgogICAg
ICRyZXN1bHQgPSAwOwogfSBlbHNlIHsKICAgICBkaWUgIldlYktpdFRlc3RSdW5uZXIgaXMgbm90
IHN1cHBvcnRlZCBvbiB0aGlzIHBsYXRmb3JtLlxuIjsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Njcmlw
dHMvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQgYi9Ub29scy9TY3JpcHRzL3VwZGF0ZS13ZWJr
aXQtbGlicy1qaGJ1aWxkCmluZGV4IGQ5ZGJmZjVkZGU0Li4xMDc5YTllOGFiNSAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0LWxpYnMtamhidWlsZAorKysgYi9Ub29scy9T
Y3JpcHRzL3VwZGF0ZS13ZWJraXQtbGlicy1qaGJ1aWxkCkBAIC0yNCw5ICsyNCwxMCBAQCB1c2Ug
R2V0b3B0OjpMb25nIHF3KDpjb25maWcgcGFzc190aHJvdWdoKTsKIAogbXkgJHBsYXRmb3JtID0g
IiI7CiAkcGxhdGZvcm0gPSAiZ3RrIiBpZiBpc0d0aygpOworJHBsYXRmb3JtID0gIndwZSIgaWYg
aXNXUEUoKTsKIAogaWYgKCEkcGxhdGZvcm0pIHsKLSAgICBkaWUgIk5vIHBsYXRmb3JtIHNwZWNp
ZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrLlxuIjsKKyAgICBkaWUgIk5v
IHBsYXRmb3JtIHNwZWNpZmllZCBmb3IgIiAuIGJhc2VuYW1lKCQwKSAuIi4gVXNlIC0tZ3RrIG9y
IC0td3BlLlxuIjsKIH0KIAogbXkgJHdpcGVPbkNoYW5nZSA9ICRFTlZ7SkhCVUlMRF9XSVBFX09O
X0NIQU5HRX0gLy8gMTsKQEAgLTEzMiw3ICsxMzMsNyBAQCBkZWxldGUgJEVOVntBUl9GTEFHU30g
aWYgZXhpc3RzICRFTlZ7QVJfRkxBR1N9OwogCiBjaGRpcihyZWxhdGl2ZVNjcmlwdHNEaXIoKSAu
ICIvLi4vamhidWlsZCIpIG9yIGRpZSAkITsKIAotbXkgJXByZXR0eVBsYXRmb3JtID0gKCAiZ3Rr
IiA9PiAiR1RLKyIgKTsKK215ICVwcmV0dHlQbGF0Zm9ybSA9ICggImd0ayIgPT4gIkdUSysiLCAi
d3BlIiA9PiAiV1BFIiApOwogCiBpZiAoISRmb3JjZSAmJiAhamhidWlsZENvbmZpZ3VyYXRpb25D
aGFuZ2VkKCkpIHsKICAgICBwcmludCAkcHJldHR5UGxhdGZvcm17JHBsYXRmb3JtfSAuICIgcG9y
dCBkZXBlbmRlbmNpZXMgYXJlIGFscmVhZHkgdXAgdG8gZGF0ZVxuIjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1NjcmlwdHMvdXBkYXRlLXdlYmtpdHdwZS1saWJzIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUt
d2Via2l0d3BlLWxpYnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAuLmIy
M2ZiZGU2YjgzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0
d3BlLWxpYnMKQEAgLTAsMCArMSwyNCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13CisjIENvcHlyaWdo
dCAoQykgMjAxMSBJZ2FsaWEgUy5MLgorIyBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9y
YXRpb24KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVl
IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFy
eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJh
cnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMw
MSAgVVNBCisKK3VzZSBGaW5kQmluOwordXNlIGxpYiAkRmluZEJpbjo6QmluOwordXNlIHdlYmtp
dGRpcnM7CisKK215ICRzY3JpcHRzRGlyID0gcmVsYXRpdmVTY3JpcHRzRGlyKCk7CitzeXN0ZW0o
InBlcmwiLCAiJHNjcmlwdHNEaXIvdXBkYXRlLXdlYmtpdC1saWJzLWpoYnVpbGQiLCAiLS13cGUi
LCBAQVJHVikgPT0gMCBvciBkaWUgJCE7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dGRpcnMucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KaW5kZXggYmM0NjU0NjE3ZDEu
LjZlOGUwZTdmZTU0IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0KKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xMDcsNiArMTA3LDcgQEAgdXNlIGNv
bnN0YW50IHsKICAgICBNYWMgICAgICA9PiAiTWFjIiwKICAgICBKU0NPbmx5ICA9PiAiSlNDT25s
eSIsCiAgICAgV2luQ2Fpcm8gPT4gIldpbkNhaXJvIiwKKyAgICBXUEUgICAgICA9PiAiV1BFIiwK
ICAgICBVbmtub3duICA9PiAiVW5rbm93biIKIH07CiAKQEAgLTQ0NSw2ICs0NDYsNyBAQCBzdWIg
YXJndW1lbnRzRm9yQ29uZmlndXJhdGlvbigpCiAgICAgcHVzaChAYXJncywgJy0tMzItYml0Jykg
aWYgKCRhcmNoaXRlY3R1cmUgbmUgIng4Nl82NCIgYW5kICFpc1dpbjY0KCkpOwogICAgIHB1c2go
QGFyZ3MsICctLTY0LWJpdCcpIGlmIChpc1dpbjY0KCkpOwogICAgIHB1c2goQGFyZ3MsICctLWd0
aycpIGlmIGlzR3RrKCk7CisgICAgcHVzaChAYXJncywgJy0td3BlJykgaWYgaXNXUEUoKTsKICAg
ICBwdXNoKEBhcmdzLCAnLS1qc2Mtb25seScpIGlmIGlzSlNDT25seSgpOwogICAgIHB1c2goQGFy
Z3MsICctLXdpbmNhaXJvJykgaWYgaXNXaW5DYWlybygpOwogICAgIHB1c2goQGFyZ3MsICctLWlu
c3BlY3Rvci1mcm9udGVuZCcpIGlmIGlzSW5zcGVjdG9yRnJvbnRlbmQoKTsKQEAgLTY4MCw3ICs2
ODIsNyBAQCBzdWIgZXhlY3V0YWJsZVByb2R1Y3REaXIKICAgICBteSAkcHJvZHVjdERpcmVjdG9y
eSA9IHByb2R1Y3REaXIoKTsKIAogICAgIG15ICRiaW5hcnlEaXJlY3Rvcnk7Ci0gICAgaWYgKGlz
R3RrKCkgfHwgaXNKU0NPbmx5KCkpIHsKKyAgICBpZiAoaXNHdGsoKSB8fCBpc0pTQ09ubHkoKSB8
fCBpc1dQRSgpKSB7CiAgICAgICAgICRiaW5hcnlEaXJlY3RvcnkgPSAiYmluIjsKICAgICB9IGVs
c2lmIChpc0FueVdpbmRvd3MoKSkgewogICAgICAgICAkYmluYXJ5RGlyZWN0b3J5ID0gaXNXaW42
NCgpID8gImJpbjY0IiA6ICJiaW4zMiI7CkBAIC05MzgsNiArOTQwLDkgQEAgc3ViIGJ1aWx0RHls
aWJQYXRoRm9yTmFtZQogICAgICAgICAgICAgcmV0dXJuICIkYmFzZVByb2R1Y3REaXIvJGxpYnJh
cnlOYW1lLmludGVybWVkaWF0ZS8kY29uZmlndXJhdGlvbi8kbGlicmFyeU5hbWUuaW50ZXJtZWRp
YXRlLyRsaWJyYXJ5TmFtZS5saWIiOwogICAgICAgICB9CiAgICAgfQorICAgIGlmIChpc1dQRSgp
KSB7CisgICAgICAgIHJldHVybiAiJGNvbmZpZ3VyYXRpb25Qcm9kdWN0RGlyL2xpYi9saWJXUEVX
ZWJLaXQuc28iOworICAgIH0KIAogICAgIGRpZSAiVW5zdXBwb3J0ZWQgcGxhdGZvcm0sIGNhbid0
IGRldGVybWluZSBidWlsdCBsaWJyYXJ5IGxvY2F0aW9ucy5cblRyeSBgYnVpbGQtd2Via2l0IC0t
aGVscGAgZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4iOwogfQpAQCAtMTA1Miw3ICsxMDU3LDggQEAg
c3ViIGRldGVybWluZVBvcnROYW1lKCkKICAgICBteSAlYXJnVG9Qb3J0TmFtZSA9ICgKICAgICAg
ICAgZ3RrID0+IEdUSywKICAgICAgICAgJ2pzYy1vbmx5JyA9PiBKU0NPbmx5LAotICAgICAgICB3
aW5jYWlybyA9PiBXaW5DYWlybworICAgICAgICB3aW5jYWlybyA9PiBXaW5DYWlybywKKyAgICAg
ICAgd3BlID0+IFdQRQogICAgICk7CiAKICAgICBmb3IgbXkgJGFyZyAoc29ydCBrZXlzICVhcmdU
b1BvcnROYW1lKSB7CkBAIC0xMDg2LDYgKzEwOTIsNyBAQCBzdWIgZGV0ZXJtaW5lUG9ydE5hbWUo
KQogICAgICAgICAgICAgbXkgJHBvcnRzQ2hvaWNlID0gam9pbiAiXG5cdCIsIHF3KAogICAgICAg
ICAgICAgICAgIC0tZ3RrCiAgICAgICAgICAgICAgICAgLS1qc2Mtb25seQorICAgICAgICAgICAg
ICAgIC0td3BlCiAgICAgICAgICAgICApOwogICAgICAgICAgICAgZGllICJQbGVhc2Ugc3BlY2lm
eSB3aGljaCBXZWJLaXQgcG9ydCB0byBidWlsZCB1c2luZyBvbmUgb2YgdGhlIGZvbGxvd2luZyBv
cHRpb25zOiIKICAgICAgICAgICAgICAgICAuICJcblx0JHBvcnRzQ2hvaWNlXG4iOwpAQCAtMTEx
Myw2ICsxMTIwLDExIEBAIHN1YiBpc0pTQ09ubHkoKQogICAgIHJldHVybiBwb3J0TmFtZSgpIGVx
IEpTQ09ubHk7CiB9CiAKK3N1YiBpc1dQRSgpCit7CisgICAgcmV0dXJuIHBvcnROYW1lKCkgZXEg
V1BFOworfQorCiAjIERldGVybWluZSBpZiB0aGlzIGlzIGRlYmlhbiwgdWJ1bnR1LCBsaW5zcGly
ZSwgb3Igc29tZXRoaW5nIHNpbWlsYXIuCiBzdWIgaXNEZWJpYW5CYXNlZCgpCiB7CkBAIC0xNTE2
LDYgKzE1MjgsOCBAQCBzdWIgbGF1bmNoZXJQYXRoKCkKICAgICAgICAgcmV0dXJuICIkcmVsYXRp
dmVTY3JpcHRzUGF0aC9ydW4tbWluaWJyb3dzZXIiOwogICAgIH0gZWxzaWYgKGlzQXBwbGVXZWJL
aXQoKSkgewogICAgICAgICByZXR1cm4gIiRyZWxhdGl2ZVNjcmlwdHNQYXRoL3J1bi1zYWZhcmki
OworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICIkcmVsYXRpdmVTY3Jp
cHRzUGF0aC9ydW4td3BlIjsKICAgICB9CiB9CiAKQEAgLTE1MjcsNiArMTU0MSw4IEBAIHN1YiBs
YXVuY2hlck5hbWUoKQogICAgICAgICByZXR1cm4gIlNhZmFyaSI7CiAgICAgfSBlbHNpZiAoaXNB
cHBsZVdpbldlYktpdCgpKSB7CiAgICAgICAgIHJldHVybiAiTWluaUJyb3dzZXIiOworICAgIH0g
ZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcmV0dXJuICJXUEVMYXVuY2hlciI7CiAgICAgfQog
fQogCkBAIC0xODI2LDYgKzE4NDIsOCBAQCBzdWIgZ2V0SmhidWlsZFBhdGgoKQogICAgIH0KICAg
ICBpZiAoaXNHdGsoKSkgewogICAgICAgICBwdXNoKEBqaGJ1aWxkUGF0aCwgIkRlcGVuZGVuY2ll
c0dUSyIpOworICAgIH0gZWxzaWYgKGlzV1BFKCkpIHsKKyAgICAgICAgcHVzaChAamhidWlsZFBh
dGgsICJEZXBlbmRlbmNpZXNXUEUiKTsKICAgICB9IGVsc2UgewogICAgICAgICBkaWUgIkNhbm5v
dCBnZXQgSkhCdWlsZCBwYXRoIGZvciBwbGF0Zm9ybSB0aGF0IGlzbid0IEdUSysuXG4iOwogICAg
IH0KQEAgLTE4NjYsNiArMTg4NCw4IEBAIHN1YiB3cmFwcGVyUHJlZml4SWZOZWVkZWQoKQogICAg
ICAgICBteSBAcHJlZml4ID0gKEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJUb29s
cyIsICJqaGJ1aWxkIiwgImpoYnVpbGQtd3JhcHBlciIpKTsKICAgICAgICAgaWYgKGlzR3RrKCkp
IHsKICAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0tZ3RrIik7CisgICAgICAgIH0gZWxzaWYg
KGlzV1BFKCkpIHsKKyAgICAgICAgICAgIHB1c2goQHByZWZpeCwgIi0td3BlIik7CiAgICAgICAg
IH0KICAgICAgICAgcHVzaChAcHJlZml4LCAicnVuIik7CiAKQEAgLTIwMjQsNyArMjA0NCw3IEBA
IHN1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJvamVjdAogICAgIHB1c2ggQGFyZ3Ms
ICctRFNIT1dfQklORElOR1NfR0VORVJBVElPTl9QUk9HUkVTUz0xJyB1bmxlc3MgKCR3aWxsVXNl
TmluamEgJiYgLXQgU1RET1VUKTsKIAogICAgICMgU29tZSBwb3J0cyBoYXZlIHByb2R1Y3Rpb24g
bW9kZSwgYnV0IGJ1aWxkLXdlYmtpdCBzaG91bGQgYWx3YXlzIHVzZSBkZXZlbG9wZXIgbW9kZS4K
LSAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGsoKSB8fCBpc0pT
Q09ubHkoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURERVZFTE9QRVJfTU9ERT1PTiIgaWYgaXNHdGso
KSB8fCBpc0pTQ09ubHkoKSB8fCBpc1dQRSgpOwogCiAgICAgIyBEb24ndCB3YXJuIHZhcmlhYmxl
cyB3aGljaCBhcmVuJ3QgdXNlZCBieSBjbWFrZSBwb3J0cy4KICAgICBwdXNoIEBhcmdzLCAiLS1u
by13YXJuLXVudXNlZC1jbGkiOwpAQCAtMjEwMSw2ICsyMTIxLDEwIEBAIHN1YiBidWlsZENNYWtl
UHJvamVjdE9yRXhpdCgkJCRAKQogICAgICAgICBzeXN0ZW0oInBlcmwiLCAiJHNvdXJjZURpci9U
b29scy9TY3JpcHRzL3VwZGF0ZS13ZWJraXRndGstbGlicyIpID09IDAgb3IgZGllICQhOwogICAg
IH0KIAorICAgIGlmIChpc1dQRSgpICYmIGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJH
VigiLS11cGRhdGUtd3BlIikpIHsKKyAgICAgICAgc3lzdGVtKCJwZXJsIiwgIiRzb3VyY2VEaXIv
VG9vbHMvU2NyaXB0cy91cGRhdGUtd2Via2l0d3BlLWxpYnMiKSA9PSAwIG9yIGRpZSAkITsKKyAg
ICB9CisKICAgICAkcmV0dXJuQ29kZSA9IGV4aXRTdGF0dXMoZ2VuZXJhdGVCdWlsZFN5c3RlbUZy
b21DTWFrZVByb2plY3QoJHByZWZpeFBhdGgsIEBjbWFrZUFyZ3MpKTsKICAgICBleGl0KCRyZXR1
cm5Db2RlKSBpZiAkcmV0dXJuQ29kZTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRwZXJsL0ZlYXR1cmVMaXN0LnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVM
aXN0LnBtCmluZGV4IDJjM2FlMTFhNzMwLi4yMTRlNTYxZGRkOSAxMDA2NDQKLS0tIGEvVG9vbHMv
U2NyaXB0cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cGVybC9GZWF0dXJlTGlzdC5wbQpAQCAtMTQ3LDEwICsxNDcsMTAgQEAgcHJvaGliaXRVbmtu
b3duUG9ydCgpOwogCiBteSBAZmVhdHVyZXMgPSAoCiAgICAgeyBvcHRpb24gPT4gIjNkLXJlbmRl
cmluZyIsIGRlc2MgPT4gIlRvZ2dsZSAzRCBSZW5kZXJpbmcgc3VwcG9ydCIsCi0gICAgICBkZWZp
bmUgPT4gIkVOQUJMRV8zRF9UUkFOU0ZPUk1TIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFu
c2Zvcm1zU3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfM0RfVFJBTlNGT1JNUyIs
IGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8IGlzSU9TV2ViS2l0KCkgfHwgaXNH
dGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0aHJlZURUcmFuc2Zvcm1zU3VwcG9ydCB9LAog
CiAgICAgeyBvcHRpb24gPT4gImFjY2VsZXJhdGVkLTJkLWNhbnZhcyIsIGRlc2MgPT4gIlRvZ2ds
ZSBBY2NlbGVyYXRlZCAyRCBDYW52YXMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMiLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkYWNjZWxl
cmF0ZWQyRENhbnZhc1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0FDQ0VMRVJB
VEVEXzJEX0NBTlZBUyIsIGRlZmF1bHQgPT4gaXNXUEUoKSwgdmFsdWUgPT4gXCRhY2NlbGVyYXRl
ZDJEQ2FudmFzU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImFsbGlub25lLWJ1aWxkIiwg
ZGVzYyA9PiAiVG9nZ2xlIGFsbC1pbi1vbmUgYnVpbGQiLAogICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfQUxMSU5PTkVfQlVJTEQiLCBkZWZhdWx0ID0+IGlzV2luZG93cygpLCB2YWx1ZSA9PiBcJGFs
bEluT25lQnVpbGQgfSwKQEAgLTE4Myw3ICsxODMsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAg
ICBkZWZpbmUgPT4gIkVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTiIsIGRlZmF1bHQgPT4gaXNH
dGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVJlc29sdXRpb25TdXBwb3J0IH0sCiAKICAgICB7IG9w
dGlvbiA9PiAiY3NzLWltYWdlLXNldCIsIGRlc2MgPT4gIlRvZ2dsZSBDU1MgaW1hZ2Utc2V0IHN1
cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX0lNQUdFX1NFVCIsIGRlZmF1bHQg
PT4gaXNHdGsoKSwgdmFsdWUgPT4gXCRjc3NJbWFnZVNldFN1cHBvcnQgfSwKKyAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX0NTU19JTUFHRV9TRVQiLCBkZWZhdWx0ID0+IChpc0d0aygpIHx8IGlzV1BF
KCkpLCB2YWx1ZSA9PiBcJGNzc0ltYWdlU2V0U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4g
ImNzcy1yZWdpb25zIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBSZWdpb25zIHN1cHBvcnQiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfQ1NTX1JFR0lPTlMiLCBkZWZhdWx0ID0+IDEsIHZhbHVlID0+
IFwkY3NzUmVnaW9uc1N1cHBvcnQgfSwKQEAgLTIwNyw3ICsyMDcsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9EQVRBTElTVF9FTEVNRU5UIiwgZGVmYXVsdCA9
PiAwLCB2YWx1ZSA9PiBcJGRhdGFsaXN0RWxlbWVudFN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9u
ID0+ICJkZXZpY2Utb3JpZW50YXRpb24iLCBkZXNjID0+ICJUb2dnbGUgRGV2aWNlIE9yaWVudGF0
aW9uIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9O
IiwgZGVmYXVsdCA9PiBpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJGRldmljZU9yaWVudGF0aW9u
U3VwcG9ydCB9LAorICAgICAgZGVmaW5lID0+ICJFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OIiwg
ZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCRkZXZpY2VP
cmllbnRhdGlvblN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJkb200LWV2ZW50cy1jb25z
dHJ1Y3RvciIsIGRlc2MgPT4gIkV4cG9zZSBET000IEV2ZW50cyBjb25zdHJ1Y3RvcnMiLAogICAg
ICAgZGVmaW5lID0+ICJFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IiLCBkZWZhdWx0ID0+
IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkZG9tNEV2ZW50c0NvbnN0
cnVjdG9yIH0sCkBAIC0yMjUsNyArMjI1LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVm
aW5lID0+ICJFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUyIsIGRlZmF1bHQgPT4gMCwgdmFsdWUgPT4g
XCRmb250TG9hZEV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJmdGwtaml0Iiwg
ZGVzYyA9PiAiVG9nZ2xlIEZUTEpJVCBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlNDT25s
eSgpKSkgLCB2YWx1ZSA9PiBcJGZ0bEpJVFN1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX0ZUTF9KSVQiLCBkZWZhdWx0ID0+IChpc1g4Nl82NCgpICYmIChpc0d0aygpIHx8IGlzSlND
T25seSgpIHx8IGlzV1BFKCkpKSAsIHZhbHVlID0+IFwkZnRsSklUU3VwcG9ydCB9LAogCiAgICAg
eyBvcHRpb24gPT4gImZ0cGRpciIsIGRlc2MgPT4gIlRvZ2dsZSBGVFAgRGlyZWN0b3J5IHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfRlRQRElSIiwgZGVmYXVsdCA9PiAxLCB2YWx1
ZSA9PiBcJGZ0cERpclN1cHBvcnQgfSwKQEAgLTIzNyw3ICsyMzcsNyBAQCBteSBAZmVhdHVyZXMg
PSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9HQU1FUEFEIiwgZGVmYXVsdCA9PiAwLCB2YWx1
ZSA9PiBcJGdhbWVwYWRTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiZ2VvbG9jYXRpb24i
LCBkZXNjID0+ICJUb2dnbGUgR2VvbG9jYXRpb24gc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9HRU9MT0NBVElPTiIsIGRlZmF1bHQgPT4gKGlzQXBwbGVXZWJLaXQoKSB8fCBpc0lP
U1dlYktpdCgpIHx8IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfR0VPTE9DQVRJT04iLCBkZWZhdWx0ID0+IChpc0FwcGxl
V2ViS2l0KCkgfHwgaXNJT1NXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9
PiBcJGdlb2xvY2F0aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gImhpZ2gtZHBpLWNh
bnZhcyIsIGRlc2MgPT4gIlRvZ2dsZSBIaWdoIERQSSBDYW52YXMgc3VwcG9ydCIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9ISUdIX0RQSV9DQU5WQVMiLCBkZWZhdWx0ID0+IChpc0FwcGxlV2Vi
S2l0KCkpLCB2YWx1ZSA9PiBcJGhpZ2hEUElDYW52YXNTdXBwb3J0IH0sCkBAIC0yNDYsNyArMjQ2
LDcgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfSUNPTkRBVEFC
QVNFIiwgZGVmYXVsdCA9PiAhaXNJT1NXZWJLaXQoKSwgdmFsdWUgPT4gXCRpY29uZGF0YWJhc2VT
dXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiaW5kZXhlZC1kYXRhYmFzZSIsIGRlc2MgPT4g
IlRvZ2dsZSBJbmRleGVkIERhdGFiYXNlIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFC
TEVfSU5ERVhFRF9EQVRBQkFTRSIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8
IGlzR3RrKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRhYmFzZVN1cHBvcnQgfSwKKyAgICAgIGRl
ZmluZSA9PiAiRU5BQkxFX0lOREVYRURfREFUQUJBU0UiLCBkZWZhdWx0ID0+IChpc0FwcGxlQ29j
b2FXZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJGluZGV4ZWREYXRh
YmFzZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJpbnB1dC1zcGVlY2giLCBkZXNjID0+
ICJUb2dnbGUgSW5wdXQgU3BlZWNoIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
SU5QVVRfU1BFRUNIIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJGlucHV0U3BlZWNoU3VwcG9y
dCB9LApAQCAtMzEyLDcgKzMxMiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX01FVEVSX0VMRU1FTlQiLCBkZWZhdWx0ID0+ICFpc0FwcGxlV2luV2ViS2l0KCks
IHZhbHVlID0+IFwkbWV0ZXJFbGVtZW50U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm1o
dG1sIiwgZGVzYyA9PiAiVG9nZ2xlIE1IVE1MIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJF
TkFCTEVfTUhUTUwiLCBkZWZhdWx0ID0+IGlzR3RrKCksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0
IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NSFRNTCIsIGRlZmF1bHQgPT4gKGlzR3RrKCkg
fHwgaXNXUEUoKSksIHZhbHVlID0+IFwkbWh0bWxTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9
PiAibW91c2UtY3Vyc29yLXNjYWxlIiwgZGVzYyA9PiAiVG9nZ2xlIFNjYWxlZCBtb3VzZSBjdXJz
b3Igc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUi
LCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkbW91c2VDdXJzb3JTY2FsZVN1cHBvcnQgfSwKQEAg
LTMyNCw3ICszMjQsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZpbmUgPT4gIkVOQUJM
RV9OQVZJR0FUT1JfSFdDT05DVVJSRU5DWSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCRoYXJk
d2FyZUNvbmN1cnJlbmN5U3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gIm5ldHNjYXBlLXBs
dWdpbi1hcGkiLCBkZXNjID0+ICJUb2dnbGUgTmV0c2NhcGUgUGx1Z2luIEFQSSBzdXBwb3J0IiwK
LSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEkiLCBkZWZhdWx0ID0+
ICFpc0lPU1dlYktpdCgpLCB2YWx1ZSA9PiBcJG5ldHNjYXBlUGx1Z2luQVBJU3VwcG9ydCB9LAor
ICAgICAgZGVmaW5lID0+ICJFTkFCTEVfTkVUU0NBUEVfUExVR0lOX0FQSSIsIGRlZmF1bHQgPT4g
KCFpc0lPU1dlYktpdCgpICYmICFpc1dQRSgpKSwgdmFsdWUgPT4gXCRuZXRzY2FwZVBsdWdpbkFQ
SVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJub3NuaWZmIiwgZGVzYyA9PiAiVG9nZ2xl
IHN1cHBvcnQgZm9yICdYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBub3NuaWZmJyIsCiAgICAgICBk
ZWZpbmUgPT4gIkVOQUJMRV9OT1NOSUZGIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2ViS2l0
KCkgfHwgaXNBcHBsZVdpbldlYktpdCgpKSwgdmFsdWUgPT4gXCRub3NuaWZmU3VwcG9ydCB9LApA
QCAtMzM2LDcgKzMzNiw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAgICAgIGRlZmluZSA9PiAiRU5B
QkxFX09SSUVOVEFUSU9OX0VWRU5UUyIsIGRlZmF1bHQgPT4gaXNJT1NXZWJLaXQoKSwgdmFsdWUg
PT4gXCRvcmllbnRhdGlvbkV2ZW50c1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwZXJm
b3JtYW5jZS10aW1lbGluZSIsIGRlc2MgPT4gIlRvZ2dsZSBQZXJmb3JtYW5jZSBUaW1lbGluZSBz
dXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1BFUkZPUk1BTkNFX1RJTUVMSU5FIiwg
ZGVmYXVsdCA9PiBpc0d0aygpLCB2YWx1ZSA9PiBcJHBlcmZvcm1hbmNlVGltZWxpbmVTdXBwb3J0
IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9QRVJGT1JNQU5DRV9USU1FTElORSIsIGRlZmF1
bHQgPT4gKGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkcGVyZm9ybWFuY2VUaW1lbGlu
ZVN1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJwcm94aW1pdHktZXZlbnRzIiwgZGVzYyA9
PiAiVG9nZ2xlIFByb3hpbWl0eSBFdmVudHMgc3VwcG9ydCIsCiAgICAgICBkZWZpbmUgPT4gIkVO
QUJMRV9QUk9YSU1JVFlfRVZFTlRTIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHByb3hpbWl0
eUV2ZW50c1N1cHBvcnQgfSwKQEAgLTM2Niw3ICszNjYsNyBAQCBteSBAZmVhdHVyZXMgPSAoCiAg
ICAgICBkZWZpbmUgPT4gIlVTRV9TWVNURU1fTUFMTE9DIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9
PiBcJHN5c3RlbU1hbGxvY1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ0b3VjaC1ldmVu
dHMiLCBkZXNjID0+ICJUb2dnbGUgVG91Y2ggRXZlbnRzIHN1cHBvcnQiLAotICAgICAgZGVmaW5l
ID0+ICJFTkFCTEVfVE9VQ0hfRVZFTlRTIiwgZGVmYXVsdCA9PiAoaXNJT1NXZWJLaXQoKSB8fCBp
c0d0aygpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9
PiAiRU5BQkxFX1RPVUNIX0VWRU5UUyIsIGRlZmF1bHQgPT4gKGlzSU9TV2ViS2l0KCkgfHwgaXNH
dGsoKSB8fCBpc1dQRSgpKSwgdmFsdWUgPT4gXCR0b3VjaEV2ZW50c1N1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ0b3VjaC1pY29uLWxvYWRpbmciLCBkZXNjID0+ICJUb2dnbGUgVG91Y2gg
SWNvbiBMb2FkaW5nIFN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVE9VQ0hfSUNP
Tl9MT0FESU5HIiwgZGVmYXVsdCA9PiAwLCB2YWx1ZSA9PiBcJHRvdWNoSWNvbkxvYWRpbmdTdXBw
b3J0IH0sCkBAIC0zNzgsMTYgKzM3OCwxNiBAQCBteSBAZmVhdHVyZXMgPSAoCiAgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9WSUJSQVRJT04iLCBkZWZhdWx0ID0+IDAsIHZhbHVlID0+IFwkdmlicmF0
aW9uU3VwcG9ydCB9LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvIiwgZGVzYyA9PiAiVG9nZ2xl
IFZpZGVvIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU8iLCBkZWZhdWx0
ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlkZW9TdXBwb3J0
IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9WSURFTyIsIGRlZmF1bHQgPT4gKGlzQXBwbGVX
ZWJLaXQoKSB8fCBpc0d0aygpIHx8IGlzV1BFKCkpLCB2YWx1ZSA9PiBcJHZpZGVvU3VwcG9ydCB9
LAogCiAgICAgeyBvcHRpb24gPT4gInZpZGVvLXRyYWNrIiwgZGVzYyA9PiAiVG9nZ2xlIFZpZGVv
IFRyYWNrIHN1cHBvcnQiLAotICAgICAgZGVmaW5lID0+ICJFTkFCTEVfVklERU9fVFJBQ0siLCBk
ZWZhdWx0ID0+IChpc0FwcGxlV2ViS2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkdmlkZW9U
cmFja1N1cHBvcnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1ZJREVPX1RSQUNLIiwgZGVm
YXVsdCA9PiAoaXNBcHBsZVdlYktpdCgpIHx8IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+
IFwkdmlkZW9UcmFja1N1cHBvcnQgfSwKIAogICAgIHsgb3B0aW9uID0+ICJ3ZWItYW5pbWF0aW9u
cyIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgQW5pbWF0aW9ucyBzdXBwb3J0IiwKICAgICAgIGRlZmlu
ZSA9PiAiRU5BQkxFX1dFQl9BTklNQVRJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9PiBcJHdl
YkFuaW1hdGlvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAid2ViLWF1ZGlvIiwgZGVz
YyA9PiAiVG9nZ2xlIFdlYiBBdWRpbyBzdXBwb3J0IiwKLSAgICAgIGRlZmluZSA9PiAiRU5BQkxF
X1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gaXNHdGsoKSwgdmFsdWUgPT4gXCR3ZWJBdWRpb1N1cHBv
cnQgfSwKKyAgICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQl9BVURJTyIsIGRlZmF1bHQgPT4gKGlz
R3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViQXVkaW9TdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAid2ViLXJlcGxheSIsIGRlc2MgPT4gIlRvZ2dsZSBXZWIgUmVwbGF5IHN1cHBv
cnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV0VCX1JFUExBWSIsIGRlZmF1bHQgPT4gaXNB
cHBsZUNvY29hV2ViS2l0KCksIHZhbHVlID0+IFwkd2ViUmVwbGF5U3VwcG9ydCB9LApAQCAtNDAy
LDEwICs0MDIsMTAgQEAgbXkgQGZlYXR1cmVzID0gKAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVf
V0VCX1RJTUlORyIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3ZWJUaW1pbmdTdXBwb3J0IH0s
CiAKICAgICB7IG9wdGlvbiA9PiAid2ViYXNzZW1ibHkiLCBkZXNjID0+ICJUb2dnbGUgV2ViQXNz
ZW1ibHkgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJBU1NFTUJMWSIsIGRl
ZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5KCkpKSAsIHZhbHVl
ID0+IFwkd2ViQXNzZW1ibHlTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9XRUJB
U1NFTUJMWSIsIGRlZmF1bHQgPT4gKGlzWDg2XzY0KCkgJiYgKGlzR3RrKCkgfHwgaXNKU0NPbmx5
KCkgfHwgaXNXUEUoKSkpICwgdmFsdWUgPT4gXCR3ZWJBc3NlbWJseVN1cHBvcnQgfSwKIAogICAg
IHsgb3B0aW9uID0+ICJ3ZWJnbCIsIGRlc2MgPT4gIlRvZ2dsZSBXZWJHTCBzdXBwb3J0IiwKLSAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX1dFQkdMIiwgZGVmYXVsdCA9PiAoaXNBcHBsZUNvY29hV2Vi
S2l0KCkgfHwgaXNHdGsoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCisgICAgICBkZWZp
bmUgPT4gIkVOQUJMRV9XRUJHTCIsIGRlZmF1bHQgPT4gKGlzQXBwbGVDb2NvYVdlYktpdCgpIHx8
IGlzR3RrKCkgfHwgaXNXUEUoKSksIHZhbHVlID0+IFwkd2ViZ2xTdXBwb3J0IH0sCiAKICAgICB7
IG9wdGlvbiA9PiAid3JpdGFibGVTdHJlYW1BUEkiLCBkZXNjID0+ICJUb2dnbGUgV3JpdGFibGVT
dHJlYW0gQVBJIHN1cHBvcnQiLAogICAgICAgZGVmaW5lID0+ICJFTkFCTEVfV1JJVEFCTEVfU1RS
RUFNX0FQSSIsIGRlZmF1bHQgPT4gMSwgdmFsdWUgPT4gXCR3cml0YWJsZVN0cmVhbUFQSVN1cHBv
cnQgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3J1
bl93ZWJraXRfdGVzdHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9y
dW5fd2Via2l0X3Rlc3RzLnB5CmluZGV4IDdjNmRkYzgzOWYzLi41NzJlOGE1ZTc3ZCAxMDA3NTUK
LS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0
cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzLnB5CkBAIC00MjQsNyArNDI0LDcgQEAgZGVmIF9zZXRfdXBfZGVyaXZlZF9vcHRpb25z
KHBvcnQsIG9wdGlvbnMpOgogICAgICAgICBvcHRpb25zLnZlcmJvc2UgPSBUcnVlCiAKICAgICAj
IFRoZSBHVEsrIGFuZCBFRkwgcG9ydHMgb25seSBzdXBwb3J0IFdlYktpdDIgc28gdGhleSBhbHdh
eXMgdXNlIFdLVFIuCi0gICAgaWYgb3B0aW9ucy5wbGF0Zm9ybSA9PSAiZ3RrIiBvciBvcHRpb25z
LnBsYXRmb3JtID09ICJlZmwiOgorICAgIGlmIG9wdGlvbnMucGxhdGZvcm0gaW4gWyJlZmwiLCAi
Z3RrIiwgIndwZSJdOgogICAgICAgICBvcHRpb25zLndlYmtpdF90ZXN0X3J1bm5lciA9IFRydWUK
IAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weSBi
L1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CmluZGV4IDc1ZGVlYzU3Y2Ji
Li5iZTA5N2ZmZWYxZiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Zh
Y3RvcnkucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkKQEAg
LTUzLDYgKzUzLDkgQEAgZGVmIHBsYXRmb3JtX29wdGlvbnModXNlX2dsb2JzPUZhbHNlKToKICAg
ICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tZ3RrJywgYWN0aW9uPSdzdG9yZV9jb25zdCcs
IGRlc3Q9J3BsYXRmb3JtJywKICAgICAgICAgICAgIGNvbnN0PSgnZ3RrKicgaWYgdXNlX2dsb2Jz
IGVsc2UgJ2d0aycpLAogICAgICAgICAgICAgaGVscD0oJ0FsaWFzIGZvciAtLXBsYXRmb3JtPWd0
ayonIGlmIHVzZV9nbG9icyBlbHNlICdBbGlhcyBmb3IgLS1wbGF0Zm9ybT1ndGsnKSksCisgICAg
ICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLXdwZScsIGFjdGlvbj0nc3RvcmVfY29uc3QnLCBk
ZXN0PSdwbGF0Zm9ybScsCisgICAgICAgICAgICBjb25zdD0oJ3dwZSonIGlmIHVzZV9nbG9icyBl
bHNlICd3cGUnKSwKKyAgICAgICAgICAgIGhlbHA9KCdBbGlhcyBmb3IgLS1wbGF0Zm9ybT13cGUn
KSksCiAgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLW5vLWluc3RhbGwnLCBhY3Rpb249
J3N0b3JlX2NvbnN0JywKICAgICAgICAgICAgIGNvbnN0PUZhbHNlLCBkZWZhdWx0PVRydWUsIGRl
c3Q9J2luc3RhbGwnLAogICAgICAgICAgICAgaGVscD0nU2tpcCBpbnN0YWxsIHN0ZXAgZm9yIGRl
dmljZSBhbmQgc2ltdWxhdG9yIHRlc3RpbmcnKSwKQEAgLTkzLDYgKzk2LDcgQEAgY2xhc3MgUG9y
dEZhY3Rvcnkob2JqZWN0KToKICAgICAgICAgJ3Rlc3QuVGVzdFBvcnQnLAogICAgICAgICAnd2lu
LldpbkNhaXJvUG9ydCcsCiAgICAgICAgICd3aW4uV2luUG9ydCcsCisgICAgICAgICd3cGUuV1BF
UG9ydCcsCiAgICAgKQogCiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIGhvc3QpOgpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3dwZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC93cGUucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu
LmIzY2QwODY1YTRlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L3dwZS5weQpAQCAtMCwwICsxLDc5IEBACisjIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEg
Uy5MLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBh
cmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgR29vZ2xl
IG5hbWUgbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJV
VE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMgT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorIyBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitmcm9tIHdlYmtpdHB5LmNv
bW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKK2Zyb20gd2Via2l0cHkubGF5b3V0X3Rlc3Rz
Lm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRlc3RDb25maWd1cmF0aW9uCitmcm9t
IHdlYmtpdHB5LnBvcnQuYmFzZSBpbXBvcnQgUG9ydAorZnJvbSB3ZWJraXRweS5wb3J0LmxpbnV4
X2dldF9jcmFzaF9sb2cgaW1wb3J0IEdEQkNyYXNoTG9nR2VuZXJhdG9yCisKKworY2xhc3MgV1BF
UG9ydChQb3J0KToKKyAgICBwb3J0X25hbWUgPSAid3BlIgorCisgICAgZGVmIF9faW5pdF9fKHNl
bGYsICphcmdzLCAqKmt3YXJncyk6CisgICAgICAgIHN1cGVyKFdQRVBvcnQsIHNlbGYpLl9faW5p
dF9fKCphcmdzLCAqKmt3YXJncykKKworICAgICAgICBpZiBzZWxmLl9zaG91bGRfdXNlX2poYnVp
bGQoKToKKyAgICAgICAgICAgIHNlbGYuX2poYnVpbGRfd3JhcHBlciA9IFtzZWxmLnBhdGhfZnJv
bV93ZWJraXRfYmFzZSgnVG9vbHMnLCAnamhidWlsZCcsICdqaGJ1aWxkLXdyYXBwZXInKSwgJy0t
d3BlJywgJ3J1biddCisgICAgICAgICAgICBzZWxmLnNldF9vcHRpb25fZGVmYXVsdCgnd3JhcHBl
cicsICcgJy5qb2luKHNlbGYuX2poYnVpbGRfd3JhcHBlcikpCisKKyAgICBkZWYgZGVmYXVsdF90
aW1lb3V0X21zKHNlbGYpOgorICAgICAgICByZXR1cm4gNjAwMAorCisgICAgZGVmIF9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKHNlbGYsICpwYXRoKToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2J1aWxk
X3BhdGgoKigoJ2JpbicsKSArIHBhdGgpKQorCisgICAgZGVmIF9idWlsdF9saWJyYXJpZXNfcGF0
aChzZWxmLCAqcGF0aCk6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsZF9wYXRoKCooKCdsaWIn
LCkgKyBwYXRoKSkKKworICAgIGRlZiBfcG9ydF9mbGFnX2Zvcl9zY3JpcHRzKHNlbGYpOgorICAg
ICAgICByZXR1cm4gIi0td3BlIgorCisgICAgZGVmIHNldHVwX2Vudmlyb25fZm9yX3NlcnZlcihz
ZWxmLCBzZXJ2ZXJfbmFtZT1Ob25lKToKKyAgICAgICAgZW52aXJvbm1lbnQgPSBzdXBlcihXUEVQ
b3J0LCBzZWxmKS5zZXR1cF9lbnZpcm9uX2Zvcl9zZXJ2ZXIoc2VydmVyX25hbWUpCisgICAgICAg
IGVudmlyb25tZW50WydHU0VUVElOR1NfQkFDS0VORCddID0gJ21lbW9yeScKKyAgICAgICAgZW52
aXJvbm1lbnRbJ1RFU1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSddID0gc2VsZi5f
YnVpbGRfcGF0aCgnbGliJywgJ2xpYlRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZS5zbycpCisgICAg
ICAgIGVudmlyb25tZW50WydURVNUX1JVTk5FUl9URVNUX1BMVUdJTl9QQVRIJ10gPSBzZWxmLl9i
dWlsZF9wYXRoKCdsaWInLCAncGx1Z2lucycpCisgICAgICAgIGVudmlyb25tZW50WydXRUJLSVRf
RVhFQ19QQVRIJ10gPSBzZWxmLl9idWlsZF9wYXRoKCdiaW4nKQorICAgICAgICByZXR1cm4gZW52
aXJvbm1lbnQKKworICAgIGRlZiBfZ2VuZXJhdGVfYWxsX3Rlc3RfY29uZmlndXJhdGlvbnMoc2Vs
Zik6CisgICAgICAgIGNvbmZpZ3VyYXRpb25zID0gW10KKyAgICAgICAgZm9yIGJ1aWxkX3R5cGUg
aW4gc2VsZi5BTExfQlVJTERfVFlQRVM6CisgICAgICAgICAgICBjb25maWd1cmF0aW9ucy5hcHBl
bmQoVGVzdENvbmZpZ3VyYXRpb24odmVyc2lvbj1zZWxmLl92ZXJzaW9uLCBhcmNoaXRlY3R1cmU9
J3g4NicsIGJ1aWxkX3R5cGU9YnVpbGRfdHlwZSkpCisgICAgICAgIHJldHVybiBjb25maWd1cmF0
aW9ucworCisgICAgZGVmIF9wYXRoX3RvX2RyaXZlcihzZWxmKToKKyAgICAgICAgcmV0dXJuIHNl
bGYuX2J1aWx0X2V4ZWN1dGFibGVzX3BhdGgoc2VsZi5kcml2ZXJfbmFtZSgpKQorCisgICAgZGVm
IF9wYXRoX3RvX2ltYWdlX2RpZmYoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9idWlsdF9l
eGVjdXRhYmxlc19wYXRoKCdJbWFnZURpZmYnKQorCisgICAgZGVmIF9nZXRfY3Jhc2hfbG9nKHNl
bGYsIG5hbWUsIHBpZCwgc3Rkb3V0LCBzdGRlcnIsIG5ld2VyX3RoYW4pOgorICAgICAgICBuYW1l
ID0gIldQRVdlYlByb2Nlc3MiIGlmIG5hbWUgPT0gIldlYlByb2Nlc3MiIGVsc2UgbmFtZQorICAg
ICAgICByZXR1cm4gR0RCQ3Jhc2hMb2dHZW5lcmF0b3IobmFtZSwgcGlkLCBuZXdlcl90aGFuLCBz
ZWxmLl9maWxlc3lzdGVtLCBzZWxmLl9wYXRoX3RvX2RyaXZlcikuZ2VuZXJhdGVfY3Jhc2hfbG9n
KHN0ZG91dCwgc3RkZXJyKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9y
bVdQRS5jbWFrZSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvUGxhdGZvcm1XUEUuY21ha2UKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI5Nzg0NzU1ZjM2Ci0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9QbGF0Zm9ybVdQRS5jbWFrZQpAQCAtMCwwICsx
LDYwIEBACitzZXQoVEVTVFdFQktJVEFQSV9SVU5USU1FX09VVFBVVF9ESVJFQ1RPUlkgIiR7Q01B
S0VfUlVOVElNRV9PVVRQVVRfRElSRUNUT1JZfS9UZXN0V2ViS2l0QVBJIikKK3NldChURVNUV0VC
S0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWV9XVEYgIiR7VEVTVFdFQktJVEFQSV9SVU5U
SU1FX09VVFBVVF9ESVJFQ1RPUll9L1dURiIpCisKKyMgVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVz
ZSBpdCBpcyBwb3NzaWJsZSB0byBidWlsZCBUZXN0V2ViS2l0QVBJIHdpdGggV2ViS2l0MgorIyBk
aXNhYmxlZCBhbmQgdGhpcyB0cmlnZ2VycyB0aGUgaW5jbHVzaW9uIG9mIHRoZSBXZWJLaXQyIGhl
YWRlcnMuCithZGRfZGVmaW5pdGlvbnMoLURCVUlMRElOR19XRUJLSVQyX18pCisKK2FkZF9jdXN0
b21fdGFyZ2V0KFRlc3RXZWJLaXRBUEktZm9yd2FyZGluZy1oZWFkZXJzCisgICAgQ09NTUFORCAk
e1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5lcmF0ZS1mb3J3YXJk
aW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtURVNUV0VCS0lUQVBJX0RJUn0gLS1vdXRw
dXQgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfSAtLXBsYXRmb3JtIHdwZSAtLXBsYXRmb3JtIHNv
dXAKKyAgICBERVBFTkRTIHdlYmtpdDJ3cGUtZm9yd2FyZGluZy1oZWFkZXJzCispCisKK3NldChG
b3J3YXJkaW5nSGVhZGVyc0ZvclRlc3RXZWJLaXRBUElfTkFNRSBUZXN0V2ViS2l0QVBJLWZvcndh
cmRpbmctaGVhZGVycykKKworaW5jbHVkZV9kaXJlY3RvcmllcygKKyAgICAke0ZPUldBUkRJTkdf
SEVBREVSU19ESVJ9CisgICAgJHtGT1JXQVJESU5HX0hFQURFUlNfRElSfS9KYXZhU2NyaXB0Q29y
ZQorKQorCitpbmNsdWRlX2RpcmVjdG9yaWVzKFNZU1RFTQorICAgICR7R0xJQl9JTkNMVURFX0RJ
UlN9CisgICAgJHtMSUJTT1VQX0lOQ0xVREVfRElSU30KKykKKworc2V0KHRlc3RfbWFpbl9TT1VS
Q0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL21haW4uY3BwCispCisKK3NldChidW5k
bGVfaGFybmVzc19TT1VSQ0VTCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vd3BlL0luamVjdGVk
QnVuZGxlQ29udHJvbGxlcldQRS5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS93cGUvUGxh
dGZvcm1VdGlsaXRpZXNXUEUuY3BwCispCisKKyMgVGVzdFdURgorCitsaXN0KEFQUEVORCBUZXN0
V1RGX1NPVVJDRVMKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XVEYvZ2xpYi9HVW5p
cXVlUHRyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dURi9nbGliL1dvcmtR
dWV1ZUdMaWIuY3BwCispCisKKyMgVGVzdFdlYkNvcmUKKworYWRkX2V4ZWN1dGFibGUoVGVzdFdl
YkNvcmUKKyAgICAke3Rlc3RfbWFpbl9TT1VSQ0VTfQorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9
L1Rlc3RzQ29udHJvbGxlci5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJD
b3JlL0hUTUxQYXJzZXJJZGlvbXMuY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMv
V2ViQ29yZS9MYXlvdXRVbml0LmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dl
YkNvcmUvVVJMLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyLmNwcAorICAgICR7VEVTVFdFQktJVEFQSV9ESVJ9L1Rlc3RzL1dlYkNvcmUvU2hh
cmVkQnVmZmVyVGVzdC5jcHAKKyAgICAke1RFU1RXRUJLSVRBUElfRElSfS9UZXN0cy9XZWJDb3Jl
L0ZpbGVTeXN0ZW0uY3BwCisgICAgJHtURVNUV0VCS0lUQVBJX0RJUn0vVGVzdHMvV2ViQ29yZS9Q
dWJsaWNTdWZmaXguY3BwCispCisKK3RhcmdldF9saW5rX2xpYnJhcmllcyhUZXN0V2ViQ29yZSAk
e3Rlc3Rfd2ViY29yZV9MSUJSQVJJRVN9KQorYWRkX2RlcGVuZGVuY2llcyhUZXN0V2ViQ29yZSAk
e0ZvcndhcmRpbmdIZWFkZXJzRm9yVGVzdFdlYktpdEFQSV9OQU1FfSkKKworYWRkX3Rlc3QoVGVz
dFdlYkNvcmUgJHtURVNUV0VCS0lUQVBJX1JVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWX0vV2ViQ29y
ZS9UZXN0V2ViQ29yZSkKK3NldF90ZXN0c19wcm9wZXJ0aWVzKFRlc3RXZWJDb3JlIFBST1BFUlRJ
RVMgVElNRU9VVCA2MCkKK3NldF90YXJnZXRfcHJvcGVydGllcyhUZXN0V2ViQ29yZSBQUk9QRVJU
SUVTIFJVTlRJTUVfT1VUUFVUX0RJUkVDVE9SWSAke1RFU1RXRUJLSVRBUElfUlVOVElNRV9PVVRQ
VVRfRElSRUNUT1JZfS9XZWJDb3JlKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93
cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d3BlL0luamVjdGVkQnVuZGxlQ29udHJvbGxlcldQRS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAuLmZkMjEyMWJkN2EyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS93cGUvSW5qZWN0ZWRCdW5kbGVDb250cm9sbGVyV1BFLmNwcApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZUNvbnRyb2xs
ZXIuaCIKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCit2b2lkIEluamVjdGVkQnVuZGxl
Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworfSAvLyBuYW1lc3BhY2Ug
VGVzdFdlYktpdEFQSQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZv
cm1VdGlsaXRpZXNXUEUuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS93cGUvUGxhdGZvcm1VdGls
aXRpZXNXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5lMjFj
MWVhYTJmMwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL1BsYXRm
b3JtVXRpbGl0aWVzV1BFLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNs
dWRlICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorCisjaW5jbHVkZSA8d3RmL2dsaWIvR1JlZlB0ci5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFRlc3RXZWJL
aXRBUEkgeworbmFtZXNwYWNlIFV0aWwgeworCit2b2lkIHNsZWVwKGRvdWJsZSBzZWNvbmRzKQor
eworICAgIGdfdXNsZWVwKHNlY29uZHMgKiAxMDAwMDAwKTsKK30KKworc3RhdGljIGNoYXIqIGdl
dEZpbGVuYW1lRnJvbUVudmlyb25tZW50VmFyaWFibGVBc1VURjgoY29uc3QgY2hhciogdmFyaWFi
bGVOYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYodmFyaWFibGVOYW1l
KTsKKyAgICBpZiAoIXZhbHVlKSB7CisgICAgICAgIGdfcHJpbnRlcnIoIiVzIGVudmlyb25tZW50
IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhpdCgxKTsK
KyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVuYW1lX3Rv
X3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKworV0tTdHJpbmdSZWYg
Y3JlYXRlSW5qZWN0ZWRCdW5kbGVQYXRoKCkKK3sKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGluamVj
dGVkQnVuZGxlUGF0aChnZXRGaWxlbmFtZUZyb21FbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4KCJU
RVNUX1dFQktJVF9BUElfV0VCS0lUMl9JTkpFQ1RFRF9CVU5ETEVfUEFUSCIpKTsKKyAgICBHVW5p
cXVlUHRyPGNoYXI+IGluamVjdGVkQnVuZGxlRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShpbmpl
Y3RlZEJ1bmRsZVBhdGguZ2V0KCksICJsaWJUZXN0V2ViS2l0QVBJSW5qZWN0ZWRCdW5kbGUuc28i
LCBudWxscHRyKSk7CisgICAgcmV0dXJuIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKGlu
amVjdGVkQnVuZGxlRmlsZW5hbWUuZ2V0KCkpOworfQorCitXS1VSTFJlZiBjcmVhdGVVUkxGb3JS
ZXNvdXJjZShjb25zdCBjaGFyKiByZXNvdXJjZSwgY29uc3QgY2hhciogZXh0ZW5zaW9uKQorewor
ICAgIEdVbmlxdWVQdHI8Y2hhcj4gdGVzdFJlc291cmNlc1BhdGgoZ2V0RmlsZW5hbWVGcm9tRW52
aXJvbm1lbnRWYXJpYWJsZUFzVVRGOCgiVEVTVF9XRUJLSVRfQVBJX1dFQktJVDJfUkVTT1VSQ0VT
X1BBVEgiKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZUJhc2VuYW1lKGdfc3RyZHVw
X3ByaW50ZigiJXMuJXMiLCByZXNvdXJjZSwgZXh0ZW5zaW9uKSk7CisgICAgR1VuaXF1ZVB0cjxj
aGFyPiByZXNvdXJjZUZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUodGVzdFJlc291cmNlc1BhdGgu
Z2V0KCksIHJlc291cmNlQmFzZW5hbWUuZ2V0KCksIG51bGxwdHIpKTsKKyAgICBHUmVmUHRyPEdG
aWxlPiByZXNvdXJjZUZpbGUgPSBhZG9wdEdSZWYoZ19maWxlX25ld19mb3JfcGF0aChyZXNvdXJj
ZUZpbGVuYW1lLmdldCgpKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVSSShnX2Zp
bGVfZ2V0X3VyaShyZXNvdXJjZUZpbGUuZ2V0KCkpKTsKKyAgICByZXR1cm4gV0tVUkxDcmVhdGVX
aXRoVVRGOENTdHJpbmcocmVzb3VyY2VVUkkuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBV
dGlsCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL3dwZS9tYWluLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5mNjU2OGI2YzMyZAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd3BlL21haW4uY3BwCkBAIC0wLDAg
KzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgSWdhbGlhIFMuTC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RzQ29udHJvbGxlci5oIgorCitp
bnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCit7CisgICAgcmV0dXJuIFRlc3RXZWJLaXRB
UEk6OlRlc3RzQ29udHJvbGxlcjo6c2luZ2xldG9uKCkucnVuKGFyZ2MsIGFyZ3YpID8gRVhJVF9T
VUNDRVNTIDogRVhJVF9GQUlMVVJFOworfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmNw
cAppbmRleCA1ZjM5NWJlNzM1ZS4uZDA3OTA0YjMzZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuY3BwCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNv
bnRyb2xsZXIuY3BwCkBAIC03MSw3ICs3MSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXI6OmVuaGFuY2VkQWNjZXNzaWJpbGl0eUVuYWJsZWQoKQogICAgIHJldHVybiBXS0FjY2Vzc2li
aWxpdHlFbmhhbmNlZEFjY2Vzc2liaWxpdHlFbmFibGVkKCk7CiB9CiAKLSNpZiAhUExBVEZPUk0o
R1RLKQorI2lmICFQTEFURk9STShHVEspICYmICFQTEFURk9STShXUEUpCiBSZWY8QWNjZXNzaWJp
bGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXI6OnJvb3RFbGVtZW50KCkKIHsK
ICAgICBXS0J1bmRsZVBhZ2VSZWYgcGFnZSA9IEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24oKS5w
YWdlKCktPnBhZ2UoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAppbmRleCBlY2RmNWEw
ZjcyZi4uZDVhZWViYmNjZTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgKQEAgLTcz
LDcgKzczLDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIFJldGFpblB0
cjxOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7Ci0jZWxz
ZQorI2VsaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgUmVmUHRyPEFjY2Vz
c2liaWxpdHlOb3RpZmljYXRpb25IYW5kbGVyPiBtX2dsb2JhbE5vdGlmaWNhdGlvbkhhbmRsZXI7
CiAjZW5kaWYKIH07CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcAppbmRleCAwMjY0MGJl
NzYxOC4uMjU4MTRlNGVlOTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmNwcApAQCAt
NzgsNyArNzgsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dEFyZWEoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogI2VuZGlmCiAgICAgCiAvLyBVbnN1cHBvcnRlZCBtZXRo
b2RzIG9uIHZhcmlvdXMgcGxhdGZvcm1zLiBBcyB0aGV5J3JlIGltcGxlbWVudGVkIG9uIG90aGVy
IHBsYXRmb3JtcyB0aGlzIGxpc3Qgc2hvdWxkIGJlIG1vZGlmaWVkLgotI2lmICFQTEFURk9STShH
VEspIHx8ICFIQVZFKEFDQ0VTU0lCSUxJVFkpCisjaWYgKCFQTEFURk9STShHVEspICYmICFQTEFU
Rk9STShXUEUpKSB8fCAhSEFWRShBQ0NFU1NJQklMSVRZKQogSlNSZXRhaW5QdHI8SlNTdHJpbmdS
ZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkgeyByZXR1
cm4gbnVsbHB0cjsgfQogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OndvcmRBdE9mZnNldChpbnQpIHsgcmV0dXJuIG51bGxwdHI7IH0KIEpTUmV0YWluUHRy
PEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5lQXRPZmZzZXQoaW50KSB7
IHJldHVybiBudWxscHRyOyB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudC5oCmluZGV4IGQxMGVl
OGJiZDFhLi40MzVkZDdkYjhhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmgKQEAgLTMx
Nyw3ICszMTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0VUlFbGVtZW50c1dpdGhBdHRyaWJ1
dGUoSlNTdHJpbmdSZWYsIFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gPiYp
IGNvbnN0OwogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkgfHwgUExBVEZPUk0oR1RLKQor
I2lmIFBMQVRGT1JNKENPQ09BKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICAg
ICB2b2lkIGdldENoaWxkcmVuKFZlY3RvcjxSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4g
PiYpOwogICAgIHZvaWQgZ2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiA+JiwgdW5zaWduZWQgbG9jYXRpb24sIHVuc2lnbmVkIGxlbmd0aCk7
CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuY3BwCmluZGV4IGM3MWY0Y2Y2NzYwLi43NjhmNGQxNDYxMyAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3Bw
CkBAIC05OCw3ICs5OCw3IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoKQogICAgICwgbV9kYXRh
YmFzZU1heFF1b3RhKC0xKQogICAgICwgbV91c2VyU3R5bGVTaGVldEVuYWJsZWQoZmFsc2UpCiAg
ICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9jYXRpb24oYWRvcHRXSyhXS1N0cmluZ0NyZWF0ZVdpdGhV
VEY4Q1N0cmluZygiIikpKQotI2lmIFBMQVRGT1JNKEdUSykKKyNpZiBQTEFURk9STShHVEspIHx8
IFBMQVRGT1JNKFdQRSkKICAgICAsIG1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmVGVzdFJ1bm5lcjo6d2FpdFRvRHVtcFdhdGNoZG9nVGltZXJGaXJlZCkK
ICNlbmRpZgogewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAppbmRleCBkNjM5MmU5OWNmZi4uNzA1MTI5ZDliYjIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCisrKyBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oCkBAIC0z
OCw3ICszOCw3IEBACiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogI2luY2x1ZGUgPENvcmVG
b3VuZGF0aW9uL0NGUnVuTG9vcC5oPgogdHlwZWRlZiBSZXRhaW5QdHI8Q0ZSdW5Mb29wVGltZXJS
ZWY+IFBsYXRmb3JtVGltZXJSZWY7Ci0jZWxpZiBQTEFURk9STShHVEspCisjZWxpZiBQTEFURk9S
TShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogbmFtZXNw
YWNlIFdUUiB7CiBjbGFzcyBUZXN0UnVubmVyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJXUEUuY3Bw
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXJXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
Li5lOTRjMmFhYjcwOAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0FjY2Vzc2liaWxpdHlDb250cm9sbGVyV1BFLmNwcApAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IElnYWxpYSwgUy5MLgorICoKKyAq
ICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBH
ZW5lcmFsIFB1YmxpYworICogIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3Ig
KGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQorICogIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCisgKgorICogIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCisgKiAgRm91
bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBN
QSAgMDIxMTAtMTMwMSAgVVNBCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisK
KyNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBB
Y2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZSgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlDb250cm9sbGVyOjphY2Nlc3NpYmxlRWxlbWVudEJ5SWQoSlNTdHJpbmdSZWYg
aWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwor
SlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpwbGF0Zm9y
bU5hbWUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5Q29udHJvbGxlcjo6
cm9vdEVsZW1lbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZShudWxscHRyKTsKK30KKworUmVmPEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjpmb2N1c2VkRWxlbWVudCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6Y3JlYXRlKG51bGxwdHIpOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVyOjph
ZGROb3RpZmljYXRpb25MaXN0ZW5lcihKU1ZhbHVlUmVmKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlDb250cm9sbGVy
OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgorCisjZW5kaWYgLy8g
SEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS93cGUvQWNjZXNzaWJpbGl0eVVJRWxlbWVudFdQRS5jcHAgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50
V1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDY0OTE1MGE1
NDAKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVu
ZGxlL3dwZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50V1BFLmNwcApAQCAtMCwwICsxLDk1OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBJZ2FsaWEsIFMuTC4KKyAqCisgKiAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICog
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIgR2VuZXJhbCBQdWJs
aWMKKyAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBkaXN0cmli
dXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiAg
TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2Vl
IHRoZSBHTlUKKyAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgorICoKKyAqICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisgKiAgTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFy
eTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQorICogIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEz
MDEgIFVTQQorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBY2Nlc3NpYmls
aXR5VUlFbGVtZW50LmgiCisKKyNpZiBIQVZFKEFDQ0VTU0lCSUxJVFkpCisKKyNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgorCituYW1lc3BhY2UgV1RSIHsKKworQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudChQbGF0Zm9ybVVJRWxlbWVudCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCitBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpBY2Nlc3NpYmls
aXR5VUlFbGVtZW50KGNvbnN0IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQmKQoreworICAgIG5vdElt
cGxlbWVudGVkKCk7Cit9CisKK0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6On5BY2Nlc3NpYmlsaXR5
VUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzRXF1YWwoQWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW4oVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Pj4mKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Z2V0Q2hpbGRyZW5XaXRoUmFuZ2UoVmVjdG9yPFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50Pj4mLCB1bnNpZ25lZCwgdW5zaWduZWQpCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNoaWxkcmVuQ291bnQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbGVtZW50QXRQ
b2ludChpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxs
cHRyOworfQorCit1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjppbmRleE9mQ2hpbGQo
QWNjZXNzaWJpbGl0eVVJRWxlbWVudCopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gMDsKK30KKworCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6Y2hpbGRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpsaW5rZWRVSUVsZW1lbnRBdEluZGV4KHVu
c2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9
CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphcmlhT3duc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVk
KCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhRmxvd1RvRWxlbWVudEF0SW5kZXgodW5z
aWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmFyaWFDb250cm9sc0VsZW1lbnRBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkaXNjbG9zZWRSb3dBdEluZGV4KHVuc2ln
bmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpy
b3dBdEluZGV4KHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkQXRJbmRleCh1bnNpZ25lZCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCit1bnNpZ25lZCBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZENoaWxkcmVuQ291bnQoKSBjb25zdAorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWxlY3RlZFJvd0F0SW5k
ZXgodW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0
cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVs
ZW1lbnQ6OnRpdGxlVUlFbGVtZW50KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6cGFyZW50RWxlbWVudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRpc2Nsb3NlZEJ5Um93KCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mTGlua2VkVUlFbGVt
ZW50cygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZkRvY3VtZW50TGlua3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0
dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZDaGlsZHJlbigpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFsbEF0dHJpYnV0ZXMoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVm
PiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdBdHRyaWJ1dGVWYWx1ZShKU1N0cmluZ1Jl
ZikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bnVtYmVyQXR0cmlidXRlVmFsdWUoSlNTdHJp
bmdSZWYgYXR0cmlidXRlKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAu
MDsKK30KKworSlNWYWx1ZVJlZiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1lbnRBcnJh
eUF0dHJpYnV0ZVZhbHVlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1ZhbHVlUmVmIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnJvd0hlYWRlcnMoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTVmFsdWVSZWYgQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6Y29sdW1uSGVhZGVycygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEF0dHJpYnV0ZVZhbHVlKEpTU3Ry
aW5nUmVmIGF0dHJpYnV0ZSkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvb2xBdHRy
aWJ1dGVWYWx1ZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNBdHRyaWJ1dGVTZXR0YWJsZShKU1N0cmluZ1JlZiBhdHRyaWJ1dGUpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNBdHRyaWJ1dGVTdXBwb3J0ZWQoSlNTdHJpbmdSZWYgYXR0cmlidXRlKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cGFyYW1ldGVyaXplZEF0dHJp
YnV0ZU5hbWVzKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRy
OworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cm9sZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN1YnJv
bGUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpyb2xlRGVz
Y3JpcHRpb24oKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpj
b21wdXRlZFJvbGVTdHJpbmcoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojp0aXRsZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmRlc2NyaXB0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBu
dWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6b3JpZW50YXRpb24oKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50OjpzdHJpbmdWYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Omxhbmd1YWdlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJp
bGl0eVVJRWxlbWVudDo6aGVscFRleHQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp4KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2Rv
dWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp5KCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp3
aWR0aCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4wOworfQorCitk
b3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGVpZ2h0KCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpjbGlja1BvaW50WCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
MC4wOworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xpY2tQb2ludFkoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworZG91YmxlIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmludFZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiAwLjA7Cit9CisKK2RvdWJsZSBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjptaW5WYWx1ZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMC4w
OworfQorCitkb3VibGUgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF4VmFsdWUoKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDAuMDsKK30KKworSlNSZXRhaW5QdHI8SlNT
dHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZhbHVlRGVzY3JpcHRpb24oKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjppbnNlcnRpb25Qb2ludExpbmVOdW1iZXIoKQoreworICAgIG5v
dEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aXNQcmVzc0FjdGlvblN1cHBvcnRlZCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aXNJbmNyZW1lbnRBY3Rpb25TdXBwb3J0ZWQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzRGVj
cmVtZW50QWN0aW9uU3VwcG9ydGVkKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojppc0VuYWJsZWQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29s
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzUmVxdWlyZWQoKSBjb25zdAoreworICAgIG5vdElt
cGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmlzRm9jdXNlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxl
Y3RlZCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNTZWxlY3RlZE9wdGlvbkFjdGl2
ZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNFeHBhbmRlZCgpIGNvbnN0Cit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6aXNDaGVja2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojppc0luZGV0ZXJtaW5hdGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aGllcmFyY2hp
Y2FsTGV2ZWwoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7
Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojpz
cGVhaygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphcmlhSXNHcmFiYmVkKCkgY29uc3QKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFEcm9wRWZmZWN0cygp
IGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVGb3JJbmRleChpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJp
bmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yTGluZShpbnQpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnJhbmdlRm9yUG9zaXRpb24oaW50
LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5k
c0ZvclJhbmdlKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOwor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5n
Rm9yUmFuZ2UodW5zaWduZWQsIHVuc2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0
cmlidXRlZFN0cmluZ1JhbmdlSXNNaXNzcGVsbGVkKHVuc2lnbmVkLCB1bnNpZ25lZCkKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordW5zaWduZWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dWlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUoSlND
b250ZXh0UmVmLCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiwgYm9vbCwgSlNWYWx1ZVJlZiwgSlNT
dHJpbmdSZWYsIGJvb2wsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gMDsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYsIEFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQqLCBib29sLCBKU1ZhbHVlUmVmLCBKU1N0cmluZ1JlZiwgYm9vbCwg
Ym9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0
VGV4dFdpdGhDcml0ZXJpYShKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmLCBK
U1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICBy
ZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZXNPZkNvbHVtbkhlYWRlcnMoKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZSb3dIZWFkZXJzKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlc09mQ29s
dW1ucygpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30K
KworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZXNPZlJvd3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxw
dHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjphdHRyaWJ1dGVzT2ZWaXNpYmxlQ2VsbHMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVzT2ZIZWFkZXIoKQoreworICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojpyb3dDb3VudCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNvbHVtbkNvdW50KCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiAwOworfQorCitpbnQgQWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6aW5kZXhJblRhYmxlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJl
dHVybiAwOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6cm93SW5kZXhSYW5nZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNvbHVtbkluZGV4UmFuZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjZWxsRm9yQ29sdW1uQW5kUm93KHVuc2lnbmVkLCB1bnNp
Z25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQor
CitSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aG9yaXpvbnRhbFNjcm9sbGJhcigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnZlcnRpY2FsU2Nyb2xsYmFyKCkgY29uc3QKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VsZWN0ZWRUZXh0UmFuZ2UoKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRUZXh0UmFuZ2UodW5zaWduZWQsIHVu
c2lnbmVkKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQor
Cit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmluY3JlbWVudCgpCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpkZWNyZW1lbnQo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c2hvd01lbnUoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJlc3MoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9
CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZChBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50KiBlbGVtZW50KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2V0U2VsZWN0ZWRDaGlsZEF0SW5k
ZXgodW5zaWduZWQgaW5kZXgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVTZWxlY3Rpb25BdEluZGV4KHVuc2ln
bmVkIGluZGV4KSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2xlYXJTZWxlY3RlZENoaWxkcmVuKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eVZhbHVlKCkgY29uc3QKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZG9jdW1lbnRFbmNvZGluZygpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmRvY3VtZW50VVJJKCkKK3sK
KyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dXJsKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmFkZE5vdGlmaWNhdGlvbkxpc3RlbmVyKEpTVmFsdWVSZWYgZnVuY3Rp
b25DYWxsYmFjaykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsK
K30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpyZW1vdmVOb3RpZmljYXRpb25MaXN0
ZW5lcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisK
K2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmlzU2VsZWN0YWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6aXNNdWx0aVNlbGVjdGFibGUoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVmlz
aWJsZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNPZmZTY3JlZW4oKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzQ29sbGFwc2VkKCkgY29uc3QKK3sKKyAgICBub3RJbXBs
ZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50Ojppc0lnbm9yZWQoKSBjb25zdAoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIGZhbHNlOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzU2luZ2xl
TGluZSgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6aXNNdWx0aUxpbmUoKSBjb25zdAor
eworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCitib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omhhc1BvcHVwKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojp0YWtlRm9jdXMoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6dGFrZVNlbGVjdGlvbigpCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKK30KKwordm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphZGRTZWxlY3Rpb24oKQor
eworICAgIG5vdEltcGxlbWVudGVkKCk7Cit9CisKK3ZvaWQgQWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6cmVtb3ZlU2VsZWN0aW9uKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitSZWZQ
dHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIq
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1Jl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0ZXh0TWFya2VyUmFuZ2VGb3JFbGVtZW50KEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQqKQorewor
ICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK2ludCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsK
K30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50OjpwcmV2aW91c1RleHRNYXJrZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAg
IG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bmV4dFRleHRNYXJr
ZXIoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK0pTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvck1hcmtlcnMoQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXIqLCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1wbGVtZW50
ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyUmFuZ2UoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSopCit7CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqKQoreworICAgIG5vdEltcGxl
bWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJvdW5k
cyhpbnQsIGludCwgaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzdGFydFRleHRNYXJrZXJGb3JCb3VuZHMoaW50LCBpbnQsIGludCwg
aW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisK
K1JlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
dGV4dE1hcmtlckZvclBvaW50KGludCwgaW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1JlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphY2Nlc3NpYmlsaXR5RWxlbWVudEZvclRleHRNYXJrZXIo
QWNjZXNzaWJpbGl0eVRleHRNYXJrZXIqKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKK2Jvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVm
LCBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlKikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBmYWxzZTsKK30KKworaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omlu
ZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAgbm90SW1w
bGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKworYm9vbCBBY2Nlc3NpYmlsaXR5VUlFbGVt
ZW50Ojppc1RleHRNYXJrZXJWYWxpZChBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciopCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK1JlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvcklu
ZGV4KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOwor
fQorCitSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnN0YXJ0VGV4dE1hcmtlcigpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjplbmRUZXh0TWFya2VyKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OnNldFNlbGVjdGVkVmlzaWJsZVRleHRSYW5nZShBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdl
KikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9p
ZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlKCkKK3sKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOworfQorCit2b2lkIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNjcm9s
bFRvR2xvYmFsUG9pbnQoaW50LCBpbnQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwor
dm9pZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzY3JvbGxUb01ha2VWaXNpYmxlV2l0aFN1YkZv
Y3VzKGludCwgaW50LCBpbnQsIGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3VwcG9ydGVk
QWN0aW9ucygpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OnBhdGhEZXNjcmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAg
ICByZXR1cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6Om1hdGhQb3N0c2NyaXB0c0Rlc2NyaXB0aW9uKCkgY29uc3QKK3sKKyAg
ICBub3RJbXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bWF0aFByZXNjcmlwdHNEZXNj
cmlwdGlvbigpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVs
bHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmNsYXNzTGlzdCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gbnVsbHB0cjsKK30KKworSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmNoYXJhY3RlckF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6d29yZEF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJbXBsZW1l
bnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1Jl
Zj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUF0T2Zmc2V0KGludCkKK3sKKyAgICBub3RJ
bXBsZW1lbnRlZCgpOworICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VudGVuY2VBdE9mZnNldChpbnQpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworfSAvLyBu
YW1lc3BhY2UgIFdURgorCisjZW5kaWYgLy8gSEFWRShBQ0NFU1NJQklMSVRZKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvQWN0aXZhdGVGb250
c1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9BY3Rp
dmF0ZUZvbnRzV1BFLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4u
YzNjZjcyMWIzMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNwcApAQCAtMCwwICsxLDE0NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiQWN0aXZhdGVGb250cy5oIgorCisjaW5jbHVkZSA8Zm9u
dGNvbmZpZy9mb250Y29uZmlnLmg+CisjaW5jbHVkZSA8d3RmL2dsaWIvR0xpYlV0aWxpdGllcy5o
PgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4KKworbmFtZXNwYWNlIFdUUiB7CisK
K0NTdHJpbmcgdG9wTGV2ZWxQYXRoKCkKK3sKKyAgICBpZiAoY29uc3QgY2hhciogdG9wTGV2ZWxE
aXJlY3RvcnkgPSBnX2dldGVudigiV0VCS0lUX1RPUF9MRVZFTCIpKQorICAgICAgICByZXR1cm4g
dG9wTGV2ZWxEaXJlY3Rvcnk7CisKKyAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUg
d2Fzbid0IHByb3ZpZGVkIHRoZW4gYXNzdW1lIHdlIHdlcmUgYnVpbHQgaW50bworICAgIC8vIFdl
YktpdEJ1aWxkL0RlYnVnIG9yIFdlYktpdEJ1aWxkL1JlbGVhc2UuIE9idmlvdXNseSB0aGlzIHdp
bGwgZmFpbCBpZiB0aGUgYnVpbGQKKyAgICAvLyBkaXJlY3RvcnkgaXMgbm9uLXN0YW5kYXJkLCBi
dXQgd2UgY2FuJ3QgZG8gbXVjaCBtb3JlIGFib3V0IHRoaXMuCisgICAgR1VuaXF1ZVB0cjxjaGFy
PiBwYXJlbnRQYXRoKGdfcGF0aF9nZXRfZGlybmFtZShnZXRDdXJyZW50RXhlY3V0YWJsZVBhdGgo
KS5kYXRhKCkpKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGxheW91dFRlc3RzUGF0aChnX2J1aWxk
X2ZpbGVuYW1lKHBhcmVudFBhdGguZ2V0KCksICIuLiIsICIuLiIsICIuLiIsIG51bGxwdHIpKTsK
KyAgICBHVW5pcXVlUHRyPGNoYXI+IGFic29sdXRlVG9wTGV2ZWxQYXRoKHJlYWxwYXRoKGxheW91
dFRlc3RzUGF0aC5nZXQoKSwgMCkpOworICAgIHJldHVybiBhYnNvbHV0ZVRvcExldmVsUGF0aC5n
ZXQoKTsKK30KKworQ1N0cmluZyBnZXRPdXRwdXREaXIoKQoreworICAgIGNvbnN0IGNoYXIqIHdl
YmtpdE91dHB1dERpciA9IGdfZ2V0ZW52KCJXRUJLSVRfT1VUUFVURElSIik7CisgICAgaWYgKHdl
YmtpdE91dHB1dERpcikKKyAgICAgICAgcmV0dXJuIHdlYmtpdE91dHB1dERpcjsKKworICAgIEdV
bmlxdWVQdHI8Y2hhcj4gb3V0cHV0RGlyKGdfYnVpbGRfZmlsZW5hbWUodG9wTGV2ZWxQYXRoKCku
ZGF0YSgpLCAiV2ViS2l0QnVpbGQiLCBudWxscHRyKSk7CisgICAgcmV0dXJuIG91dHB1dERpci5n
ZXQoKTsKK30KKworc3RhdGljIENTdHJpbmcgZ2V0Rm9udHNQYXRoKCkKK3sKKyAgICBDU3RyaW5n
IHdlYmtpdE91dHB1dERpciA9IGdldE91dHB1dERpcigpOworICAgIEdVbmlxdWVQdHI8Y2hhcj4g
Zm9udHNQYXRoKGdfYnVpbGRfZmlsZW5hbWUod2Via2l0T3V0cHV0RGlyLmRhdGEoKSwgIkRlcGVu
ZGVuY2llc1dQRSIsICJSb290IiwgIndlYmtpdGd0ay10ZXN0LWZvbnRzIiwgbnVsbHB0cikpOwor
ICAgIGlmIChnX2ZpbGVfdGVzdChmb250c1BhdGguZ2V0KCksIHN0YXRpY19jYXN0PEdGaWxlVGVz
dD4oR19GSUxFX1RFU1RfRVhJU1RTIHwgR19GSUxFX1RFU1RfSVNfRElSKSkpCisgICAgICAgIHJl
dHVybiBmb250c1BhdGguZ2V0KCk7CisKKyAgICAvLyBUcnkgYWx0ZXJuYXRpdmUgZm9udHMgcGF0
aC4KKyAgICBmb250c1BhdGgucmVzZXQoZ19idWlsZF9maWxlbmFtZSh3ZWJraXRPdXRwdXREaXIu
ZGF0YSgpLCAid2Via2l0Z3RrLXRlc3QtZm9udHMiLCBOVUxMKSk7CisgICAgaWYgKGdfZmlsZV90
ZXN0KGZvbnRzUGF0aC5nZXQoKSwgc3RhdGljX2Nhc3Q8R0ZpbGVUZXN0PihHX0ZJTEVfVEVTVF9F
WElTVFMgfCBHX0ZJTEVfVEVTVF9JU19ESVIpKSkKKyAgICAgICAgcmV0dXJuIGZvbnRzUGF0aC5n
ZXQoKTsKKworICAgIHJldHVybiBDU3RyaW5nKCk7Cit9CisKK3ZvaWQgYWN0aXZhdGVGb250cygp
Cit7CisgICAgaWYgKGdfZ2V0ZW52KCJXRUJLSVRfU0tJUF9XRUJLSVRURVNUUlVOTkVSX0ZPTlRD
T05GSUdfSU5JVElBTElaQVRJT04iKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgRmNJbml0KCk7
CisKKyAgICAvLyBJZiBhIHRlc3QgcmVzdWx0ZWQgYSBmb250IGJlaW5nIGFkZGVkIG9yIHJlbW92
ZWQgdmlhIHRoZSBAZm9udC1mYWNlIHJ1bGUsIHRoZW4KKyAgICAvLyB3ZSB3YW50IHRvIHJlc2V0
IHRoZSBGb250Q29uZmlnIGNvbmZpZ3VyYXRpb24gdG8gcHJldmVudCBpdCBmcm9tIGFmZmVjdGlu
ZyBvdGhlciB0ZXN0cy4KKyAgICBzdGF0aWMgaW50IG51bUZvbnRzID0gMDsKKyAgICBGY0ZvbnRT
ZXQqIGFwcEZvbnRTZXQgPSBGY0NvbmZpZ0dldEZvbnRzKDAsIEZjU2V0QXBwbGljYXRpb24pOwor
ICAgIGlmIChhcHBGb250U2V0ICYmIG51bUZvbnRzICYmIGFwcEZvbnRTZXQtPm5mb250ID09IG51
bUZvbnRzKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBMb2FkIG91ciBjb25maWd1cmF0aW9u
IGZpbGUsIHdoaWNoIHNldHMgdXAgcHJvcGVyIGFsaWFzZXMgZm9yIGZhbWlseQorICAgIC8vIG5h
bWVzIGxpa2Ugc2Fucywgc2VyaWYgYW5kIG1vbm9zcGFjZS4KKyAgICBGY0NvbmZpZyogY29uZmln
ID0gRmNDb25maWdDcmVhdGUoKTsKKyAgICBHVW5pcXVlUHRyPGdjaGFyPiBmb250Q29uZmlnRmls
ZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgImZvbnRzLmNvbmYiLCBudWxs
cHRyKSk7CisgICAgaWYgKCFnX2ZpbGVfdGVzdChmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCksIEdf
RklMRV9URVNUX0lTX1JFR1VMQVIpKQorICAgICAgICBnX2Vycm9yKCJDYW5ub3QgZmluZCBmb250
cy5jb25mIGF0ICVzXG4iLCBmb250Q29uZmlnRmlsZW5hbWUuZ2V0KCkpOworICAgIGlmICghRmND
b25maWdQYXJzZUFuZExvYWQoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgqPihmb250
Q29uZmlnRmlsZW5hbWUuZ2V0KCkpLCB0cnVlKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGRuJ3Qg
bG9hZCBmb250IGNvbmZpZ3VyYXRpb24gZmlsZSBmcm9tOiAlcyIsIGZvbnRDb25maWdGaWxlbmFt
ZS5nZXQoKSk7CisKKyAgICBDU3RyaW5nIGZvbnRzUGF0aCA9IGdldEZvbnRzUGF0aCgpOworICAg
IGlmIChmb250c1BhdGguaXNOdWxsKCkpCisgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBsb2Nh
dGUgdGVzdCBmb250cyBhdCAlcy4gSXMgV0VCS0lUX1RPUF9MRVZFTCBzZXQ/IiwgZm9udHNQYXRo
LmRhdGEoKSk7CisKKyAgICBHVW5pcXVlUHRyPEdEaXI+IGZvbnRzRGlyZWN0b3J5KGdfZGlyX29w
ZW4oZm9udHNQYXRoLmRhdGEoKSwgMCwgbnVsbHB0cikpOworICAgIHdoaWxlIChjb25zdCBjaGFy
KiBkaXJlY3RvcnlFbnRyeSA9IGdfZGlyX3JlYWRfbmFtZShmb250c0RpcmVjdG9yeS5nZXQoKSkp
IHsKKyAgICAgICAgaWYgKCFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLnR0ZiIp
ICYmICFnX3N0cl9oYXNfc3VmZml4KGRpcmVjdG9yeUVudHJ5LCAiLm90ZiIpKQorICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgIEdVbmlxdWVQdHI8Z2NoYXI+IGZvbnRQYXRoKGdfYnVpbGRf
ZmlsZW5hbWUoZm9udHNQYXRoLmRhdGEoKSwgZGlyZWN0b3J5RW50cnksIG51bGxwdHIpKTsKKyAg
ICAgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRGaWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBGY0NoYXI4Kj4oZm9udFBhdGguZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3Io
IkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFBhdGguZ2V0KCkpOworICAgIH0KKwor
ICAgIC8vIEFoZW0gaXMgdXNlZCBieSBtYW55IGxheW91dCB0ZXN0cy4KKyAgICBHVW5pcXVlUHRy
PGdjaGFyPiBhaGVtRm9udEZpbGVuYW1lKGdfYnVpbGRfZmlsZW5hbWUoRk9OVFNfQ09ORl9ESVIs
ICJBSEVNX19fXy5UVEYiLCBudWxscHRyKSk7CisgICAgaWYgKCFGY0NvbmZpZ0FwcEZvbnRBZGRG
aWxlKGNvbmZpZywgcmVpbnRlcnByZXRfY2FzdDxGY0NoYXI4Kj4oYWhlbUZvbnRGaWxlbmFtZS5n
ZXQoKSkpKQorICAgICAgICBnX2Vycm9yKCJDb3VsZCBub3QgbG9hZCBmb250IGF0ICVzISIsIGFo
ZW1Gb250RmlsZW5hbWUuZ2V0KCkpOyAKKworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBmb250Rmls
ZW5hbWVzW10gPSB7CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMTAwLnR0ZiIsCisgICAg
ICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyMjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRX
YXRjaGVyMzAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNDAwLnR0ZiIsCisg
ICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNTAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWln
aHRXYXRjaGVyNjAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyNzAwLnR0ZiIs
CisgICAgICAgICJXZWJLaXRXZWlnaHRXYXRjaGVyODAwLnR0ZiIsCisgICAgICAgICJXZWJLaXRX
ZWlnaHRXYXRjaGVyOTAwLnR0ZiIsCisgICAgICAgIDAKKyAgICB9OworCisgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGZvbnRGaWxlbmFtZXNbaV07ICsraSkgeworICAgICAgICBHVW5pcXVlUHRyPGdj
aGFyPiBmb250RmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05UU19DT05GX0RJUiwgIi4uIiwg
Ii4uIiwgImZvbnRzIiwgZm9udEZpbGVuYW1lc1tpXSwgbnVsbHB0cikpOworICAgICAgICBpZiAo
IUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZjQ2hhcjgq
Pihmb250RmlsZW5hbWUuZ2V0KCkpKSkKKyAgICAgICAgICAgIGdfZXJyb3IoIkNvdWxkIG5vdCBs
b2FkIGZvbnQgYXQgJXMhIiwgZm9udEZpbGVuYW1lLmdldCgpKTsgCisgICAgfQorCisgICAgLy8g
QSBmb250IHdpdGggbm8gdmFsaWQgRm9udGNvbmZpZyBlbmNvZGluZyB0byB0ZXN0IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NzQ1MgorICAgIEdVbmlxdWVQdHI8Z2No
YXI+IGZvbnRXaXRoTm9WYWxpZEVuY29kaW5nRmlsZW5hbWUoZ19idWlsZF9maWxlbmFtZShGT05U
U19DT05GX0RJUiwgIkZvbnRXaXRoTm9WYWxpZEVuY29kaW5nLmZvbiIsIG51bGxwdHIpKTsKKyAg
ICBpZiAoIUZjQ29uZmlnQXBwRm9udEFkZEZpbGUoY29uZmlnLCByZWludGVycHJldF9jYXN0PEZj
Q2hhcjgqPihmb250V2l0aE5vVmFsaWRFbmNvZGluZ0ZpbGVuYW1lLmdldCgpKSkpCisgICAgICAg
IGdfZXJyb3IoIkNvdWxkIG5vdCBsb2FkIGZvbnQgYXQgJXMhIiwgZm9udFdpdGhOb1ZhbGlkRW5j
b2RpbmdGaWxlbmFtZS5nZXQoKSk7IAorCisgICAgaWYgKCFGY0NvbmZpZ1NldEN1cnJlbnQoY29u
ZmlnKSkKKyAgICAgICAgZ19lcnJvcigiQ291bGQgbm90IHNldCB0aGUgY3VycmVudCBmb250IGNv
bmZpZ3VyYXRpb24hIik7CisKKyAgICBudW1Gb250cyA9IEZjQ29uZmlnR2V0Rm9udHMoY29uZmln
LCBGY1NldEFwcGxpY2F0aW9uKS0+bmZvbnQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdUUgpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93cGUvSW5qZWN0
ZWRCdW5kbGVXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS93
cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4yNDA4MWZmM2EyOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAtMCwwICsx
LDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IElnYWxpYSBTLkwuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJJbmplY3RlZEJ1bmRsZS5oIgorCituYW1l
c3BhY2UgV1RSIHsKKwordm9pZCBJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1Jbml0aWFsaXplKFdL
VHlwZVJlZikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dwZS9UZXN0UnVubmVyV1BFLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL1Rlc3RSdW5uZXJXUEUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42ZjE0ZmZkZDA1NgotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3Bl
L1Rlc3RSdW5uZXJXUEUuY3BwCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlRlc3RSdW5uZXIuaCIKKworbmFtZXNwYWNlIFdUUiB7CisKK0pTUmV0YWluUHRyPEpTU3Ry
aW5nUmVmPiBUZXN0UnVubmVyOjpwYXRoVG9Mb2NhbFJlc291cmNlKEpTU3RyaW5nUmVmKQorewor
ICAgIHJldHVybiBudWxscHRyOworfQorCitKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gVGVzdFJ1
bm5lcjo6aW5zcGVjdG9yVGVzdFN0dWJVUkwoKQoreworICAgIHJldHVybiBKU1N0cmluZ0NyZWF0
ZVdpdGhVVEY4Q1N0cmluZygiIik7Cit9CisKK3ZvaWQgVGVzdFJ1bm5lcjo6aW52YWxpZGF0ZVdh
aXRUb0R1bXBXYXRjaGRvZ1RpbWVyKCkKK3sKKyAgICBtX3dhaXRUb0R1bXBXYXRjaGRvZ1RpbWVy
LnN0b3AoKTsKK30KKwordm9pZCBUZXN0UnVubmVyOjpwbGF0Zm9ybUluaXRpYWxpemUoKQorewor
fQorCit2b2lkIFRlc3RSdW5uZXI6OmluaXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklm
TmVlZGVkKCkKK3sKKyAgICBpZiAoIW1fd2FpdFRvRHVtcFdhdGNoZG9nVGltZXIuaXNBY3RpdmUo
KSkKKyAgICAgICAgbV93YWl0VG9EdW1wV2F0Y2hkb2dUaW1lci5zdGFydE9uZVNob3QobV90aW1l
b3V0IC8gMTAwMC4wKTsKK30KKworCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XUEUuY21ha2UgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtV1BFLmNtYWtlCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi40YTg2MmQ2OWFmYwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1XUEUuY21ha2UKQEAgLTAsMCArMSw0NyBAQAorZmluZF9wYWNrYWdlKExp
YkdCTSBSRVFVSVJFRCkKK2ZpbmRfcGFja2FnZShXUEVCYWNrZW5kLW1lc2EgUkVRVUlSRUQpCisK
K2FkZF9jdXN0b21fdGFyZ2V0KFdlYktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzCisg
ICAgQ09NTUFORCAke1BFUkxfRVhFQ1VUQUJMRX0gJHtXRUJLSVQyX0RJUn0vU2NyaXB0cy9nZW5l
cmF0ZS1mb3J3YXJkaW5nLWhlYWRlcnMucGwgLS1pbmNsdWRlLXBhdGggJHtXRUJLSVRfVEVTVFJV
Tk5FUl9ESVJ9IC0tb3V0cHV0ICR7Rk9SV0FSRElOR19IRUFERVJTX0RJUn0gLS1wbGF0Zm9ybSB3
cGUKKykKKworc2V0KEZvcndhcmRpbmdIZWFkZXJzRm9yV2ViS2l0VGVzdFJ1bm5lcl9OQU1FIFdl
YktpdFRlc3RSdW5uZXItZm9yd2FyZGluZy1oZWFkZXJzKQorCitsaXN0KEFQUEVORCBXZWJLaXRU
ZXN0UnVubmVyX1NPVVJDRVMKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vY2Fpcm8vVGVz
dEludm9jYXRpb25DYWlyby5jcHAKKworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS93cGUv
RXZlbnRTZW5kZXJQcm94eVdQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3Bl
L0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dw
ZS9QbGF0Zm9ybVdlYlZpZXdXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L3dw
ZS9UZXN0Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0RJUn0vd3Bl
L21haW4uY3BwCispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfSU5DTFVERV9ESVJF
Q1RPUklFUworICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9JbmplY3RlZEJ1bmRsZS93cGUK
KyAgICAke0ZPUldBUkRJTkdfSEVBREVSU19ESVJ9CisgICAgJHtDQUlST19JTkNMVURFX0RJUlN9
CisgICAgJHtHTElCX0lOQ0xVREVfRElSU30KKyAgICAke0xJQkdCTV9JTkNMVURFX0RJUlN9Cisg
ICAgJHtXUEVfTUVTQV9JTkNMVURFX0RJUlN9CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RS
dW5uZXJfTElCUkFSSUVTCisgICAgJHtDQUlST19MSUJSQVJJRVN9CisgICAgJHtHTElCX0xJQlJB
UklFU30KKyAgICAke0xJQkdCTV9MSUJSQVJJRVN9CisgICAgJHtXUEVfTUVTQV9MSUJSQVJJRVN9
CispCisKK2xpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJJbmplY3RlZEJ1bmRsZV9TT1VSQ0VT
CisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY2Nlc3Np
YmlsaXR5Q29udHJvbGxlcldQRS5jcHAKKyAgICAke1dFQktJVF9URVNUUlVOTkVSX0lOSkVDVEVE
QlVORExFX0RJUn0vd3BlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRXUEUuY3BwCisgICAgJHtXRUJL
SVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9ESVJ9L3dwZS9BY3RpdmF0ZUZvbnRzV1BFLmNw
cAorICAgICR7V0VCS0lUX1RFU1RSVU5ORVJfSU5KRUNURURCVU5ETEVfRElSfS93cGUvSW5qZWN0
ZWRCdW5kbGVXUEUuY3BwCisgICAgJHtXRUJLSVRfVEVTVFJVTk5FUl9JTkpFQ1RFREJVTkRMRV9E
SVJ9L3dwZS9UZXN0UnVubmVyV1BFLmNwcAorKQorCithZGRfZGVmaW5pdGlvbnMoCisgICAgLURG
T05UU19DT05GX0RJUj0iJHtUT09MU19ESVJ9L1dlYktpdFRlc3RSdW5uZXIvZ3RrL2ZvbnRzIgor
ICAgIC1EVE9QX0xFVkVMX0RJUj0iJHtDTUFLRV9TT1VSQ0VfRElSfSIKKykKZGlmZiAtLWdpdCBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1XZWJWaWV3LmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCmluZGV4IDBmMTU4NjEzZDJhLi44N2U4ZjdkYTYw
NCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybVdlYlZpZXcuaAor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtV2ViVmlldy5oCkBAIC01MCw2ICs1
MCwxMSBAQCB0eXBlZGVmIHN0cnVjdCBfR3RrV2lkZ2V0IEd0a1dpZGdldDsKIHR5cGVkZWYgV0tW
aWV3UmVmIFBsYXRmb3JtV0tWaWV3OwogdHlwZWRlZiBHdGtXaWRnZXQqIFBsYXRmb3JtV2luZG93
OwogdHlwZWRlZiBjYWlyb19zdXJmYWNlX3QgKlBsYXRmb3JtSW1hZ2U7CisjZWxpZiBQTEFURk9S
TShXUEUpCitjbGFzcyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwordHlwZWRlZiBXS1ZpZXdSZWYgUGxh
dGZvcm1XS1ZpZXc7Cit0eXBlZGVmIEhlYWRsZXNzVmlld0JhY2tlbmQqIFBsYXRmb3JtV2luZG93
OwordHlwZWRlZiBjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtSW1hZ2U7CiAjZW5kaWYKIAogbmFt
ZXNwYWNlIFdUUiB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RDb250
cm9sbGVyLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwCmlu
ZGV4IDgyMTZkYTRjNjc3Li43NTkxNDBjZjI0YSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKQEAgLTc2Nyw3ICs3NjcsNyBAQCBib29sIFRlc3RDb250cm9sbGVy
OjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKGNvbnN0IFRlc3RPcHRpb25zJiBvcHRpb25z
KQogICAgIC8vIHNvbWUgb3RoZXIgY29kZSBkb2luZyB0aGlzLCBpdCBzaG91bGQgcHJvYmFibHkg
YmUgcmVzcG9uc2libGUgZm9yIGNsZWFudXAgdG9vLgogICAgIHJlc2V0UHJlZmVyZW5jZXNUb0Nv
bnNpc3RlbnRWYWx1ZXMob3B0aW9ucyk7CiAKLSNpZiAhUExBVEZPUk0oQ09DT0EpCisjaWYgIVBM
QVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV1BFKQogICAgIFdLVGV4dENoZWNrZXJDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRTdGF0ZUNoYW5nZWQodHJ1ZSk7CiAjZW5kaWYKIApkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQcm94eVdQRS5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uNTFlZTBmYzJlNTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5
V1BFLmNwcApAQCAtMCwwICsxLDEyMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBJZ2Fs
aWEgUy5MLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRXZlbnRT
ZW5kZXJQcm94eS5oIgorCituYW1lc3BhY2UgV1RSIHsKKworRXZlbnRTZW5kZXJQcm94eTo6RXZl
bnRTZW5kZXJQcm94eShUZXN0Q29udHJvbGxlciogdGVzdENvbnRyb2xsZXIpCisgICAgOiBtX3Rl
c3RDb250cm9sbGVyKHRlc3RDb250cm9sbGVyKQorICAgICwgbV90aW1lKDApCisgICAgLCBtX2xl
ZnRNb3VzZUJ1dHRvbkRvd24oZmFsc2UpCisgICAgLCBtX2NsaWNrQ291bnQoMCkKKyAgICAsIG1f
Y2xpY2tUaW1lKDApCisgICAgLCBtX2NsaWNrQnV0dG9uKGtXS0V2ZW50TW91c2VCdXR0b25Ob0J1
dHRvbikKK3sKK30KKworRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQorewor
fQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlRG93bih1bnNpZ25lZCwgV0tFdmVudE1v
ZGlmaWVycykKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVVwKHVuc2lnbmVk
LCBXS0V2ZW50TW9kaWZpZXJzKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNl
TW92ZVRvKGRvdWJsZSwgZG91YmxlKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1v
dXNlU2Nyb2xsQnkoaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKGludCwgaW50LCBpbnQsIGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShp
bnQsIGludCwgYm9vbCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpsZWFwRm9yd2Fy
ZChpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1Jl
ZiwgV0tFdmVudE1vZGlmaWVycywgdW5zaWduZWQpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6YWRkVG91Y2hQb2ludChpbnQsIGludCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRlclBy
b3h5Ojp1cGRhdGVUb3VjaFBvaW50KGludCwgaW50LCBpbnQpCit7Cit9CisKK3ZvaWQgRXZlbnRT
ZW5kZXJQcm94eTo6c2V0VG91Y2hNb2RpZmllcihXS0V2ZW50TW9kaWZpZXJzLCBib29sKQorewor
fQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnNldFRvdWNoUG9pbnRSYWRpdXMoaW50LCBpbnQp
Cit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hTdGFydCgpCit7Cit9CisKK3Zv
aWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hNb3ZlKCkKK3sKK30KKwordm9pZCBFdmVudFNlbmRl
clByb3h5Ojp0b3VjaEVuZCgpCit7Cit9CisKK3ZvaWQgRXZlbnRTZW5kZXJQcm94eTo6dG91Y2hD
YW5jZWwoKQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNsZWFyVG91Y2hQb2ludHMo
KQoreworfQorCit2b2lkIEV2ZW50U2VuZGVyUHJveHk6OnJlbGVhc2VUb3VjaFBvaW50KGludCkK
K3sKK30KKwordm9pZCBFdmVudFNlbmRlclByb3h5OjpjYW5jZWxUb3VjaFBvaW50KGludCkKK3sK
K30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
d3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwLi41NjBiNDBhM2VmYgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuY3BwCkBAIC0wLDAgKzEsMjUwIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IElnYWxpYSBTLkwuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJIZWFkbGVzc1ZpZXdCYWNrZW5kLmgiCisKKyNpbmNsdWRl
IDxjYXNzZXJ0PgorI2luY2x1ZGUgPGZjbnRsLmg+CisjaW5jbHVkZSA8dW5pc3RkLmg+CisKKy8v
IEZJWE1FOiBEZXBsb3kgZ29vZCBwcmFjdGljZXMgYW5kIGNsZWFuIHVwIEdCTSByZXNvdXJjZXMg
YXQgcHJvY2VzcyBleGl0Lgorc3RhdGljIEVHTERpc3BsYXkgZ2V0RUdMRGlzcGxheSgpCit7Cisg
ICAgc3RhdGljIEVHTERpc3BsYXkgc19kaXNwbGF5ID0gRUdMX05PX0RJU1BMQVk7CisgICAgaWYg
KHNfZGlzcGxheSA9PSBFR0xfTk9fRElTUExBWSkgeworICAgICAgICBpbnQgZmQgPSBvcGVuKCIv
ZGV2L2RyaS9yZW5kZXJEMTI4IiwgT19SRFdSIHwgT19DTE9FWEVDIHwgT19OT0NUVFkgfCBPX05P
TkJMT0NLKTsKKyAgICAgICAgaWYgKGZkIDwgMCkKKyAgICAgICAgICAgIHJldHVybiBFR0xfTk9f
RElTUExBWTsKKworICAgICAgICBzdHJ1Y3QgZ2JtX2RldmljZSogZGV2aWNlID0gZ2JtX2NyZWF0
ZV9kZXZpY2UoZmQpOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiBF
R0xfTk9fRElTUExBWTsKKworICAgICAgICBFR0xEaXNwbGF5IGRpc3BsYXkgPSBlZ2xHZXREaXNw
bGF5KGRldmljZSk7CisgICAgICAgIGlmIChkaXNwbGF5ID09IEVHTF9OT19ESVNQTEFZKQorICAg
ICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIGlmICghZWdsSW5pdGlh
bGl6ZShkaXNwbGF5LCBudWxscHRyLCBudWxscHRyKSkKKyAgICAgICAgICAgIHJldHVybiBFR0xf
Tk9fRElTUExBWTsKKworICAgICAgICBpZiAoIWVnbEJpbmRBUEkoRUdMX09QRU5HTF9FU19BUEkp
KQorICAgICAgICAgICAgcmV0dXJuIEVHTF9OT19ESVNQTEFZOworCisgICAgICAgIHNfZGlzcGxh
eSA9IGRpc3BsYXk7CisgICAgfQorCisgICAgcmV0dXJuIHNfZGlzcGxheTsKK30KKworSGVhZGxl
c3NWaWV3QmFja2VuZDo6SGVhZGxlc3NWaWV3QmFja2VuZCgpCit7CisgICAgbV9lZ2wuZGlzcGxh
eSA9IGdldEVHTERpc3BsYXkoKTsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29uZmlnQXR0
cmlidXRlc1sxM10gPSB7CisgICAgICAgIEVHTF9TVVJGQUNFX1RZUEUsIEVHTF9XSU5ET1dfQklU
LAorICAgICAgICBFR0xfUkVEX1NJWkUsIDEsCisgICAgICAgIEVHTF9HUkVFTl9TSVpFLCAxLAor
ICAgICAgICBFR0xfQkxVRV9TSVpFLCAxLAorICAgICAgICBFR0xfQUxQSEFfU0laRSwgMSwKKyAg
ICAgICAgRUdMX1JFTkRFUkFCTEVfVFlQRSwgRUdMX09QRU5HTF9FUzJfQklULAorICAgICAgICBF
R0xfTk9ORQorICAgIH07CisKKyAgICBFR0xpbnQgbnVtQ29uZmlnczsKKyAgICBFR0xCb29sZWFu
IHJldCA9IGVnbENob29zZUNvbmZpZyhtX2VnbC5kaXNwbGF5LCBjb25maWdBdHRyaWJ1dGVzLCAm
bV9lZ2wuY29uZmlnLCAxLCAmbnVtQ29uZmlncyk7CisgICAgaWYgKCFyZXQgfHwgIW51bUNvbmZp
Z3MpCisgICAgICAgIHJldHVybjsKKworICAgIHN0YXRpYyBjb25zdCBFR0xpbnQgY29udGV4dEF0
dHJpYnV0ZXNbM10gPSB7CisgICAgICAgIEVHTF9DT05URVhUX0NMSUVOVF9WRVJTSU9OLCAyLAor
ICAgICAgICBFR0xfTk9ORQorICAgIH07CisKKyAgICBtX2VnbC5jb250ZXh0ID0gZWdsQ3JlYXRl
Q29udGV4dChtX2VnbC5kaXNwbGF5LCBtX2VnbC5jb25maWcsIEVHTF9OT19DT05URVhULCBjb250
ZXh0QXR0cmlidXRlcyk7CisgICAgaWYgKG1fZWdsLmNvbnRleHQgPT0gRUdMX05PX0NPTlRFWFQp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZWdsTWFrZUN1cnJlbnQobV9lZ2wuZGlzcGxh
eSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19TVVJGQUNFLCBtX2VnbC5jb250ZXh0KSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9lZ2wuY3JlYXRlSW1hZ2UgPSByZWludGVycHJldF9jYXN0PFBG
TkVHTENSRUFURUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbENyZWF0ZUltYWdl
S0hSIikpOworICAgIG1fZWdsLmRlc3Ryb3lJbWFnZSA9IHJlaW50ZXJwcmV0X2Nhc3Q8UEZORUdM
REVTVFJPWUlNQUdFS0hSUFJPQz4oZWdsR2V0UHJvY0FkZHJlc3MoImVnbERlc3Ryb3lJbWFnZUtI
UiIpKTsKKyAgICBtX2VnbC5pbWFnZVRhcmdldFRleHR1cmUyRE9FUyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8UEZOR0xFR0xJTUFHRVRBUkdFVFRFWFRVUkUyRE9FU1BST0M+KGVnbEdldFByb2NBZGRyZXNz
KCJnbEVHTEltYWdlVGFyZ2V0VGV4dHVyZTJET0VTIikpOworCisgICAgbV9leHBvcnRhYmxlID0g
d3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9jcmVhdGUoJnNfZXhwb3J0
YWJsZUNsaWVudCwgdGhpcyk7CisKKyAgICBtX3VwZGF0ZVNvdXJjZSA9IGdfdGltZW91dF9zb3Vy
Y2VfbmV3KG1fZnJhbWVSYXRlIC8gMTAwMCk7CisgICAgZ19zb3VyY2Vfc2V0X2NhbGxiYWNrKG1f
dXBkYXRlU291cmNlLAorICAgICAgICBbXShncG9pbnRlciBkYXRhKSAtPiBnYm9vbGVhbiB7Cisg
ICAgICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0JhY2tl
bmQqPihkYXRhKTsKKyAgICAgICAgICAgIGJhY2tlbmQucGVyZm9ybVVwZGF0ZSgpOworICAgICAg
ICAgICAgcmV0dXJuIFRSVUU7CisgICAgICAgIH0sIHRoaXMsIG51bGxwdHIpOworICAgIGdfc291
cmNlX2F0dGFjaChtX3VwZGF0ZVNvdXJjZSwgZ19tYWluX2NvbnRleHRfZGVmYXVsdCgpKTsKK30K
KworSGVhZGxlc3NWaWV3QmFja2VuZDo6fkhlYWRsZXNzVmlld0JhY2tlbmQoKQoreworICAgIGlm
IChtX3VwZGF0ZVNvdXJjZSkKKyAgICAgICAgZ19zb3VyY2VfZGVzdHJveShtX3VwZGF0ZVNvdXJj
ZSk7CisKKyAgICBpZiAoYXV0byBpbWFnZSA9IHN0ZDo6Z2V0PDA+KG1fcGVuZGluZ0ltYWdlLnNl
Y29uZCkpCisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7
CisgICAgaWYgKGF1dG8gaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCkp
CisgICAgICAgIG1fZWdsLmRlc3Ryb3lJbWFnZShtX2VnbC5kaXNwbGF5LCBpbWFnZSk7CisKKyAg
ICBmb3IgKGF1dG8gaXQgOiBtX2V4cG9ydE1hcCkgeworICAgICAgICBpbnQgZmQgPSBpdC5zZWNv
bmQ7CisgICAgICAgIGlmIChmZCA+PSAwKQorICAgICAgICAgICAgY2xvc2UoZmQpOworICAgIH0K
KworICAgIGlmIChtX2VnbC5jb250ZXh0KQorICAgICAgICBlZ2xEZXN0cm95Q29udGV4dChtX2Vn
bC5kaXNwbGF5LCBtX2VnbC5jb250ZXh0KTsKK30KKworc3RydWN0IHdwZV92aWV3X2JhY2tlbmQq
IEhlYWRsZXNzVmlld0JhY2tlbmQ6OmJhY2tlbmQoKSBjb25zdAoreworICAgIHJldHVybiB3cGVf
bWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJsZV9kbWFfYnVmX2dldF92aWV3X2JhY2tlbmQobV9l
eHBvcnRhYmxlKTsKK30KKworY2Fpcm9fc3VyZmFjZV90KiBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpj
cmVhdGVTbmFwc2hvdCgpCit7CisgICAgcGVyZm9ybVVwZGF0ZSgpOworCisgICAgRUdMSW1hZ2VL
SFIgaW1hZ2UgPSBzdGQ6OmdldDwwPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisgICAgaWYgKCFp
bWFnZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICB1aW50MzJfdCB3aWR0aCA9IHN0
ZDo6Z2V0PDE+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKTsKKyAgICB1aW50MzJfdCBoZWlnaHQgPSBz
dGQ6OmdldDwyPihtX2xvY2tlZEltYWdlLnNlY29uZCk7CisKKyAgICB1aW50OF90KiBidWZmZXIg
PSBuZXcgdWludDhfdFs0ICogd2lkdGggKiBoZWlnaHRdOworICAgIGJvb2wgc3VjY2Vzc2Z1bFNu
YXBzaG90ID0gZmFsc2U7CisKKyAgICBtYWtlQ3VycmVudCgpOworCisgICAgR0x1aW50IGltYWdl
VGV4dHVyZTsKKyAgICBnbEdlblRleHR1cmVzKDEsICZpbWFnZVRleHR1cmUpOworICAgIGdsQmlu
ZFRleHR1cmUoR0xfVEVYVFVSRV8yRCwgaW1hZ2VUZXh0dXJlKTsKKyAgICBnbFRleFBhcmFtZXRl
cmkoR0xfVEVYVFVSRV8yRCwgR0xfVEVYVFVSRV9NSU5fRklMVEVSLCBHTF9MSU5FQVIpOworICAg
IGdsVGV4UGFyYW1ldGVyaShHTF9URVhUVVJFXzJELCBHTF9URVhUVVJFX01BR19GSUxURVIsIEdM
X0xJTkVBUik7CisgICAgZ2xUZXhQYXJhbWV0ZXJpKEdMX1RFWFRVUkVfMkQsIEdMX1RFWFRVUkVf
V1JBUF9TLCBHTF9DTEFNUF9UT19FREdFKTsKKyAgICBnbFRleFBhcmFtZXRlcmkoR0xfVEVYVFVS
RV8yRCwgR0xfVEVYVFVSRV9XUkFQX1QsIEdMX0NMQU1QX1RPX0VER0UpOworICAgIGdsVGV4SW1h
Z2UyRChHTF9URVhUVVJFXzJELCAwLCBHTF9CR1JBX0VYVCwgd2lkdGgsIGhlaWdodCwgMCwgR0xf
QkdSQV9FWFQsIEdMX1VOU0lHTkVEX0JZVEUsIG51bGxwdHIpOworCisgICAgbV9lZ2wuaW1hZ2VU
YXJnZXRUZXh0dXJlMkRPRVMoR0xfVEVYVFVSRV8yRCwgaW1hZ2UpOworICAgIGdsQmluZFRleHR1
cmUoR0xfVEVYVFVSRV8yRCwgMCk7CisKKyAgICBHTHVpbnQgaW1hZ2VGcmFtZWJ1ZmZlcjsKKyAg
ICBnbEdlbkZyYW1lYnVmZmVycygxLCAmaW1hZ2VGcmFtZWJ1ZmZlcik7CisgICAgZ2xCaW5kRnJh
bWVidWZmZXIoR0xfRlJBTUVCVUZGRVIsIGltYWdlRnJhbWVidWZmZXIpOworICAgIGdsRnJhbWVi
dWZmZXJUZXh0dXJlMkQoR0xfRlJBTUVCVUZGRVIsIEdMX0NPTE9SX0FUVEFDSE1FTlQwLCBHTF9U
RVhUVVJFXzJELCBpbWFnZVRleHR1cmUsIDApOworCisgICAgZ2xGbHVzaCgpOworICAgIGlmIChn
bENoZWNrRnJhbWVidWZmZXJTdGF0dXMoR0xfRlJBTUVCVUZGRVIpID09IEdMX0ZSQU1FQlVGRkVS
X0NPTVBMRVRFKSB7CisgICAgICAgIGdsUmVhZFBpeGVscygwLCAwLCB3aWR0aCwgaGVpZ2h0LCBH
TF9CR1JBX0VYVCwgR0xfVU5TSUdORURfQllURSwgYnVmZmVyKTsKKyAgICAgICAgc3VjY2Vzc2Z1
bFNuYXBzaG90ID0gdHJ1ZTsKKyAgICB9CisKKyAgICBnbEJpbmRGcmFtZWJ1ZmZlcihHTF9GUkFN
RUJVRkZFUiwgMCk7CisgICAgZ2xEZWxldGVGcmFtZWJ1ZmZlcnMoMSwgJmltYWdlRnJhbWVidWZm
ZXIpOworICAgIGdsRGVsZXRlVGV4dHVyZXMoMSwgJmltYWdlVGV4dHVyZSk7CisKKyAgICBpZiAo
IXN1Y2Nlc3NmdWxTbmFwc2hvdCkgeworICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAg
IHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGNhaXJvX3N1cmZhY2VfdCogaW1hZ2VTdXJm
YWNlID0gY2Fpcm9faW1hZ2Vfc3VyZmFjZV9jcmVhdGVfZm9yX2RhdGEoYnVmZmVyLAorICAgICAg
ICBDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCwgaGVpZ2h0LCBjYWlyb19mb3JtYXRfc3RyaWRl
X2Zvcl93aWR0aChDQUlST19GT1JNQVRfQVJHQjMyLCB3aWR0aCkpOworICAgIGNhaXJvX3N1cmZh
Y2VfbWFya19kaXJ0eShpbWFnZVN1cmZhY2UpOworCisgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0
YV9rZXlfdCBidWZmZXJLZXk7CisgICAgY2Fpcm9fc3VyZmFjZV9zZXRfdXNlcl9kYXRhKGltYWdl
U3VyZmFjZSwgJmJ1ZmZlcktleSwgYnVmZmVyLAorICAgICAgICBbXSh2b2lkKiBkYXRhKSB7Cisg
ICAgICAgICAgICBhdXRvKiBidWZmZXIgPSBzdGF0aWNfY2FzdDx1aW50OF90Kj4oZGF0YSk7Cisg
ICAgICAgICAgICBkZWxldGVbXSBidWZmZXI7CisgICAgICAgIH0pOworCisgICAgcmV0dXJuIGlt
YWdlU3VyZmFjZTsKK30KKworYm9vbCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjptYWtlQ3VycmVudCgp
Cit7CisgICAgcmV0dXJuIGVnbE1ha2VDdXJyZW50KG1fZWdsLmRpc3BsYXksIEVHTF9OT19TVVJG
QUNFLCBFR0xfTk9fU1VSRkFDRSwgbV9lZ2wuY29udGV4dCk7Cit9CisKK3ZvaWQgSGVhZGxlc3NW
aWV3QmFja2VuZDo6cGVyZm9ybVVwZGF0ZSgpCit7CisgICAgaWYgKCFtX3BlbmRpbmdJbWFnZS5m
aXJzdCkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4cG9y
dGFibGVfZG1hX2J1Zl9kaXNwYXRjaF9mcmFtZV9jb21wbGV0ZShtX2V4cG9ydGFibGUpOworICAg
IGlmIChtX2xvY2tlZEltYWdlLmZpcnN0KSB7CisgICAgICAgIHdwZV9tZXNhX3ZpZXdfYmFja2Vu
ZF9leHBvcnRhYmxlX2RtYV9idWZfZGlzcGF0Y2hfcmVsZWFzZV9idWZmZXIobV9leHBvcnRhYmxl
LCBtX2xvY2tlZEltYWdlLmZpcnN0KTsKKyAgICAgICAgbV9lZ2wuZGVzdHJveUltYWdlKG1fZWds
LmRpc3BsYXksIHN0ZDo6Z2V0PDA+KG1fbG9ja2VkSW1hZ2Uuc2Vjb25kKSk7CisgICAgfQorCisg
ICAgbV9sb2NrZWRJbWFnZSA9IG1fcGVuZGluZ0ltYWdlOworICAgIG1fcGVuZGluZ0ltYWdlID0g
c3RkOjpwYWlyPHVpbnQzMl90LCBzdGQ6OnR1cGxlPEVHTEltYWdlS0hSLCB1aW50MzJfdCwgdWlu
dDMyX3Q+PiB7IH07Cit9CisKK3N0cnVjdCB3cGVfbWVzYV92aWV3X2JhY2tlbmRfZXhwb3J0YWJs
ZV9kbWFfYnVmX2NsaWVudCBIZWFkbGVzc1ZpZXdCYWNrZW5kOjpzX2V4cG9ydGFibGVDbGllbnQg
PSB7CisgICAgLy8gZXhwb3J0X2RtYV9idWYKKyAgICBbXSh2b2lkKiBkYXRhLCBzdHJ1Y3Qgd3Bl
X21lc2Ffdmlld19iYWNrZW5kX2V4cG9ydGFibGVfZG1hX2J1Zl9kYXRhKiBpbWFnZURhdGEpCisg
ICAgeworICAgICAgICBhdXRvJiBiYWNrZW5kID0gKnN0YXRpY19jYXN0PEhlYWRsZXNzVmlld0Jh
Y2tlbmQqPihkYXRhKTsKKworICAgICAgICBhdXRvIGl0ID0gYmFja2VuZC5tX2V4cG9ydE1hcC5l
bmQoKTsKKyAgICAgICAgaWYgKGltYWdlRGF0YS0+ZmQgPj0gMCkgeworICAgICAgICAgICAgYXNz
ZXJ0KGJhY2tlbmQubV9leHBvcnRNYXAuZmluZChpbWFnZURhdGEtPmhhbmRsZSkgPT0gYmFja2Vu
ZC5tX2V4cG9ydE1hcC5lbmQoKSk7CisKKyAgICAgICAgICAgIGl0ID0gYmFja2VuZC5tX2V4cG9y
dE1hcC5pbnNlcnQoeyBpbWFnZURhdGEtPmhhbmRsZSwgaW1hZ2VEYXRhLT5mZCB9KS5maXJzdDsK
KyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIGFzc2VydChiYWNrZW5kLm1fZXhwb3J0TWFw
LmZpbmQoaW1hZ2VEYXRhLT5oYW5kbGUpICE9IGJhY2tlbmQubV9leHBvcnRNYXAuZW5kKCkpOwor
ICAgICAgICAgICAgaXQgPSBiYWNrZW5kLm1fZXhwb3J0TWFwLmZpbmQoaW1hZ2VEYXRhLT5oYW5k
bGUpOworICAgICAgICB9CisKKyAgICAgICAgYXNzZXJ0KGl0ICE9IGJhY2tlbmQubV9leHBvcnRN
YXAuZW5kKCkpOworICAgICAgICB1aW50MzJfdCBoYW5kbGUgPSBpdC0+Zmlyc3Q7CisgICAgICAg
IGludDMyX3QgZmQgPSBpdC0+c2Vjb25kOworCisgICAgICAgIGJhY2tlbmQubWFrZUN1cnJlbnQo
KTsKKworICAgICAgICBFR0xpbnQgYXR0cmlidXRlc1tdID0geworICAgICAgICAgICAgRUdMX1dJ
RFRILCBzdGF0aWNfY2FzdDxFR0xpbnQ+KGltYWdlRGF0YS0+d2lkdGgpLAorICAgICAgICAgICAg
RUdMX0hFSUdIVCwgc3RhdGljX2Nhc3Q8RUdMaW50PihpbWFnZURhdGEtPmhlaWdodCksCisgICAg
ICAgICAgICBFR0xfTElOVVhfRFJNX0ZPVVJDQ19FWFQsIHN0YXRpY19jYXN0PEVHTGludD4oaW1h
Z2VEYXRhLT5mb3JtYXQpLAorICAgICAgICAgICAgRUdMX0RNQV9CVUZfUExBTkUwX0ZEX0VYVCwg
ZmQsCisgICAgICAgICAgICBFR0xfRE1BX0JVRl9QTEFORTBfT0ZGU0VUX0VYVCwgMCwKKyAgICAg
ICAgICAgIEVHTF9ETUFfQlVGX1BMQU5FMF9QSVRDSF9FWFQsIHN0YXRpY19jYXN0PEVHTGludD4o
aW1hZ2VEYXRhLT5zdHJpZGUpLAorICAgICAgICAgICAgRUdMX05PTkUsCisgICAgICAgIH07Cisg
ICAgICAgIEVHTEltYWdlS0hSIGltYWdlID0gYmFja2VuZC5tX2VnbC5jcmVhdGVJbWFnZShiYWNr
ZW5kLm1fZWdsLmRpc3BsYXksIEVHTF9OT19DT05URVhULCBFR0xfTElOVVhfRE1BX0JVRl9FWFQs
IG51bGxwdHIsIGF0dHJpYnV0ZXMpOworICAgICAgICBiYWNrZW5kLm1fcGVuZGluZ0ltYWdlID0g
eyBpbWFnZURhdGEtPmhhbmRsZSwgc3RkOjptYWtlX3R1cGxlKGltYWdlLCBpbWFnZURhdGEtPndp
ZHRoLCBpbWFnZURhdGEtPmhlaWdodCkgfTsKKyAgICB9LAorfTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvd3BlL0hlYWRsZXNzVmlld0JhY2tlbmQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMC4uNjIxODYxMjFhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL3dwZS9IZWFkbGVzc1ZpZXdCYWNrZW5kLmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBJZ2FsaWEgUy5MLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPGdibS5oPgorI2luY2x1ZGUgPEVHTC9lZ2wuaD4KKyNp
bmNsdWRlIDxFR0wvZWdsZXh0Lmg+CisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8
R0xFUzIvZ2wyZXh0Lmg+CisjaW5jbHVkZSA8Y2Fpcm8uaD4KKyNpbmNsdWRlIDxnbGliLmg+Cisj
aW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KKyNpbmNsdWRlIDx3cGUtbWVzYS92aWV3LWJhY2tlbmQt
ZXhwb3J0YWJsZS1kbWEtYnVmLmg+CisKK2NsYXNzIEhlYWRsZXNzVmlld0JhY2tlbmQgeworcHVi
bGljOgorICAgIEhlYWRsZXNzVmlld0JhY2tlbmQoKTsKKyAgICB+SGVhZGxlc3NWaWV3QmFja2Vu
ZCgpOworCisgICAgc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQoKSBjb25zdDsKKwor
ICAgIGNhaXJvX3N1cmZhY2VfdCogY3JlYXRlU25hcHNob3QoKTsKKworcHJpdmF0ZToKKyAgICBi
b29sIG1ha2VDdXJyZW50KCk7CisgICAgdm9pZCBwZXJmb3JtVXBkYXRlKCk7CisKKyAgICBzdGF0
aWMgc3RydWN0IHdwZV9tZXNhX3ZpZXdfYmFja2VuZF9leHBvcnRhYmxlX2RtYV9idWZfY2xpZW50
IHNfZXhwb3J0YWJsZUNsaWVudDsKKworICAgIHN0cnVjdCB7CisgICAgICAgIEVHTERpc3BsYXkg
ZGlzcGxheTsKKyAgICAgICAgRUdMQ29uZmlnIGNvbmZpZzsKKyAgICAgICAgRUdMQ29udGV4dCBj
b250ZXh0OworCisgICAgICAgIFBGTkVHTENSRUFURUlNQUdFS0hSUFJPQyBjcmVhdGVJbWFnZTsK
KyAgICAgICAgUEZORUdMREVTVFJPWUlNQUdFS0hSUFJPQyBkZXN0cm95SW1hZ2U7CisgICAgICAg
IFBGTkdMRUdMSU1BR0VUQVJHRVRURVhUVVJFMkRPRVNQUk9DIGltYWdlVGFyZ2V0VGV4dHVyZTJE
T0VTOworICAgIH0gbV9lZ2w7CisKKyAgICBzdHJ1Y3Qgd3BlX21lc2Ffdmlld19iYWNrZW5kX2V4
cG9ydGFibGVfZG1hX2J1ZiogbV9leHBvcnRhYmxlOworCisgICAgc3RkOjp1bm9yZGVyZWRfbWFw
PHVpbnQzMl90LCBpbnQzMl90PiBtX2V4cG9ydE1hcDsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3Qs
IHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIsIHVpbnQzMl90LCB1aW50MzJfdD4+IG1fcGVuZGluZ0lt
YWdlIHsgfTsKKyAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHN0ZDo6dHVwbGU8RUdMSW1hZ2VLSFIs
IHVpbnQzMl90LCB1aW50MzJfdD4+IG1fbG9ja2VkSW1hZ2UgeyB9OworCisgICAgR1NvdXJjZSog
bV91cGRhdGVTb3VyY2U7CisgICAgZ2ludDY0IG1fZnJhbWVSYXRlIHsgR19VU0VDX1BFUl9TRUMg
LyA2MCB9OworfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1BsYXRm
b3JtV2ViVmlld1dQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9QbGF0Zm9ybVdl
YlZpZXdXUEUuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi45MTY4
YTkzNGMxMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Bs
YXRmb3JtV2ViVmlld1dQRS5jcHAKQEAgLTAsMCArMSwxNDAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIlBsYXRmb3JtV2ViVmlldy5oIgorCisjaW5jbHVkZSAiSGVhZGxlc3NWaWV3QmFja2Vu
ZC5oIgorI2luY2x1ZGUgPFdlYktpdC9XS0ltYWdlQ2Fpcm8uaD4KKyNpbmNsdWRlIDxjYWlyby5o
PgorI2luY2x1ZGUgPGNzdGRpbz4KKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1
bkxvb3AuaD4KKworbmFtZXNwYWNlIFdUUiB7CisKK1BsYXRmb3JtV2ViVmlldzo6UGxhdGZvcm1X
ZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYgY29uZmlndXJhdGlvbiwgY29uc3QgVGVzdE9w
dGlvbnMmIG9wdGlvbnMpCisgICAgOiBtX3dpbmRvd0lzS2V5KHRydWUpCisgICAgLCBtX29wdGlv
bnMob3B0aW9ucykKK3sKKyAgICBtX3dpbmRvdyA9IG5ldyBIZWFkbGVzc1ZpZXdCYWNrZW5kOwor
ICAgIG1fdmlldyA9IFdLVmlld0NyZWF0ZVdpdGhWaWV3QmFja2VuZChtX3dpbmRvdy0+YmFja2Vu
ZCgpLCBjb25maWd1cmF0aW9uKTsKK30KKworUGxhdGZvcm1XZWJWaWV3Ojp+UGxhdGZvcm1XZWJW
aWV3KCkKK3sKKyAgICBkZWxldGUgbV93aW5kb3c7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3
OjpyZXNpemVUbyh1bnNpZ25lZCwgdW5zaWduZWQsIFdlYlZpZXdTaXppbmdNb2RlKQoreworfQor
CitXS1BhZ2VSZWYgUGxhdGZvcm1XZWJWaWV3OjpwYWdlKCkKK3sKKyAgICByZXR1cm4gV0tWaWV3
R2V0UGFnZShtX3ZpZXcpOworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6Zm9jdXMoKQorewor
fQorCitXS1JlY3QgUGxhdGZvcm1XZWJWaWV3Ojp3aW5kb3dGcmFtZSgpCit7CisgICAgcmV0dXJu
IFdLUmVjdCB7IDAsIDAsIDEsIDEgfTsKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldFdp
bmRvd0ZyYW1lKFdLUmVjdCwgV2ViVmlld1NpemluZ01vZGUpCit7Cit9CisKK3ZvaWQgUGxhdGZv
cm1XZWJWaWV3OjpkaWRJbml0aWFsaXplQ2xpZW50cygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1X
ZWJWaWV3OjphZGRDaHJvbWVJbnB1dEZpZWxkKCkKK3sKK30KKwordm9pZCBQbGF0Zm9ybVdlYlZp
ZXc6OnJlbW92ZUNocm9tZUlucHV0RmllbGQoKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmll
dzo6YWRkVG9XaW5kb3coKQoreworfQorCit2b2lkIFBsYXRmb3JtV2ViVmlldzo6cmVtb3ZlRnJv
bVdpbmRvdygpCit7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXRXaW5kb3dJc0tleShi
b29sIHdpbmRvd0lzS2V5KQoreworICAgIG1fd2luZG93SXNLZXkgPSB3aW5kb3dJc0tleTsKK30K
Kwordm9pZCBQbGF0Zm9ybVdlYlZpZXc6Om1ha2VXZWJWaWV3Rmlyc3RSZXNwb25kZXIoKQorewor
fQorCitjYWlyb19zdXJmYWNlX3QqIFBsYXRmb3JtV2ViVmlldzo6d2luZG93U25hcHNob3RJbWFn
ZSgpCit7CisgICAgeworICAgICAgICBzdHJ1Y3QgVGltZW91dFRpbWVyIHsKKyAgICAgICAgICAg
IFRpbWVvdXRUaW1lcigpCisgICAgICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICAgICAgeworICAgICAgICAgICAg
ICAgIHRpbWVyLnN0YXJ0T25lU2hvdCgxLjAgLyA2MCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHZvaWQgZmlyZWQoKSB7IFJ1bkxvb3A6Om1haW4oKS5zdG9wKCk7IH0KKyAgICAgICAg
ICAgIFJ1bkxvb3A6OlRpbWVyPFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgICAgIH0gdGltZW91
dFRpbWVyOworCisgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5ydW4oKTsKKyAgICB9CisKKyAgICBj
YWlyb19zdXJmYWNlX3QqIGltYWdlU3VyZmFjZSA9IG1fd2luZG93LT5jcmVhdGVTbmFwc2hvdCgp
OworICAgIHJldHVybiBpbWFnZVN1cmZhY2U7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpj
aGFuZ2VXaW5kb3dTY2FsZUlmTmVlZGVkKGZsb2F0KQoreworfQorCit2b2lkIFBsYXRmb3JtV2Vi
Vmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQoreworfQorCitib29sIFBs
YXRmb3JtV2ViVmlldzo6dmlld1N1cHBvcnRzT3B0aW9ucyhjb25zdCBUZXN0T3B0aW9ucyYpIGNv
bnN0Cit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgUGxhdGZvcm1XZWJWaWV3Ojpmb3Jj
ZVdpbmRvd0ZyYW1lc0NoYW5nZWQoKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcCBi
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL1Rlc3RDb250cm9sbGVyV1BFLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uMGNjM2RlZGU5ODYKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9UZXN0Q29udHJvbGxlcldQRS5jcHAK
QEAgLTAsMCArMSwxMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRlc3RDb250cm9sbGVy
LmgiCisKKyNpbmNsdWRlIDxnbGliLmg+CisjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KKyNpbmNs
dWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIFRl
c3RDb250cm9sbGVyOjpub3RpZnlEb25lKCkKK3sKKyAgICBSdW5Mb29wOjptYWluKCkuc3RvcCgp
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpzZXRIaWRkZW4oYm9vbCkKK3sKK30KKwordm9p
ZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1Jbml0aWFsaXplKCkKK3sKK30KKworV0tQcmVmZXJl
bmNlc1JlZiBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1QcmVmZXJlbmNlcygpCit7CisgICAgcmV0
dXJuIFdLUGFnZUdyb3VwR2V0UHJlZmVyZW5jZXMobV9wYWdlR3JvdXAuZ2V0KCkpOworfQorCit2
b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURlc3Ryb3koKQoreworfQorCit2b2lkIFRlc3RD
b250cm9sbGVyOjpwbGF0Zm9ybUluaXRpYWxpemVDb250ZXh0KCkKK3sKK30KKworc3RhdGljIEdN
YWluQ29udGV4dCogdGhyZWFkRGVmYXVsdENvbnRleHQoKQoreworICAgIGlmIChHTWFpbkNvbnRl
eHQqIGNvbnRleHQgPSBnX21haW5fY29udGV4dF9nZXRfdGhyZWFkX2RlZmF1bHQoKSkKKyAgICAg
ICAgcmV0dXJuIGNvbnRleHQ7CisgICAgcmV0dXJuIGdfbWFpbl9jb250ZXh0X2RlZmF1bHQoKTsK
K30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1SdW5VbnRpbChib29sJiBjb25kaXRp
b24sIGRvdWJsZSB0aW1lb3V0KQoreworICAgIHN0cnVjdCBUaW1lb3V0VGltZXIgeworICAgICAg
ICBUaW1lb3V0VGltZXIoKQorICAgICAgICAgICAgOiB0aW1lcihSdW5Mb29wOjptYWluKCksIHRo
aXMsICZUaW1lb3V0VGltZXI6OmZpcmVkKQorICAgICAgICB7IH0KKworICAgICAgICB2b2lkIGZp
cmVkKCkgeyBSdW5Mb29wOjptYWluKCkuc3RvcCgpOyB9CisgICAgICAgIFJ1bkxvb3A6OlRpbWVy
PFRpbWVvdXRUaW1lcj4gdGltZXI7CisgICAgfSB0aW1lb3V0VGltZXI7CisKKyAgICB0aW1lb3V0
VGltZXIudGltZXIuc2V0UHJpb3JpdHkoR19QUklPUklUWV9ERUZBVUxUX0lETEUpOworICAgIGlm
ICh0aW1lb3V0ID49IDApCisgICAgICAgIHRpbWVvdXRUaW1lci50aW1lci5zdGFydE9uZVNob3Qo
dGltZW91dCk7CisKKyAgICBSdW5Mb29wOjptYWluKCkucnVuKCk7CisKKyAgICB0aW1lb3V0VGlt
ZXIudGltZXIuc3RvcCgpOworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybURpZENv
bW1pdExvYWRGb3JGcmFtZShXS1BhZ2VSZWYsIFdLRnJhbWVSZWYpCit7Cit9CisKK3N0YXRpYyBj
aGFyKiBnZXRFbnZpcm9ubWVudFZhcmlhYmxlQXNVVEY4U3RyaW5nKGNvbnN0IGNoYXIqIHZhcmlh
YmxlTmFtZSkKK3sKKyAgICBjb25zdCBjaGFyKiB2YWx1ZSA9IGdfZ2V0ZW52KHZhcmlhYmxlTmFt
ZSk7CisgICAgaWYgKCF2YWx1ZSkgeworICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiVzIGVudmly
b25tZW50IHZhcmlhYmxlIG5vdCBmb3VuZFxuIiwgdmFyaWFibGVOYW1lKTsKKyAgICAgICAgZXhp
dCgwKTsKKyAgICB9CisgICAgZ3NpemUgYnl0ZXNXcml0dGVuOworICAgIHJldHVybiBnX2ZpbGVu
YW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNXcml0dGVuLCAwKTsKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZUluamVjdGVkQnVuZGxlUGF0aCgpCit7CisgICAgR1Vu
aXF1ZVB0cjxjaGFyPiBwYXRoKGdldEVudmlyb25tZW50VmFyaWFibGVBc1VURjhTdHJpbmcoIlRF
U1RfUlVOTkVSX0lOSkVDVEVEX0JVTkRMRV9GSUxFTkFNRSIpKTsKKyAgICBtX2luamVjdGVkQnVu
ZGxlUGF0aC5hZG9wdChXS1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZyhwYXRoLmdldCgpKSk7
Cit9CisKK3ZvaWQgVGVzdENvbnRyb2xsZXI6OmluaXRpYWxpemVUZXN0UGx1Z2luRGlyZWN0b3J5
KCkKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cnVuTW9kYWwoUGxhdGZvcm1XZWJWaWV3
KikKK3sKK30KKworV0tDb250ZXh0UmVmIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbnRleHQo
KQoreworICAgIHJldHVybiBudWxscHRyOworfQorCitjb25zdCBjaGFyKiBUZXN0Q29udHJvbGxl
cjo6cGxhdGZvcm1MaWJyYXJ5UGF0aEZvclRlc3RpbmcoKQoreworICAgIHJldHVybiBudWxscHRy
OworfQorCit2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNvbmZpZ3VyZVZpZXdGb3JUZXN0
KGNvbnN0IFRlc3RJbnZvY2F0aW9uJikKK3sKK30KKwordm9pZCBUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1SZXNldFByZWZlcmVuY2VzVG9Db25zaXN0ZW50VmFsdWVzKCkKK3sKK30KKwordm9pZCBU
ZXN0Q29udHJvbGxlcjo6dXBkYXRlUGxhdGZvcm1TcGVjaWZpY1Rlc3RPcHRpb25zRm9yVGVzdChU
ZXN0T3B0aW9ucyYsIGNvbnN0IHN0ZDo6c3RyaW5nJikgY29uc3QKK3sKK30KKworfSAvLyBuYW1l
c3BhY2UgV1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9tYWluLmNw
cCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwLi42Y2YyYjdmZjMyMQotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL21haW4uY3BwCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUgSWdhbGlhIFMuTC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorCisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKworaW50IG1haW4oaW50IGFy
Z2MsIGNoYXIqKiBhcmd2KQoreworICAgIFdUUjo6VGVzdENvbnRyb2xsZXIgY29udHJvbGxlcihh
cmdjLCBjb25zdF9jYXN0PGNvbnN0IGNoYXIqKj4oYXJndikpOworICAgIHJldHVybiAwOworfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvamhidWlsZC9qaGJ1aWxkLXdyYXBwZXIgYi9Ub29scy9qaGJ1aWxk
L2poYnVpbGQtd3JhcHBlcgppbmRleCBmNmM0MDNkMzFiMC4uZTNlZWNkZmNlODcgMTAwNzU1Ci0t
LSBhL1Rvb2xzL2poYnVpbGQvamhidWlsZC13cmFwcGVyCisrKyBiL1Rvb2xzL2poYnVpbGQvamhi
dWlsZC13cmFwcGVyCkBAIC0zMSw2ICszMSw4IEBAIGRlZiBkZXRlcm1pbmVfcGxhdGZvcm0oKToK
ICAgICAgICAgcmV0dXJuICJlZmwiOwogICAgIGlmICctLWd0aycgaW4gc3lzLmFyZ3Y6CiAgICAg
ICAgIHJldHVybiAiZ3RrIjsKKyAgICBpZiAnLS13cGUnIGluIHN5cy5hcmd2OgorICAgICAgICBy
ZXR1cm4gIndwZSIKICAgICByYWlzZSBWYWx1ZUVycm9yKCdObyBwbGF0Zm9ybSBzcGVjaWZpZWQg
Zm9yIGpoYnVpbGQtd3JhcHBlci4nKQogCiB0cnk6CmRpZmYgLS1naXQgYS9Ub29scy93cGUvZ2Vu
ZXJhdGUtaW5zcGVjdG9yLWdyZXNvdXJjZS1tYW5pZmVzdC5weSBiL1Rvb2xzL3dwZS9nZW5lcmF0
ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1Cmlu
ZGV4IDAwMDAwMDAwMDAwLi43OGYxNDEwNjk4MgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dw
ZS9nZW5lcmF0ZS1pbnNwZWN0b3ItZ3Jlc291cmNlLW1hbmlmZXN0LnB5CkBAIC0wLDAgKzEsNzYg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMu
TC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli
dXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz
c2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisjCisjIFRoaXMgbGlicmFyeSBp
cyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorIyBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUg
TGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKKyMgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAg
VVNBCisKK2ltcG9ydCBhcmdwYXJzZQoraW1wb3J0IGdsb2IKK2ltcG9ydCBvcworaW1wb3J0IHN5
cworCitDT01QUkVTU0lCTEVfRVhURU5TSU9OUyA9IFsnLmh0bWwnLCAnLmpzJywgJy5jc3MnLCAn
LnN2ZyddCitCQVNFX0RJUiA9ICdXZWJJbnNwZWN0b3JVSS8nCisKKworZGVmIGdldF9maWxlbmFt
ZXMoYXJncyk6CisgICAgZmlsZW5hbWVzID0gW10KKworICAgIGZvciBwYXR0ZXJuIGluIGFyZ3M6
CisgICAgICAgIHBhdGhzID0gZ2xvYi5nbG9iKHBhdHRlcm4pCisgICAgICAgIGZvciBmaWxlbmFt
ZSBpbiBwYXRoczoKKyAgICAgICAgICAgIGJhc2VfZGlyX2luZGV4ID0gZmlsZW5hbWUucmZpbmQo
QkFTRV9ESVIpCisgICAgICAgICAgICBpZiBiYXNlX2Rpcl9pbmRleCAhPSAtMToKKyAgICAgICAg
ICAgICAgICBuYW1lID0gZmlsZW5hbWVbYmFzZV9kaXJfaW5kZXggKyBsZW4oQkFTRV9ESVIpOl0K
KyAgICAgICAgICAgICAgICAjIFRoZSByZXN1bHQgc2hvdWxkIHVzZSBmb3J3YXJkIHNsYXNoZXMs
IHRodXMgbWFrZSBzdXJlIGFueSBvcy1zcGVjaWZpYworICAgICAgICAgICAgICAgICMgc2VwYXJh
dG9yLCBhZGRlZCBieSB0aGUgZ2xvYi5nbG9iKCkgY2FsbCwgaXMgcHJvcGVybHkgcmVwbGFjZWQK
KyAgICAgICAgICAgICAgICBpZiBvcy5zZXAgIT0gJy8nOgorICAgICAgICAgICAgICAgICAgICBu
YW1lID0gbmFtZS5yZXBsYWNlKG9zLnNlcCwgJy8nKQorICAgICAgICAgICAgICAgIGZpbGVuYW1l
cy5hcHBlbmQobmFtZSkKKyAgICByZXR1cm4gZmlsZW5hbWVzCisKKworZGVmIGlzX2NvbXByZXNz
aWJsZShmaWxlbmFtZSk6CisgICAgcmV0dXJuIG9zLnBhdGguc3BsaXRleHQoZmlsZW5hbWUpWzFd
IGluIENPTVBSRVNTSUJMRV9FWFRFTlNJT05TCisKKworaWYgX19uYW1lX18gPT0gIl9fbWFpbl9f
IjoKKyAgICBwYXJzZXIgPSBhcmdwYXJzZS5Bcmd1bWVudFBhcnNlcihkZXNjcmlwdGlvbj0nR2Vu
ZXJhdGUgYSBHUmVzb3VyY2VzIGZpbGUgZm9yIHRoZSBpbnNwZWN0b3IuJykKKyAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KCctLW91dHB1dCcsIG5hcmdzPSc/JywgdHlwZT1hcmdwYXJzZS5GaWxlVHlw
ZSgndycpLCBkZWZhdWx0PXN5cy5zdGRvdXQsCisgICAgICAgICAgICAgICAgICAgICAgICBoZWxw
PSd0aGUgb3V0cHV0IGZpbGUnKQorICAgIHBhcnNlci5hZGRfYXJndW1lbnQoJ2ZpbGVuYW1lcycs
IG1ldGF2YXI9J0ZJTEVTJywgbmFyZ3M9JysnLAorICAgICAgICAgICAgICAgICAgICAgICAgaGVs
cD0ndGhlIGxpc3Qgb2YgZmlsZXMgdG8gaW5jbHVkZScpCisKKyAgICBhcmdzID0gcGFyc2VyLnBh
cnNlX2FyZ3Moc3lzLmFyZ3ZbMTpdKQorCisgICAgYXJncy5vdXRwdXQud3JpdGUoXAorICAgICIi
Ijw/eG1sIHZlcnNpb249MS4wIGVuY29kaW5nPVVURi04Pz4KKyAgICA8Z3Jlc291cmNlcz4KKyAg
ICAgICAgPGdyZXNvdXJjZSBwcmVmaXg9Ii9vcmcvd3BlL2luc3BlY3RvciI+CisiIiIpCisKKyAg
ICBmb3IgZmlsZW5hbWUgaW4gZ2V0X2ZpbGVuYW1lcyhhcmdzLmZpbGVuYW1lcyk6CisgICAgICAg
IGxpbmUgPSAnICAgICAgICAgICAgPGZpbGUnCisgICAgICAgIGlmIGlzX2NvbXByZXNzaWJsZShm
aWxlbmFtZSk6CisgICAgICAgICAgICBsaW5lICs9ICcgY29tcHJlc3NlZD0idHJ1ZSInCisgICAg
ICAgIGlmICdJbWFnZXMvZ3RrLycgaW4gZmlsZW5hbWU6CisgICAgICAgICAgICBsaW5lICs9ICcg
YWxpYXM9IiVzIicgJSBmaWxlbmFtZS5yZXBsYWNlKCdndGsvJywgJycpCisgICAgICAgIGxpbmUg
Kz0gJz4lczwvZmlsZT5cbicgJSBmaWxlbmFtZQorCisgICAgICAgIGFyZ3Mub3V0cHV0LndyaXRl
KGxpbmUpCisKKyAgICBhcmdzLm91dHB1dC53cml0ZShcCisgICAgIiIiICAgIDwvZ3Jlc291cmNl
PgorPC9ncmVzb3VyY2VzPgorIiIiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9k
dWxlcyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1vZHVsZXMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAuLjJlZDc1NjI2NGEyCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3Bl
L2poYnVpbGQubW9kdWxlcwpAQCAtMCwwICsxLDI0NiBAQAorPD94bWwgdmVyc2lvbj0iMS4wIj8+
Cis8IURPQ1RZUEUgbW9kdWxlc2V0IFNZU1RFTSAibW9kdWxlc2V0LmR0ZCI+Cis8P3htbC1zdHls
ZXNoZWV0IHR5cGU9InRleHQveHNsIiBocmVmPSJtb2R1bGVzZXQueHNsIj8+Cis8bW9kdWxlc2V0
PgorCisgIDxtZXRhbW9kdWxlIGlkPSJ3ZWJraXR3cGUtdGVzdGluZy1kZXBlbmRlbmNpZXMiPgor
ICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KKyAgICAgIDxk
ZXAgcGFja2FnZT0ibGlic291cCIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJjYWlybyIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJmb250cyIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJkaWN0cyIvPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImZy
ZWV0eXBlNiIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJoYXJmYnV6eiIvPgorICAgICAgPGRlcCBw
YWNrYWdlPSJ4a2Jjb21tb24iLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id2F5bGFuZCIvPgorICAg
ICAgPGRlcCBwYWNrYWdlPSJnc3RyZWFtZXIiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBs
dWdpbnMtYmFzZSIvPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1nb29kIi8+Cisg
ICAgICA8ZGVwIHBhY2thZ2U9ImdzdC1wbHVnaW5zLWJhZCIvPgorICAgICAgPGRlcCBwYWNrYWdl
PSJnc3QtbGliYXYiLz4KKyAgICAgIDxkZXAgcGFja2FnZT0id3BlIi8+CisgICAgICA8ZGVwIHBh
Y2thZ2U9IndwZS1tZXNhIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgIDwvbWV0YW1vZHVsZT4K
KworICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJzb3VyY2V3YXJlLm9yZy1taXJy
b3IiCisgICAgICBocmVmPSJodHRwOi8vbWlycm9ycy5rZXJuZWwub3JnL3NvdXJjZXMucmVkaGF0
LmNvbS8iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZnRwLmdub21lLm9y
ZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9mdHAuZ25vbWUub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5
cGU9InRhcmJhbGwiIG5hbWU9ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAgICAgaHJlZj0iaHR0cDov
L2NhaXJvZ3JhcGhpY3Mub3JnIi8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9
ImZyZWVkZXNrdG9wLm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly93d3cuZnJlZWRlc2t0b3Aub3Jn
Ii8+CisgIDxyZXBvc2l0b3J5IHR5cGU9InRhcmJhbGwiIG5hbWU9IndheWxhbmQuZnJlZWRlc2t0
b3Aub3JnIgorICAgICAgaHJlZj0iaHR0cDovL3dheWxhbmQuZnJlZWRlc2t0b3Aub3JnIi8+Cisg
IDxyZXBvc2l0b3J5IHR5cGU9ImdpdCIgbmFtZT0iZ2l0aHViLmNvbSIKKyAgICAgIGhyZWY9Imdp
dDovL2dpdGh1Yi5jb20iLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0idGFyYmFsbCIgbmFtZT0iZ3N0
cmVhbWVyIgorICAgICAgaHJlZj0iaHR0cDovL2dzdHJlYW1lci5mcmVlZGVza3RvcC5vcmcvc3Jj
LyIvPgorICA8cmVwb3NpdG9yeSB0eXBlPSJ0YXJiYWxsIiBuYW1lPSJ4a2Jjb21tb24ub3JnIgor
ICAgICAgaHJlZj0iaHR0cDovL3hrYmNvbW1vbi5vcmciLz4KKyAgPHJlcG9zaXRvcnkgdHlwZT0i
dGFyYmFsbCIgbmFtZT0ic2F2YW5uYWguZ251Lm9yZyIKKyAgICAgIGhyZWY9Imh0dHA6Ly9kb3du
bG9hZC5zYXZhbm5haC5nbnUub3JnL3JlbGVhc2VzLyIvPgorCisgIDxhdXRvdG9vbHMgaWQ9Imxp
YmZmaSIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0ibGliZmZp
L2xpYmZmaS0zLjAuMTAudGFyLmd6IiB2ZXJzaW9uPSIzLjAuMTAiCisgICAgICAgICAgICAgcmVw
bz0ic291cmNld2FyZS5vcmctbWlycm9yIgorICAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmMDFl
YjkwMjdlOWViNTZhZWFlZWY2MzY2NDk4Nzc3NTZkNDc1ZDcxNGVmOGI0N2Y2MjdmNjViYzVmM2I0
OTJmIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdsaWIiCisgICAgICAg
ICAgICAgYXV0b2dlbi1zaD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSIt
LWRpc2FibGUtZHRyYWNlIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdl
PSJsaWJmZmkiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIG1vZHVsZT0iL3B1
Yi9HTk9NRS9zb3VyY2VzL2dsaWIvMi40NC9nbGliLTIuNDQuMS50YXIueHoiIHZlcnNpb249IjIu
NDQuMSIKKyAgICAgICAgICAgIHJlcG89ImZ0cC5nbm9tZS5vcmciCisgICAgICAgICAgICBoYXNo
PSJzaGEyNTY6ODgxMWRlYWNhZjhhNTAzZDBhOWI3MDE3NzdlYTA3OWNhNmE0Mjc3YmUxMGUzZDcz
MGQyMTEyNzM1ZDVlY2EwNyI+CisgICAgICA8cGF0Y2ggZmlsZT0iZ2xpYi13YXJuaW5nLWZpeC5w
YXRjaCIgc3RyaXA9IjEiLz4KKyAgICAgIDxwYXRjaCBmaWxlPSJnZGF0ZS1zdXBwcmVzcy1zdHJp
bmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5j
aD4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ2xpYi1uZXR3b3JraW5nIj4K
KyAgICA8ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnbGliIi8+CisgICAgPC9k
ZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9nbGli
LW5ldHdvcmtpbmcvMi40Mi9nbGliLW5ldHdvcmtpbmctMi40Mi4wLnRhci54eiIgdmVyc2lvbj0i
Mi40Mi4wIgorICAgICAgICAgICAgcmVwbz0iZnRwLmdub21lLm9yZyIKKyAgICAgICAgICAgIGhh
c2g9InNoYTI1NjozMDRkZDllNGMwY2VkNjkwOTQzMDBlMGI5ZTY2Y2QyZWFhZTcxNjFiOWZjMzE4
NjUzNmQxMTQ1ODY3N2Q4MjBkIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9
ImxpYnNvdXAiCisgICAgICAgICAgICAgYXV0b2dlbmFyZ3M9Ii0td2l0aG91dC1nbm9tZSAtLWRp
c2FibGUtaW50cm9zcGVjdGlvbiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFj
a2FnZT0iZ2xpYi1uZXR3b3JraW5nIi8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5j
aCBtb2R1bGU9Ii9wdWIvR05PTUUvc291cmNlcy9saWJzb3VwLzIuNDgvbGlic291cC0yLjQ4LjAu
dGFyLnh6IiB2ZXJzaW9uPSIyLjQ4LjAiCisgICAgICAgICAgICByZXBvPSJmdHAuZ25vbWUub3Jn
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmVhMzRkZDY0ZmU0NDM0MzQ0NWRhZjZkZDY5MGQw
NjkxZTlkOTczNDY4ZGU0NDg3OGRhOTczNzFjMTZkODk3ODQiLz4KKyAgPC9hdXRvdG9vbHM+CisK
KyAgPGF1dG90b29scyBpZD0iZm9udHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRzPSJubyIK
KyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVwbz0iZ2l0
aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZm9udHMuZ2l0IiBjaGVj
a291dGRpcj0id2Via2l0Z3RrLXRlc3QtZm9udHMiIHRhZz0iMC4wLjUiLz4KKyAgPC9hdXRvdG9v
bHM+CisKKyAgPGF1dG90b29scyBpZD0iZGljdHMiIHN1cHBvcnRzLW5vbi1zcmNkaXItYnVpbGRz
PSJubyIKKyAgICAgICAgICAgICBza2lwLWF1dG9nZW49InRydWUiPgorICAgIDxicmFuY2ggcmVw
bz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJtcm9iaW5zb24vd2Via2l0Z3RrLXRlc3QtZGljdHMuZ2l0
IiBjaGVja291dGRpcj0id2Via2l0Z3RrLXRlc3QtZGljdHMiIHRhZz0iMC4wLjEiLz4KKyAgPC9h
dXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZnJlZXR5cGU2IiBhdXRvZ2VuLXNoPSJjb25m
aWd1cmUiPgorICAgIDxicmFuY2ggbW9kdWxlPSJmcmVldHlwZS9mcmVldHlwZS0yLjQuMTEudGFy
LmJ6MiIgdmVyc2lvbj0iMi40LjExIgorICAgICAgICAgICAgcmVwbz0ic2F2YW5uYWguZ251Lm9y
ZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjplZjlkMGJjYjY0NjQ3ZDllNTEyNWRjNzUzNGQ3
Y2EzNzFjOTgzMTBmZWM4NzY3N2M0MTBmMzk3ZjcxZmZiZTNmIgorICAgICAgICAgICAgbWQ1c3Vt
PSJiOTM0MzU0ODg5NDI0ODZjOGQwY2EyMmU4Zjc2ODAzNCI+CisgICAgICA8cGF0Y2ggZmlsZT0i
ZnJlZXR5cGU2LTIuNC4xMS10cnVldHlwZS1mb250LWhlaWdodC1maXgucGF0Y2giIHN0cmlwPSIx
Ii8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImZv
bnRjb25maWciIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAg
ICAgIDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAg
PGJyYW5jaCBtb2R1bGU9InNvZnR3YXJlL2ZvbnRjb25maWcvcmVsZWFzZS9mb250Y29uZmlnLTIu
MTEuMS50YXIuZ3oiIHZlcnNpb249IjIuMTEuMSIKKyAgICAgICAgICAgIHJlcG89ImZyZWVkZXNr
dG9wLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpiNmIwNjZjN2RjZTNmNDM2ZmRjMGRm
YmFlOWQzNjEyMmIzODA5NGY0ZjUzYmQ4ZGZmZDQ1ZTE5NWIwNTQwZDhkIgorICAgICAgICAgICAg
bWQ1c3VtPSJlNzVlMzAzYjRmNzc1NmMyYjE2MjAzYTU3YWM4N2ViYSI+CisgICAgPC9icmFuY2g+
CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImhhcmZidXp6IiBhdXRvZ2VuLXNo
PSJjb25maWd1cmUiCisgICAgICAgIGF1dG9nZW5hcmdzPSItLXdpdGgtY2Fpcm89bm8gLS13aXRo
LWdsaWI9bm8gLS13aXRoLWZyZWV0eXBlPXllcyI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAg
IDxkZXAgcGFja2FnZT0iZnJlZXR5cGU2Ii8+CisgICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJy
YW5jaCBtb2R1bGU9InNvZnR3YXJlL2hhcmZidXp6L3JlbGVhc2UvaGFyZmJ1enotMS4zLjMudGFy
LmJ6MiIKKyAgICAgICAgICAgIHZlcnNpb249IjEuMy4zIgorICAgICAgICAgICAgY2hlY2tvdXRk
aXI9ImhhcmZidXp6LTEuMy4zIgorICAgICAgICAgICAgcmVwbz0iZnJlZWRlc2t0b3Aub3JnIgor
ICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjI2MjA5ODcxMTVhNDEyMmI0NzMyMTYxMGRjY2JjYzE4
ZjdmMTIxMTE1ZmQ3Yjg4ZGM4YTY5NWM4YjY2Y2IzYzkiCisgICAgICAgICAgICBtZDVzdW09Ijk3
YWUxNWE3MmE5M2YxZjI3MzI0YTJiOGQ5YmQzYjFkIj4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRv
dG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0icGl4bWFuIgorICAgICAgICAgICAgIGF1dG9nZW4t
c2g9ImNvbmZpZ3VyZSIKKyAgICAgICAgICAgICBhdXRvZ2VuYXJncz0iLS1lbmFibGUtZ3RrPW5v
Ij4KKyAgICA8YnJhbmNoIG1vZHVsZT0icmVsZWFzZXMvcGl4bWFuLTAuMzIuNi50YXIuZ3oiIHZl
cnNpb249IjAuMzIuNiIKKyAgICAgICAgICAgIHJlcG89ImNhaXJvZ3JhcGhpY3Mub3JnIgorICAg
ICAgICAgICAgaGFzaD0ic2hhMjU2OjNkZmVkMTNiODA2MGVhZGFiZjBhNDk0NWM3MDQ1Yjc3OTNj
YzdlM2U5MTBlNzQ4YThiYjBmMGRjM2U3OTQ5MDQiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1
dG90b29scyBpZD0iY2Fpcm8iIGF1dG9nZW5hcmdzPSItLWVuYWJsZS1lZ2w9eWVzIC0tZW5hYmxl
LWdsZXN2MiI+CisgICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIv
PgorICAgICAgPGRlcCBwYWNrYWdlPSJmb250Y29uZmlnIi8+CisgICAgICA8ZGVwIHBhY2thZ2U9
InBpeG1hbiIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9kdWxlPSJyZWxl
YXNlcy9jYWlyby0xLjE0LjgudGFyLnh6IiB2ZXJzaW9uPSIxLjE0LjgiCisgICAgICAgICAgICBy
ZXBvPSJjYWlyb2dyYXBoaWNzLm9yZyIKKyAgICAgICAgICAgIGhhc2g9InNoYTE6YzZmN2I5OTk4
NmY5M2M5ZGY3ODY1M2MzZTZhM2I1MDQzZjY1MTQ1ZSI+CisgICAgICA8cGF0Y2ggZmlsZT0iY2Fp
cm8tZWdsLWRldmljZS1jcmVhdGUtZm9yLWVnbC1zdXJmYWNlLnBhdGNoIiBzdHJpcD0iMSIvPgor
ICAgIDwvYnJhbmNoPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJ4a2Jjb21t
b24iPgorICAgIDxicmFuY2ggbW9kdWxlPSJkb3dubG9hZC9saWJ4a2Jjb21tb24tMC41LjAudGFy
Lnh6IiB2ZXJzaW9uPSIwLjUuMCIKKyAgICAgICAgICAgIHJlcG89InhrYmNvbW1vbi5vcmciCisg
ICAgICAgICAgICBoYXNoPSJzaGExOjcxMjc5OTNiZmI2OWUxM2NkZmYyNWZiOGIzYzhmMjZjZTZi
ZTViZmEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0id2F5bGFuZCIgYXV0
b2dlbmFyZ3M9Ii0tZGlzYWJsZS1kb2N1bWVudGF0aW9uIj4KKyAgICA8YnJhbmNoIG1vZHVsZT0i
cmVsZWFzZXMvd2F5bGFuZC0xLjkuMC50YXIueHoiIHZlcnNpb249IjEuOS4wIgorICAgICAgICAg
ICAgcmVwbz0id2F5bGFuZC5mcmVlZGVza3RvcC5vcmciCisgICAgICAgICAgICBoYXNoPSJzaGEy
NTY6OWM4NzcwNzIwYWEwMDM0NDc5NzM1ZjU4YTRkYzRjYTliMTcyZWNmZWRlMjhmNTEzNDMxMmUx
MzViNzMwMWVmYSIvPgorICA8L2F1dG90b29scz4KKworICA8YXV0b3Rvb2xzIGlkPSJvcmMiIGF1
dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyIgYXV0b2dlbi1zaD0iY29uZmlndXJlIj4KKyAg
ICA8YnJhbmNoIG1vZHVsZT0ib3JjL29yYy0wLjQuMTcudGFyLmd6IiB2ZXJzaW9uPSIwLjQuMTci
CisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
NGZjN2NjYTQ4YzU5ZmZmMjNhZmVlNzhmYjY0MmNkYmRlMDAxZjU2NDAxYzhmNDdiOTVhMTY1Nzhk
MWQ1ZDdlOCIKKyAgICAgICAgICAgIG1kNXN1bT0iYWYxYmYzZGFiOWU2OWYzYzM2ZjM4OTI4NWUy
YTEyYTEiLz4KKyAgPC9hdXRvdG9vbHM+CisKKyAgPGF1dG90b29scyBpZD0iZ3N0cmVhbWVyIiBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZ3RrLWRvYyI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0ib3JjIi8+CisgICAgPC9kZXBl
bmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdHJlYW1lci9nc3RyZWFtZXItJHt2ZXJz
aW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVy
IgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjVhMzcyMmZiOTMwMmRkOTc3YzE3Y2VkNDI0MDI5
M2RjNzc3Y2I3MTZkYzk4YzhjY2E2M2Q3NWMyN2U1ZTMxMDciCisgICAgICAgICAgICBtZDVzdW09
IjcxMWFkYTc5YjYzZTQ3YWM5NmFkYjRlNTQ0NGRjOTA4Ij4KKyAgICAgIDxwYXRjaCBmaWxlPSJn
c3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRo
ZS0ucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisg
IDxhdXRvdG9vbHMgaWQ9ImdzdC1wbHVnaW5zLWJhc2UiCisgICAgICAgICAgICAgYXV0b2dlbi1z
aD0iY29uZmlndXJlIgorICAgICAgICAgICAgIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBs
ZXMgLS1kaXNhYmxlLWd0ay1kb2MiPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImdzdHJlYW1lciIvPgorICAgIDwvZGVwZW5kZW5jaWVzPgorICAgIDxicmFuY2ggbW9k
dWxlPSJnc3QtcGx1Z2lucy1iYXNlL2dzdC1wbHVnaW5zLWJhc2UtJHt2ZXJzaW9ufS50YXIueHoi
IHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0iZ3N0cmVhbWVyIgorICAgICAgICAg
ICAgaGFzaD0ic2hhMjU2OjE1YTlkZTk4NWNkMjY1YzM0NGUzNTlmNWIxOTM0N2RmNDAyMWI3NjEx
ZWQyYzJkOTE5MTdjYjkwMGYyZmFkNmYiCisgICAgICAgICAgICBtZDVzdW09IjU0MjFlZGZlYjc0
NzlkNWY1Nzc2ZTkxN2JhMzBlMjRlIi8+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMg
aWQ9ImdzdC1wbHVnaW5zLWdvb2QiIGF1dG9nZW4tc2g9ImNvbmZpZ3VyZSIgYXV0b2dlbmFyZ3M9
Ii0tZGlzYWJsZS1leGFtcGxlcyAtLWRpc2FibGUtc291cCAtLWRpc2FibGUtZ3RrLWRvYyI+Cisg
ICAgPGRlcGVuZGVuY2llcz4KKyAgICAgIDxkZXAgcGFja2FnZT0iZ3N0LXBsdWdpbnMtYmFzZSIv
PgorICAgIDwvZGVwZW5kZW5jaWVzPgorCisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1wbHVnaW5z
LWdvb2QvZ3N0LXBsdWdpbnMtZ29vZC0ke3ZlcnNpb259LnRhci54eiIgdmVyc2lvbj0iMS44LjEi
CisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAgICAgICAgICBoYXNoPSJzaGEyNTY6
MjEwM2UxNzkyMWQ2Nzg5NGU4MmVhZmRkNjRmYjliMDY1MTg1OTk5NTJmZDkzZTYyNWJmYmM4M2Zm
ZWFkMDk3MiIKKyAgICAgICAgICAgIG1kNXN1bT0iM2VhYmU3Mjc3NjgxYjliZWY4YTY0YzMxMmRl
MDNkNDciPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0
LWRlY29kZS10aW1lLnBhdGNoIiBzdHJpcD0iMSIvPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1w
bHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29m
LWZvci1mci5wYXRjaCIgc3RyaXA9IjEiLz4KKyAgICA8L2JyYW5jaD4KKyAgPC9hdXRvdG9vbHM+
CisKKyAgPGF1dG90b29scyBpZD0iZ3N0LXBsdWdpbnMtYmFkIiBhdXRvZ2VuLXNoPSJjb25maWd1
cmUiIGF1dG9nZW5hcmdzPSItLWRpc2FibGUtZXhhbXBsZXMgLS1kaXNhYmxlLWd0ay1kb2MgLS1k
aXNhYmxlLWludHJvc3BlY3Rpb24iPgorICAgIDxkZXBlbmRlbmNpZXM+CisgICAgICA8ZGVwIHBh
Y2thZ2U9ImdzdC1wbHVnaW5zLWJhc2UiLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJh
bmNoIG1vZHVsZT0iZ3N0LXBsdWdpbnMtYmFkL2dzdC1wbHVnaW5zLWJhZC0ke3ZlcnNpb259LnRh
ci54eiIgdmVyc2lvbj0iMS44LjEiCisgICAgICAgICAgICByZXBvPSJnc3RyZWFtZXIiCisgICAg
ICAgICAgICBoYXNoPSJzaGEyNTY6MGJiZDU4ZjM2MzczNGZjMGM0YTYyMGIyZDZmYjAxZDQyN2Zk
YWZkYmRhN2I5MGI0ZTE1ZDAzYjc1MWNhNDBmNSIKKyAgICAgICAgICAgIG1kNXN1bT0iZTUwOGRh
MmE4YTVjM2QxMjI2NGZlMzQxNWJlMmY0NTEiPgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVn
aW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIiBzdHJpcD0iMSIv
PgorICAgICAgPHBhdGNoIGZpbGU9ImdzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0
ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2giIHN0cmlwPSIxIi8+
CisgICAgPC9icmFuY2g+CisgIDwvYXV0b3Rvb2xzPgorCisgIDxhdXRvdG9vbHMgaWQ9ImdzdC1s
aWJhdiIgYXV0b2dlbi1zaD0iY29uZmlndXJlIiBhdXRvZ2VuYXJncz0iLS13aXRoLWxpYmF2LWV4
dHJhLWNvbmZpZ3VyZT0nLS1kaXNhYmxlLXlhc20nIC0tZGlzYWJsZS1ndGstZG9jIj4KKyAgICA8
ZGVwZW5kZW5jaWVzPgorICAgICAgPGRlcCBwYWNrYWdlPSJnc3QtcGx1Z2lucy1iYXNlIi8+Cisg
ICAgPC9kZXBlbmRlbmNpZXM+CisgICAgPGJyYW5jaCBtb2R1bGU9ImdzdC1saWJhdi9nc3QtbGli
YXYtJHt2ZXJzaW9ufS50YXIueHoiIHZlcnNpb249IjEuOC4xIgorICAgICAgICAgICAgcmVwbz0i
Z3N0cmVhbWVyIgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OjQ0YTQ5MTA4YzM1MzFiNWFjNGYz
NDZhMjI0N2NkN2ZiYWZiMGU4YWIzOTQzOTRjYjZkNzVhNzAzMDBiMzg5MzMiCisgICAgICAgICAg
ICBtZDVzdW09Ijg1ZjFhMDQ3NjA2Y2E5ZTA4NDkzZDdiNmI0MmRmNDYyIi8+CisgIDwvYXV0b3Rv
b2xzPgorCisgIDxjbWFrZSBpZD0id3BlIj4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1Yi5jb20i
IG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLmdpdCIKKyAgICAgICAg
ICAgIHRhZz0iNWUyYTI5ZDJjY2M2MzdmNzEyMmJhNzJjMWQ2MmVmNjY5YjQyZjA1YyIgLz4KKyAg
PC9jbWFrZT4KKworICA8Y21ha2UgaWQ9IndwZS1tZXNhIj4KKyAgICA8ZGVwZW5kZW5jaWVzPgor
ICAgICAgPGRlcCBwYWNrYWdlPSJ3cGUiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiIC8+
CisgICAgICA8ZGVwIHBhY2thZ2U9IndheWxhbmQiIC8+CisgICAgICA8ZGVwIHBhY2thZ2U9Inhr
YmNvbW1vbiIgLz4KKyAgICA8L2RlcGVuZGVuY2llcz4KKyAgICA8YnJhbmNoIHJlcG89ImdpdGh1
Yi5jb20iIG1vZHVsZT0iV2ViUGxhdGZvcm1Gb3JFbWJlZGRlZC9XUEVCYWNrZW5kLW1lc2EuZ2l0
IgorICAgICAgICAgICAgdGFnPSI5OTQ1NzUzZjkzMzdmZDY3YWYwOTgyMThiNzgxOTMzN2FiYTIx
MTQxIiAvPgorICA8L2NtYWtlPgorPC9tb2R1bGVzZXQ+CmRpZmYgLS1naXQgYS9Ub29scy93cGUv
amhidWlsZHJjIGIvVG9vbHMvd3BlL2poYnVpbGRyYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMC4uZTJmYTg4ZDcyYTkKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUv
amhidWlsZHJjCkBAIC0wLDAgKzEsMjUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIyBDb3B5
cmlnaHQgKEMpIDIwMTQgSWdhbGlhIFMuTC4KKyMKKyMgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorIyBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorIyB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCisjCisjIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZl
biB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorIyBMZXNzZXIgR2VuZXJhbCBQ
dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIworIyBZb3Ugc2hvdWxkIGhhdmUgcmVj
ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisjIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdh
cmUKKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwg
Qm9zdG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCisKK2ltcG9ydCBzeXMKK2ltcG9ydCBvcworCitz
eXMucGF0aC5pbnNlcnQoMCwgb3MucGF0aC5qb2luKG9zLnBhdGguZGlybmFtZShfX2ZpbGVfXyks
ICIuLi9qaGJ1aWxkIikgKQoraW1wb3J0IGpoYnVpbGRyY19jb21tb24KK2poYnVpbGRyY19jb21t
b24uaW5pdChnbG9iYWxzKCksICJ3cGUiKQorIyBFbmFibGUgYnVpbGRkaXIgIT0gc3JjZGlyIGJ1
aWxkcy4KK2J1aWxkcm9vdCA9IG9zLnBhdGguam9pbihvcy5wYXRoLmRpcm5hbWUoY2hlY2tvdXRy
b290KSwgIkJ1aWxkIikKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2NhaXJvLWVnbC1k
ZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2Nh
aXJvLWVnbC1kZXZpY2UtY3JlYXRlLWZvci1lZ2wtc3VyZmFjZS5wYXRjaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uZDQ2ZGY0NWI2ZjMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Ub29scy93cGUvcGF0Y2hlcy9jYWlyby1lZ2wtZGV2aWNlLWNyZWF0ZS1mb3ItZWdsLXN1cmZh
Y2UucGF0Y2gKQEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gYTRlMGRhZjE4YmY4MjUyNDYzZjY2ZDc1
ZWVmNDk5Y2ZmZmEzMjU2NSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFphbiBEb2Jl
cnNlayA8emRvYmVyc2VrQGlnYWxpYS5jb20+CitEYXRlOiBNb24sIDE3IE5vdiAyMDE0IDAxOjIz
OjE1IC0wODAwCitTdWJqZWN0OiBbUEFUQ0hdIEFkZCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZV9m
b3JfZWdsX3N1cmZhY2UoKS4KKworLS0tCisgc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMgfCA2NiAr
KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCisgc3JjL2Nh
aXJvLWdsLmggICAgICAgICAgfCAgMyArKysKKyAyIGZpbGVzIGNoYW5nZWQsIDYwIGluc2VydGlv
bnMoKyksIDkgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZWdsLWNvbnRl
eHQuYyBiL3NyYy9jYWlyby1lZ2wtY29udGV4dC5jCitpbmRleCBiZjcwNGM2Li5iZTJiY2Y5IDEw
MDY0NAorLS0tIGEvc3JjL2NhaXJvLWVnbC1jb250ZXh0LmMKKysrKyBiL3NyYy9jYWlyby1lZ2wt
Y29udGV4dC5jCitAQCAtNDgsNyArNDgsOCBAQCB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fZWdsX2Nv
bnRleHQgeworICAgICBFR0xEaXNwbGF5IGRpc3BsYXk7CisgICAgIEVHTENvbnRleHQgY29udGV4
dDsKKyAKKy0gICAgRUdMU3VyZmFjZSBkdW1teV9zdXJmYWNlOworKyAgICBFR0xTdXJmYWNlIHN1
cmZhY2U7CisrICAgIGNhaXJvX2Jvb2xfdCBpc19kdW1teV9zdXJmYWNlOworIAorICAgICBFR0xD
b250ZXh0IHByZXZpb3VzX2NvbnRleHQ7CisgICAgIEVHTFN1cmZhY2UgcHJldmlvdXNfc3VyZmFj
ZTsKK0BAIC03NCw3ICs3NSw3IEBAIF9lZ2xfZ2V0X2N1cnJlbnRfc3VyZmFjZSAoY2Fpcm9fZWds
X2NvbnRleHRfdCAqY3R4KQorIHsKKyAgICAgaWYgKGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCA9
PSBOVUxMIHx8CisgICAgICAgICBfY2Fpcm9fZ2xfc3VyZmFjZV9pc190ZXh0dXJlIChjdHgtPmJh
c2UuY3VycmVudF90YXJnZXQpKSB7CistCXJldHVybiAgY3R4LT5kdW1teV9zdXJmYWNlOworKwly
ZXR1cm4gIGN0eC0+c3VyZmFjZTsKKyAgICAgfQorIAorICAgICByZXR1cm4gKChjYWlyb19lZ2xf
c3VyZmFjZV90ICopIGN0eC0+YmFzZS5jdXJyZW50X3RhcmdldCktPmVnbDsKK0BAIC0xNTEsOCAr
MTUyLDggQEAgX2VnbF9kZXN0cm95ICh2b2lkICphYnN0cmFjdF9jdHgpCisgCisgICAgIGVnbE1h
a2VDdXJyZW50IChjdHgtPmRpc3BsYXksCisgCQkgICAgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19T
VVJGQUNFLCBFR0xfTk9fQ09OVEVYVCk7CistICAgIGlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0g
RUdMX05PX1NVUkZBQ0UpCistICAgICAgICBlZ2xEZXN0cm95U3VyZmFjZSAoY3R4LT5kaXNwbGF5
LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKyAgICBpZiAoY3R4LT5pc19kdW1teV9zdXJmYWNlICYm
IGN0eC0+c3VyZmFjZSAhPSBFR0xfTk9fU1VSRkFDRSkKKysgICAgICAgIGVnbERlc3Ryb3lTdXJm
YWNlIChjdHgtPmRpc3BsYXksIGN0eC0+c3VyZmFjZSk7CisgfQorIAorIHN0YXRpYyBjYWlyb19i
b29sX3QKK0BAIC0yMTgsMTMgKzIxOSwxNCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdM
RGlzcGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAllZ2xRdWVyeUNvbnRleHQgKGRweSwgZWds
LCBFR0xfQ09ORklHX0lELCAmY29uZmlnX2F0dHJpYnNbMV0pOworIAllZ2xDaG9vc2VDb25maWcg
KGRweSwgY29uZmlnX2F0dHJpYnMsICZjb25maWcsIDEsICZudW1Db25maWdzKTsKKyAKKy0JY3R4
LT5kdW1teV9zdXJmYWNlID0gZWdsQ3JlYXRlUGJ1ZmZlclN1cmZhY2UgKGRweSwgY29uZmlnLCBh
dHRyaWJzKTsKKy0JaWYgKGN0eC0+ZHVtbXlfc3VyZmFjZSA9PSBOVUxMKSB7CisrCWN0eC0+aXNf
ZHVtbXlfc3VyZmFjZSA9IFRSVUU7CisrCWN0eC0+c3VyZmFjZSA9IGVnbENyZWF0ZVBidWZmZXJT
dXJmYWNlIChkcHksIGNvbmZpZywgYXR0cmlicyk7CisrCWlmIChjdHgtPnN1cmZhY2UgPT0gTlVM
TCkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9j
cmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworIAl9CisgCistCWlmICgh
ZWdsTWFrZUN1cnJlbnQgKGRweSwgY3R4LT5kdW1teV9zdXJmYWNlLCBjdHgtPmR1bW15X3N1cmZh
Y2UsIGVnbCkpIHsKKysJaWYgKCFlZ2xNYWtlQ3VycmVudCAoZHB5LCBjdHgtPnN1cmZhY2UsIGN0
eC0+c3VyZmFjZSwgZWdsKSkgeworIAkgICAgZnJlZSAoY3R4KTsKKyAJICAgIHJldHVybiBfY2Fp
cm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOwor
IAl9CitAQCAtMjM4LDggKzI0MCw1NCBAQCBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlz
cGxheSBkcHksIEVHTENvbnRleHQgZWdsKQorIAorICAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29u
dGV4dF9pbml0ICgmY3R4LT5iYXNlKTsKKyAgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7Cist
CWlmIChjdHgtPmR1bW15X3N1cmZhY2UgIT0gRUdMX05PX1NVUkZBQ0UpCistCSAgICBlZ2xEZXN0
cm95U3VyZmFjZSAoZHB5LCBjdHgtPmR1bW15X3N1cmZhY2UpOworKwlpZiAoY3R4LT5zdXJmYWNl
ICE9IEVHTF9OT19TVVJGQUNFKQorKwkgICAgZWdsRGVzdHJveVN1cmZhY2UgKGRweSwgY3R4LT5z
dXJmYWNlKTsKKysJZnJlZSAoY3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0
ZV9pbl9lcnJvciAoc3RhdHVzKTsKKysgICAgfQorKworKyAgICBlZ2xNYWtlQ3VycmVudCAoZHB5
LCBFR0xfTk9fU1VSRkFDRSwgRUdMX05PX1NVUkZBQ0UsIEVHTF9OT19DT05URVhUKTsKKysKKysg
ICAgcmV0dXJuICZjdHgtPmJhc2UuYmFzZTsKKyt9CisrCisrY2Fpcm9fZGV2aWNlX3QgKgorK2Nh
aXJvX2VnbF9kZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVH
TENvbnRleHQgZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpCisreworKyAgICBjYWlyb19lZ2xfY29u
dGV4dF90ICpjdHg7CisrICAgIGNhaXJvX3N0YXR1c190IHN0YXR1czsKKysKKysgICAgY3R4ID0g
Y2FsbG9jICgxLCBzaXplb2YgKGNhaXJvX2VnbF9jb250ZXh0X3QpKTsKKysgICAgaWYgKHVubGlr
ZWx5IChjdHggPT0gTlVMTCkpCisrCXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5f
ZXJyb3IgKENBSVJPX1NUQVRVU19OT19NRU1PUlkpOworKworKyAgICBjdHgtPmRpc3BsYXkgPSBk
cHk7CisrICAgIGN0eC0+Y29udGV4dCA9IGVnbDsKKysgICAgY3R4LT5zdXJmYWNlID0gc3VyZmFj
ZTsKKysKKysgICAgY3R4LT5iYXNlLmFjcXVpcmUgPSBfZWdsX2FjcXVpcmU7CisrICAgIGN0eC0+
YmFzZS5yZWxlYXNlID0gX2VnbF9yZWxlYXNlOworKyAgICBjdHgtPmJhc2UubWFrZV9jdXJyZW50
ID0gX2VnbF9tYWtlX2N1cnJlbnQ7CisrICAgIGN0eC0+YmFzZS5zd2FwX2J1ZmZlcnMgPSBfZWds
X3N3YXBfYnVmZmVyczsKKysgICAgY3R4LT5iYXNlLmRlc3Ryb3kgPSBfZWdsX2Rlc3Ryb3k7Cisr
CisrICAgIC8qIFdlIGFyZSBhYm91dCB0aGUgY2hhbmdlIHRoZSBjdXJyZW50IHN0YXRlIG9mIEVH
TCwgc28gd2Ugc2hvdWxkCisrICAgICAqIHF1ZXJ5IHRoZSBwcmUtZXhpc3Rpbmcgc3VyZmFjZSBu
b3cgaW5zdGVhZCBvZiBsYXRlci4gKi8KKysgICAgX2VnbF9xdWVyeV9jdXJyZW50X3N0YXRlIChj
dHgpOworKworKwlpZiAoIWVnbE1ha2VDdXJyZW50IChkcHksIHN1cmZhY2UsIHN1cmZhY2UsIGVn
bCkpIHsKKysJICAgIGZyZWUgKGN0eCk7CisrCSAgICByZXR1cm4gX2NhaXJvX2dsX2NvbnRleHRf
Y3JlYXRlX2luX2Vycm9yIChDQUlST19TVEFUVVNfTk9fTUVNT1JZKTsKKysJfQorKworKyAgICBz
dGF0dXMgPSBfY2Fpcm9fZ2xfZGlzcGF0Y2hfaW5pdCAoJmN0eC0+YmFzZS5kaXNwYXRjaCwgZWds
R2V0UHJvY0FkZHJlc3MpOworKyAgICBpZiAodW5saWtlbHkgKHN0YXR1cykpIHsKKysJZnJlZSAo
Y3R4KTsKKysJcmV0dXJuIF9jYWlyb19nbF9jb250ZXh0X2NyZWF0ZV9pbl9lcnJvciAoc3RhdHVz
KTsKKysgICAgfQorKworKyAgICBzdGF0dXMgPSBfY2Fpcm9fZ2xfY29udGV4dF9pbml0ICgmY3R4
LT5iYXNlKTsKKysgICAgaWYgKHVubGlrZWx5IChzdGF0dXMpKSB7CisgCWZyZWUgKGN0eCk7Cisg
CXJldHVybiBfY2Fpcm9fZ2xfY29udGV4dF9jcmVhdGVfaW5fZXJyb3IgKHN0YXR1cyk7CisgICAg
IH0KK2RpZmYgLS1naXQgYS9zcmMvY2Fpcm8tZ2wuaCBiL3NyYy9jYWlyby1nbC5oCitpbmRleCA5
ZmQ3NjA4Li5hOTRmNTgxIDEwMDY0NAorLS0tIGEvc3JjL2NhaXJvLWdsLmgKKysrKyBiL3NyYy9j
YWlyby1nbC5oCitAQCAtMTMyLDYgKzEzMiw5IEBAIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zv
cl9kYyAoY2Fpcm9fZGV2aWNlX3QJCSpkZXZpY2UsCisgY2Fpcm9fcHVibGljIGNhaXJvX2Rldmlj
ZV90ICoKKyBjYWlyb19lZ2xfZGV2aWNlX2NyZWF0ZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRl
eHQgZWdsKTsKKyAKKytjYWlyb19wdWJsaWMgY2Fpcm9fZGV2aWNlX3QgKgorK2NhaXJvX2VnbF9k
ZXZpY2VfY3JlYXRlX2Zvcl9lZ2xfc3VyZmFjZSAoRUdMRGlzcGxheSBkcHksIEVHTENvbnRleHQg
ZWdsLCBFR0xTdXJmYWNlIHN1cmZhY2UpOworKworIGNhaXJvX3B1YmxpYyBjYWlyb19zdXJmYWNl
X3QgKgorIGNhaXJvX2dsX3N1cmZhY2VfY3JlYXRlX2Zvcl9lZ2wgKGNhaXJvX2RldmljZV90CSpk
ZXZpY2UsCisgCQkJCSBFR0xTdXJmYWNlCSBlZ2wsCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0
Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVxdWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5k
LWlkZW50aWZpZXIucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9mb250Y29uZmlnLUMtMTEtcmVx
dWlyZXMtYS1zcGFjZS1iZXR3ZWVuLWxpdGVyYWwtYW5kLWlkZW50aWZpZXIucGF0Y2gKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0ZTBhNTQxZGJjCi0tLSAvZGV2L251
bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZm9udGNvbmZpZy1DLTExLXJlcXVpcmVzLWEtc3Bh
Y2UtYmV0d2Vlbi1saXRlcmFsLWFuZC1pZGVudGlmaWVyLnBhdGNoCkBAIC0wLDAgKzEsMzAgQEAK
K0Zyb20gNzA2OWQ3MTdlOTgyYWRjZjhlMWQzMDBjYmQxMGVlYzYzMjJhNjVjOSBNb24gU2VwIDE3
IDAwOjAwOjAwIDIwMDEKK0Zyb206IEFraXJhIFRBR09IIDxha2lyYUB0YWdvaC5vcmc+CitEYXRl
OiBTdW4sIDIyIEFwciAyMDEyIDIxOjQwOjQ0ICswOTAwCitTdWJqZWN0OiBbUEFUQ0hdIEMrKzEx
IHJlcXVpcmVzIGEgc3BhY2UgYmV0d2VlbiBsaXRlcmFsIGFuZCBpZGVudGlmaWVyCisKK1JlcG9y
dGVkIGJ5IEJ1Z2FuaW5pCistLS0KKyBmb250Y29uZmlnL2ZvbnRjb25maWcuaCB8IDYgKysrLS0t
CisgMSBmaWxlIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKKworZGlm
ZiAtLWdpdCBhL2ZvbnRjb25maWcvZm9udGNvbmZpZy5oIGIvZm9udGNvbmZpZy9mb250Y29uZmln
LmgKK2luZGV4IDBlMmNhNTAuLmIyN2NjYjUgMTAwNjQ0CistLS0gYS9mb250Y29uZmlnL2ZvbnRj
b25maWcuaAorKysrIGIvZm9udGNvbmZpZy9mb250Y29uZmlnLmgKK0BAIC0xMTIsOSArMTEyLDkg
QEAgdHlwZWRlZiBpbnQJCUZjQm9vbDsKKyAjZGVmaW5lIEZDX0RFQ09SQVRJVkUJICAgICJkZWNv
cmF0aXZlIgkvKiBCb29sIC0gdHJ1ZSBpZiBzdHlsZSBpcyBhIGRlY29yYXRpdmUgdmFyaWFudCAq
LworICNkZWZpbmUgRkNfTENEX0ZJTFRFUgkgICAgImxjZGZpbHRlciIJCS8qIEludCAqLworIAor
LSNkZWZpbmUgRkNfQ0FDSEVfU1VGRklYCQkgICAgIi5jYWNoZS0iRkNfQ0FDSEVfVkVSU0lPTgor
LSNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNoZS0iRkNfQ0FDSEVfVkVS
U0lPTgorLSNkZWZpbmUgRkNfVVNFUl9DQUNIRV9GSUxFCSAgICAiLmZvbnRzLmNhY2hlLSJGQ19D
QUNIRV9WRVJTSU9OCisrI2RlZmluZSBGQ19DQUNIRV9TVUZGSVgJCSAgICAiLmNhY2hlLSIgRkNf
Q0FDSEVfVkVSU0lPTgorKyNkZWZpbmUgRkNfRElSX0NBQ0hFX0ZJTEUJICAgICJmb250cy5jYWNo
ZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKysjZGVmaW5lIEZDX1VTRVJfQ0FDSEVfRklMRQkgICAgIi5m
b250cy5jYWNoZS0iIEZDX0NBQ0hFX1ZFUlNJT04KKyAKKyAvKiBBZGp1c3Qgb3V0bGluZSByYXN0
ZXJpemVyICovCisgI2RlZmluZSBGQ19DSEFSX1dJRFRICSAgICAiY2hhcndpZHRoIgkvKiBJbnQg
Ki8KKy0tIAorMS44LjMuMgorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hlcy9mcmVldHlw
ZTYtMi40LjExLXRydWV0eXBlLWZvbnQtaGVpZ2h0LWZpeC5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRj
aGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9udC1oZWlnaHQtZml4LnBhdGNoCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi4wZmZlNzZiNGVmMAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2ZyZWV0eXBlNi0yLjQuMTEtdHJ1ZXR5cGUtZm9u
dC1oZWlnaHQtZml4LnBhdGNoCkBAIC0wLDAgKzEsMzkgQEAKK0Zyb20gZTA0NjkzNzJiZTM4NzBh
NWFkNjBiMmM0NTg2ZTljMjgxMzU3YmQyOCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206
IFdlcm5lciBMZW1iZXJnIDx3bEBnbnUub3JnPgorRGF0ZTogVHVlLCAyMiBKYW4gMjAxMyAxMDow
NzowNyArMDAwMAorU3ViamVjdDogW3RydWV0eXBlXSBGaXggZm9udCBoZWlnaHQuCisKKyogc3Jj
L3RydWV0eXBlL3R0b2Jqcy5jICh0dF9zaXplX3Jlc2V0KTogVGhlIFdpbmRvd3MgcmVuZGVyaW5n
CitlbmdpbmUgdXNlcyByb3VuZGVkIHZhbHVlcyBvZiB0aGUgYXNjZW5kZXIgYW5kIGRlc2NlbmRl
ciB0byBjb21wdXRlCit0aGUgVHJ1ZVR5cGUgZm9udCBoZWlnaHQuCistLS0KK2RpZmYgLS1naXQg
YS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMgYi9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKK2luZGV4IGM2
MWIyMTguLjU5MGI2NmMgMTAwNjQ0CistLS0gYS9zcmMvdHJ1ZXR5cGUvdHRvYmpzLmMKKysrKyBi
L3NyYy90cnVldHlwZS90dG9ianMuYworQEAgLTQsNyArNCw3IEBACisgLyogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKi8KKyAvKiAgICBPYmplY3RzIG1hbmFnZXIgKGJvZHkpLiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCistLyog
IENvcHlyaWdodCAxOTk2LTIwMTIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKi8KKysvKiAgQ29weXJpZ2h0IDE5OTYtMjAxMyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLworIC8qICBEYXZpZCBUdXJu
ZXIsIFJvYmVydCBXaWxoZWxtLCBhbmQgV2VybmVyIExlbWJlcmcuICAgICAgICAgICAgICAgICAg
ICAgICovCisgLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KKyAvKiAgVGhpcyBmaWxlIGlzIHBhcnQgb2Yg
dGhlIEZyZWVUeXBlIHByb2plY3QsIGFuZCBtYXkgb25seSBiZSB1c2VkLCAgICAgICAqLworQEAg
LTExNzcsMTEgKzExNzcsMTIgQEAKKyAgICAgICAgIEZUX1BJWF9ST1VORCggRlRfTXVsRml4KCBm
YWNlLT5yb290LmFzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNz
LT5kZXNjZW5kZXIgPQorICAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJv
b3QuZGVzY2VuZGVyLCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKy0gICAgICBtZXRyaWNzLT5oZWln
aHQgPQorLSAgICAgICAgRlRfUElYX1JPVU5EKCBGVF9NdWxGaXgoIGZhY2UtPnJvb3QuaGVpZ2h0
LCBtZXRyaWNzLT55X3NjYWxlICkgKTsKKyAgICAgICBtZXRyaWNzLT5tYXhfYWR2YW5jZSA9Cisg
ICAgICAgICBGVF9QSVhfUk9VTkQoIEZUX011bEZpeCggZmFjZS0+cm9vdC5tYXhfYWR2YW5jZV93
aWR0aCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXRyaWNzLT54X3NjYWxl
ICkgKTsKKysKKysgICAgICAvKiB0aGUgaGVpZ2h0IGlzIGRlcml2ZWQgZnJvbSByb3VuZGVkIHZh
bHVlcyAqLworKyAgICAgIG1ldHJpY3MtPmhlaWdodCA9IG1ldHJpY3MtPmFzY2VuZGVyIC0gbWV0
cmljcy0+ZGVzY2VuZGVyOworICAgICB9CisgCisgICAgIC8qIGNvbXB1dGUgbmV3IHRyYW5zZm9y
bWF0aW9uICovCistLQorY2dpdCB2MC45LjAuMgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNo
ZXMvZ2RhdGUtc3VwcHJlc3Mtc3RyaW5nLWZvcm1hdC1saXRlcmFsLXdhcm5pbmcucGF0Y2ggYi9U
b29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVzcy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2Fy
bmluZy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uOTBjYjk1
MWExOWMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nZGF0ZS1zdXBwcmVz
cy1zdHJpbmctZm9ybWF0LWxpdGVyYWwtd2FybmluZy5wYXRjaApAQCAtMCwwICsxLDI5IEBACitG
cm9tIDNhN2VmZDU5OGQzOTM2NmMyYzlkZTBkZWYyZmRmYjM1ZTVlOWYyYTEgTW9uIFNlcCAxNyAw
MDowMDowMCAyMDAxCitGcm9tOiBjb3lwdSA8Y295cHVAc2RmLm9yZz4KK0RhdGU6IE1vbiwgOCBG
ZWIgMjAxNiAwMDowNjowNiArMDIwMAorU3ViamVjdDogW1BBVENIIDEvMV0gZ2RhdGU6IFN1cHBy
ZXNzIHN0cmluZyBmb3JtYXQgbGl0ZXJhbCB3YXJuaW5nCisKK05ld2VyIHZlcnNpb25zIG9mIEdD
QyBlbWl0IGFuIGVycm9yIGhlcmUsIGJ1dCB3ZSBrbm93IGl0J3Mgc2FmZS4KK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnLzc2MTU1MAorLS0tCisgZ2xpYi9nZGF0ZS5jIHwgMyArKysKKyAxIGZp
bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nbGliL2dkYXRlLmMg
Yi9nbGliL2dkYXRlLmMKK2luZGV4IDRhZWNlMDIuLmNkYzczNWMgMTAwNjQ0CistLS0gYS9nbGli
L2dkYXRlLmMKKysrKyBiL2dsaWIvZ2RhdGUuYworQEAgLTI0OTQsNyArMjQ5NCwxMCBAQCBnX2Rh
dGVfc3RyZnRpbWUgKGdjaGFyICAgICAgICpzLAorICAgICAgICAqIHJlY29nbml6ZSB3aGV0aGVy
IHN0cmZ0aW1lIGFjdHVhbGx5IGZhaWxlZCBvciBqdXN0IHJldHVybmVkICIiLgorICAgICAgICAq
LworICAgICAgIHRtcGJ1ZlswXSA9ICdcMSc7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3Rp
YyBwdXNoCisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Zvcm1hdC1u
b25saXRlcmFsIgorICAgICAgIHRtcGxlbiA9IHN0cmZ0aW1lICh0bXBidWYsIHRtcGJ1ZnNpemUs
IGxvY2FsZV9mb3JtYXQsICZ0bSk7CisrICAgICAgI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBwb3AK
KyAKKyAgICAgICBpZiAodG1wbGVuID09IDAgJiYgdG1wYnVmWzBdICE9ICdcMCcpCisgICAgICAg
ICB7CistLSAKKzIuNy4wCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2Fy
bmluZy1maXgucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nbGliLXdhcm5pbmctZml4LnBhdGNo
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi44ZmFmNGQxMWYyYwotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dsaWItd2FybmluZy1maXgucGF0Y2gK
QEAgLTAsMCArMSwzNCBAQAorRnJvbSA5ZjkwZWU1ZWVjY2Q0N2YzOWM3YTAzZGNkNzg2YjEyNWEx
OWMxOTVkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogTWljaGFlbCBDYXRhbnphcm8g
PG1jYXRhbnphcm9AZ25vbWUub3JnPgorRGF0ZTogU2F0LCAxMyBKdW4gMjAxNSAyMjo1MjozMyAt
MDUwMAorU3ViamVjdDogW1BBVENIXSBnZW5tYXJzaGFsOiBzaWxlbmNlIHJlZ2lzdGVyIHN0b3Jh
Z2UgY2xhc3Mgd2FybmluZ3MKKworVXNpbmcgdGhlIHJlZ2lzdGVyIGtleXdvcmQgdHJpZ2dlcnMg
d2FybmluZ3Mgb24gbm90ZXdvcnRoeSBjb21waWxlcnMKKyhjbGFuZyksIHNpbmNlIGl0J3MgZGVw
cmVjYXRlZCBpbiBDKysgYW5kIGF0IGRhbmdlciBvZiBiZWluZyByZW1vdmVkCitmcm9tIHRoZSBs
YW5ndWFnZS4gVGhlcmUgaXMgbm8gcmVhc29uIHRvIHVzZSBpdCBzaW5jZSBpdCBpc24ndCAxOTgw
Cithbnltb3JlLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzUwOTE4CistLS0KKyBnb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jIHwgNiArKystLS0KKyAxIGZp
bGUgY2hhbmdlZCwgMyBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0
IGEvZ29iamVjdC9nbGliLWdlbm1hcnNoYWwuYyBiL2dvYmplY3QvZ2xpYi1nZW5tYXJzaGFsLmMK
K2luZGV4IGJlNDE1MWEuLmNhNzhhNmYgMTAwNjQ0CistLS0gYS9nb2JqZWN0L2dsaWItZ2VubWFy
c2hhbC5jCisrKysgYi9nb2JqZWN0L2dsaWItZ2VubWFyc2hhbC5jCitAQCAtNDEyLDkgKzQxMiw5
IEBAIGdlbmVyYXRlX21hcnNoYWwgKGNvbnN0IGdjaGFyICpzaWduYW1lLAorICAgICAgIGdfZnBy
aW50ZiAoZm91dCwgIiVzJXMgZGF0YTIpO1xuIiwgaW5kZW50IChpbmQpLCBwYWQgKCJncG9pbnRl
ciIpKTsKKyAKKyAgICAgICAvKiBjZmlsZSBtYXJzaGFsIHZhcmlhYmxlcyAqLworLSAgICAgIGdf
ZnByaW50ZiAoZm91dCwgIiAgcmVnaXN0ZXIgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwg
c2lnbmFtZSk7CistICAgICAgZ19mcHJpbnRmIChmb3V0LCAiICByZWdpc3RlciBHQ0Nsb3N1cmUg
KmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1cmU7XG4iKTsKKy0gICAgICBnX2ZwcmludGYgKGZvdXQs
ICIgIHJlZ2lzdGVyIGdwb2ludGVyIGRhdGExLCBkYXRhMjtcbiIpOworKyAgICAgIGdfZnByaW50
ZiAoZm91dCwgIiAgR01hcnNoYWxGdW5jXyVzIGNhbGxiYWNrO1xuIiwgc2lnbmFtZSk7CisrICAg
ICAgZ19mcHJpbnRmIChmb3V0LCAiICBHQ0Nsb3N1cmUgKmNjID0gKEdDQ2xvc3VyZSopIGNsb3N1
cmU7XG4iKTsKKysgICAgICBnX2ZwcmludGYgKGZvdXQsICIgIGdwb2ludGVyIGRhdGExLCBkYXRh
MjtcbiIpOworICAgICAgIGlmIChzaWctPnJhcmctPnNldHRlcikKKyAJZ19mcHJpbnRmIChmb3V0
LCAiICAlcyB2X3JldHVybjtcbiIsIHNpZy0+cmFyZy0+Y3R5cGUpOworIAorLS0gCisyLjQuMgpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWJhZC0wMDAxLWR0bHMtcG9ydC10by1PcGVuU1NMLTEuMS4wLnBhdGNoIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdpbnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5T
U0wtMS4xLjAucGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjVk
MTA2NGVkNWU5Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvZ3N0LXBsdWdp
bnMtYmFkLTAwMDEtZHRscy1wb3J0LXRvLU9wZW5TU0wtMS4xLjAucGF0Y2gKQEAgLTAsMCArMSwy
MzYgQEAKK0Zyb20gZTkzODkzMzE2N2M0OTRjZGNhNDQzMzM0ZjY1OGIwMmEwM2M0NDg2YiBNb24g
U2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IERhaWtpIFVlbm8gPGR1ZW5vQHJlZGhhdC5jb20+
CitEYXRlOiBXZWQsIDI2IE9jdCAyMDE2IDE0OjUxOjAxICswMjAwCitTdWJqZWN0OiBbUEFUQ0hd
IGR0bHM6IHBvcnQgdG8gT3BlblNTTCAxLjEuMAorCitDaGFuZ2VzIGFyZToKKworLSBVc2UgdGhl
IHdyYXBwZXIgZnVuY3Rpb25zIHRvIGFjY2VzcyBvcGFxdWUgZGF0YSB0eXBlcy4gIFRvIHByZXNl
cnZlCisgIGJhY2t3YXJkIGNvbXBhdGliaWxpdHksIGRlZmluZSBmYWxsYmFjayBkZWZpbml0aW9u
cworCistIFJlbW92ZSB0aGUgdXNlIG9mIGlkaW9tICJwcXVldWVfc2l6ZShzc2wtPmQxLT5zZW50
X21lc3NhZ2VzKSIsIHNpbmNlCisgIHRoZXJlIGlzIG5vIHJlcGxhY2VtZW50CisKKy0gVXNlIFJT
QV9nZW5lcmF0ZV9rZXlfZXggaW5zdGVhZCBvZiB0aGUgZGVwcmVjYXRlZCBSU0FfZ2VuZXJhdGVf
a2V5CisKK2h0dHBzOi8vYnVnemlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NzM1NDAK
Ky0tLQorIGV4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jIHwgMTUgKysrKysrKysKKyBleHQv
ZHRscy9nc3RkdGxzY29ubmVjdGlvbi5jICB8IDg3ICsrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrLS0tLS0KKyAyIGZpbGVzIGNoYW5nZWQsIDkzIGluc2VydGlvbnMoKyksIDkg
ZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUu
YyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitpbmRleCA5NWZiYjgzLi5jMWM5NjAy
IDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9k
dGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitAQCAtMTk5LDcgKzE5OSwyMiBAQCBpbml0X2dlbmVy
YXRlZCAoR3N0RHRsc0NlcnRpZmljYXRlICogc2VsZikKKyAgICAgcHJpdi0+cHJpdmF0ZV9rZXkg
PSBOVUxMOworICAgICByZXR1cm47CisgICB9CisrCisrICAvKiBYWFg6IFJTQV9nZW5lcmF0ZV9r
ZXkgaXMgYWN0dWFsbHkgZGVwcmVjYXRlZCBpbiAwLjkuOCAqLworKyNpZiBPUEVOU1NMX1ZFUlNJ
T05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIHJzYSA9IFJTQV9nZW5lcmF0ZV9rZXkgKDIwNDgs
IFJTQV9GNCwgTlVMTCwgTlVMTCk7CisrI2Vsc2UKKysgIHJzYSA9IFJTQV9uZXcgKCk7CisrICBp
ZiAocnNhICE9IE5VTEwpIHsKKysgICAgQklHTlVNICplID0gQk5fbmV3ICgpOworKyAgICBpZiAo
ZSAhPSBOVUxMICYmIEJOX3NldF93b3JkIChlLCBSU0FfRjQpCisrICAgICAgICAmJiBSU0FfZ2Vu
ZXJhdGVfa2V5X2V4IChyc2EsIDIwNDgsIGUsIE5VTEwpKSB7CisrICAgICAgUlNBX2ZyZWUgKHJz
YSk7CisrICAgICAgcnNhID0gTlVMTDsKKysgICAgfQorKyAgICBCTl9mcmVlIChlKTsKKysgIH0K
KysjZW5kaWYKKyAKKyAgIGlmICghcnNhKSB7CisgICAgIEdTVF9XQVJOSU5HX09CSkVDVCAoc2Vs
ZiwgImZhaWxlZCB0byBnZW5lcmF0ZSBSU0EiKTsKK2RpZmYgLS1naXQgYS9leHQvZHRscy9nc3Rk
dGxzY29ubmVjdGlvbi5jIGIvZXh0L2R0bHMvZ3N0ZHRsc2Nvbm5lY3Rpb24uYworaW5kZXggMzZm
NmQ2My4uNzI4ZjVhNyAxMDA2NDQKKy0tLSBhL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMK
KysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjb25uZWN0aW9uLmMKK0BAIC00Miw2ICs0Miw4IEBACisg
I2luY2x1ZGUgPG9wZW5zc2wvZXJyLmg+CisgI2luY2x1ZGUgPG9wZW5zc2wvc3NsLmg+CisgCisr
I2luY2x1ZGUgPHN0cmluZy5oPgorKworIEdTVF9ERUJVR19DQVRFR09SWV9TVEFUSUMgKGdzdF9k
dGxzX2Nvbm5lY3Rpb25fZGVidWcpOworICNkZWZpbmUgR1NUX0NBVF9ERUZBVUxUIGdzdF9kdGxz
X2Nvbm5lY3Rpb25fZGVidWcKKyBHX0RFRklORV9UWVBFX1dJVEhfQ09ERSAoR3N0RHRsc0Nvbm5l
Y3Rpb24sIGdzdF9kdGxzX2Nvbm5lY3Rpb24sIEdfVFlQRV9PQkpFQ1QsCitAQCAtMjE2LDYgKzIx
OCwzOCBAQCBnc3RfZHRsc19jb25uZWN0aW9uX2ZpbmFsaXplIChHT2JqZWN0ICogZ29iamVjdCkK
KyAgIEdfT0JKRUNUX0NMQVNTIChnc3RfZHRsc19jb25uZWN0aW9uX3BhcmVudF9jbGFzcyktPmZp
bmFsaXplIChnb2JqZWN0KTsKKyB9CisgCisrI2lmIE9QRU5TU0xfVkVSU0lPTl9OVU1CRVIgPCAw
eDEwMTAwMDAxTAorK3N0YXRpYyB2b2lkCisrQklPX3NldF9kYXRhIChCSU8gKiBiaW8sIHZvaWQg
KnB0cikKKyt7CisrICBiaW8tPnB0ciA9IHB0cjsKKyt9CisrCisrc3RhdGljIHZvaWQgKgorK0JJ
T19nZXRfZGF0YSAoQklPICogYmlvKQorK3sKKysgIHJldHVybiBiaW8tPnB0cjsKKyt9CisrCisr
c3RhdGljIHZvaWQKKytCSU9fc2V0X3NodXRkb3duIChCSU8gKiBiaW8sIGludCBzaHV0ZG93bikK
Kyt7CisrICBiaW8tPnNodXRkb3duID0gc2h1dGRvd247CisrfQorKworK3N0YXRpYyB2b2lkCisr
QklPX3NldF9pbml0IChCSU8gKiBiaW8sIGludCBpbml0KQorK3sKKysgIGJpby0+aW5pdCA9IGlu
aXQ7CisrfQorKworK3N0YXRpYyBYNTA5ICoKKytYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKFg1
MDlfU1RPUkVfQ1RYICogY3R4KQorK3sKKysgIHJldHVybiBjdHgtPmNlcnQ7CisrfQorKyNlbmRp
ZgorKworIHN0YXRpYyB2b2lkCisgZ3N0X2R0bHNfY29ubmVjdGlvbl9zZXRfcHJvcGVydHkgKEdP
YmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisgICAgIGNvbnN0IEdWYWx1ZSAqIHZhbHVl
LCBHUGFyYW1TcGVjICogcHNwZWMpCitAQCAtMjM5LDcgKzI3Myw3IEBAIGdzdF9kdGxzX2Nvbm5l
Y3Rpb25fc2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lkLAorICAg
ICAgIHByaXYtPmJpbyA9IEJJT19uZXcgKEJJT19zX2dzdF9kdGxzX2Nvbm5lY3Rpb24gKCkpOwor
ICAgICAgIGdfcmV0dXJuX2lmX2ZhaWwgKHByaXYtPmJpbyk7CisgCistICAgICAgcHJpdi0+Ymlv
LT5wdHIgPSBzZWxmOworKyAgICAgIEJJT19zZXRfZGF0YSAocHJpdi0+YmlvLCBzZWxmKTsKKyAg
ICAgICBTU0xfc2V0X2JpbyAocHJpdi0+c3NsLCBwcml2LT5iaW8sIHByaXYtPmJpbyk7CisgCisg
ICAgICAgU1NMX3NldF92ZXJpZnkgKHByaXYtPnNzbCwKK0BAIC01NzMsNiArNjA3LDcgQEAgbG9n
X3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdjaGFyICogc3RyKQorICAg
c3RhdGVzIHw9ICghICFTU0xfd2FudF93cml0ZSAocHJpdi0+c3NsKSA8PCAyMCk7CisgICBzdGF0
ZXMgfD0gKCEgIVNTTF93YW50X3JlYWQgKHByaXYtPnNzbCkgPDwgMjQpOworIAorKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxm
LCAiJXM6IHJvbGU9JXMgYnVmPSglZCwlcDolZC8lZCkgJXh8JXggJXMiLAorICAgICAgIHN0ciwK
KyAgICAgICBwcml2LT5pc19jbGllbnQgPyAiY2xpZW50IiA6ICJzZXJ2ZXIiLAorQEAgLTU4MSw2
ICs2MTYsMTUgQEAgbG9nX3N0YXRlIChHc3REdGxzQ29ubmVjdGlvbiAqIHNlbGYsIGNvbnN0IGdj
aGFyICogc3RyKQorICAgICAgIHByaXYtPmJpb19idWZmZXJfb2Zmc2V0LAorICAgICAgIHByaXYt
PmJpb19idWZmZXJfbGVuLAorICAgICAgIHN0YXRlcywgU1NMX2dldF9zdGF0ZSAocHJpdi0+c3Ns
KSwgU1NMX3N0YXRlX3N0cmluZ19sb25nIChwcml2LT5zc2wpKTsKKysjZWxzZQorKyAgR1NUX0xP
R19PQkpFQ1QgKHNlbGYsICIlczogcm9sZT0lcyBidWY9KCVwOiVkLyVkKSAleHwleCAlcyIsCisr
ICAgICAgc3RyLAorKyAgICAgIHByaXYtPmlzX2NsaWVudCA/ICJjbGllbnQiIDogInNlcnZlciIs
CisrICAgICAgcHJpdi0+YmlvX2J1ZmZlciwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX29mZnNl
dCwKKysgICAgICBwcml2LT5iaW9fYnVmZmVyX2xlbiwKKysgICAgICBzdGF0ZXMsIFNTTF9nZXRf
c3RhdGUgKHByaXYtPnNzbCksIFNTTF9zdGF0ZV9zdHJpbmdfbG9uZyAocHJpdi0+c3NsKSk7Cisr
I2VuZGlmCisgfQorIAorIHN0YXRpYyB2b2lkCitAQCAtNzM3LDcgKzc4MSw3IEBAIG9wZW5zc2xf
dmVyaWZ5X2NhbGxiYWNrIChpbnQgcHJldmVyaWZ5X29rLCBYNTA5X1NUT1JFX0NUWCAqIHg1MDlf
Y3R4KQorICAgc2VsZiA9IFNTTF9nZXRfZXhfZGF0YSAoc3NsLCBjb25uZWN0aW9uX2V4X2luZGV4
KTsKKyAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsIChHU1RfSVNfRFRMU19DT05ORUNUSU9OIChzZWxm
KSwgRkFMU0UpOworIAorLSAgcGVtID0gX2dzdF9kdGxzX3g1MDlfdG9fcGVtICh4NTA5X2N0eC0+
Y2VydCk7CisrICBwZW0gPSBfZ3N0X2R0bHNfeDUwOV90b19wZW0gKFg1MDlfU1RPUkVfQ1RYX2dl
dDBfY2VydCAoeDUwOV9jdHgpKTsKKyAKKyAgIGlmICghcGVtKSB7CisgICAgIEdTVF9XQVJOSU5H
X09CSkVDVCAoc2VsZiwKK0BAIC03NDksNyArNzkzLDggQEAgb3BlbnNzbF92ZXJpZnlfY2FsbGJh
Y2sgKGludCBwcmV2ZXJpZnlfb2ssIFg1MDlfU1RPUkVfQ1RYICogeDUwOV9jdHgpCisgICAgICAg
Z2ludCBsZW47CisgCisgICAgICAgbGVuID0KKy0gICAgICAgICAgWDUwOV9OQU1FX3ByaW50X2V4
IChiaW8sIFg1MDlfZ2V0X3N1YmplY3RfbmFtZSAoeDUwOV9jdHgtPmNlcnQpLCAxLAorKyAgICAg
ICAgICBYNTA5X05BTUVfcHJpbnRfZXggKGJpbywKKysgICAgICAgICAgWDUwOV9nZXRfc3ViamVj
dF9uYW1lIChYNTA5X1NUT1JFX0NUWF9nZXQwX2NlcnQgKHg1MDlfY3R4KSksIDEsCisgICAgICAg
ICAgIFhOX0ZMQUdfTVVMVElMSU5FKTsKKyAgICAgICBCSU9fcmVhZCAoYmlvLCBidWZmZXIsIGxl
bik7CisgICAgICAgYnVmZmVyW2xlbl0gPSAnXDAnOworQEAgLTc3Nyw2ICs4MjIsNyBAQCBvcGVu
c3NsX3ZlcmlmeV9jYWxsYmFjayAoaW50IHByZXZlcmlmeV9vaywgWDUwOV9TVE9SRV9DVFggKiB4
NTA5X2N0eCkKKyAgICAgIyMjIyMjIyMgICMjIyMgICMjIyMjIyMKKyAqLworIAorKyNpZiBPUEVO
U1NMX1ZFUlNJT05fTlVNQkVSIDwgMHgxMDEwMDAwMUwKKyBzdGF0aWMgQklPX01FVEhPRCBjdXN0
b21fYmlvX21ldGhvZHMgPSB7CisgICBCSU9fVFlQRV9CSU8sCisgICAic3RyZWFtIiwKK0BAIC03
OTUsMTEgKzg0MSwzNCBAQCBCSU9fc19nc3RfZHRsc19jb25uZWN0aW9uICh2b2lkKQorIHsKKyAg
IHJldHVybiAmY3VzdG9tX2Jpb19tZXRob2RzOworIH0KKysjZWxzZQorK3N0YXRpYyBCSU9fTUVU
SE9EICpjdXN0b21fYmlvX21ldGhvZHM7CisrCisrc3RhdGljIEJJT19NRVRIT0QgKgorK0JJT19z
X2dzdF9kdGxzX2Nvbm5lY3Rpb24gKHZvaWQpCisreworKyAgaWYgKGN1c3RvbV9iaW9fbWV0aG9k
cyAhPSBOVUxMKQorKyAgICByZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworKworKyAgY3VzdG9t
X2Jpb19tZXRob2RzID0gQklPX21ldGhfbmV3IChCSU9fVFlQRV9CSU8sICJzdHJlYW0iKTsKKysg
IGlmIChjdXN0b21fYmlvX21ldGhvZHMgPT0gTlVMTAorKyAgICAgIHx8ICFCSU9fbWV0aF9zZXRf
d3JpdGUgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF93cml0ZSkKKysgICAgICB8fCAh
QklPX21ldGhfc2V0X3JlYWQgKGN1c3RvbV9iaW9fbWV0aG9kcywgYmlvX21ldGhvZF9yZWFkKQor
KyAgICAgIHx8ICFCSU9fbWV0aF9zZXRfY3RybCAoY3VzdG9tX2Jpb19tZXRob2RzLCBiaW9fbWV0
aG9kX2N0cmwpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9jcmVhdGUgKGN1c3RvbV9iaW9fbWV0
aG9kcywgYmlvX21ldGhvZF9uZXcpCisrICAgICAgfHwgIUJJT19tZXRoX3NldF9kZXN0cm95IChj
dXN0b21fYmlvX21ldGhvZHMsIGJpb19tZXRob2RfZnJlZSkpIHsKKysgICAgQklPX21ldGhfZnJl
ZSAoY3VzdG9tX2Jpb19tZXRob2RzKTsKKysgICAgcmV0dXJuIE5VTEw7CisrICB9CisrCisrICBy
ZXR1cm4gY3VzdG9tX2Jpb19tZXRob2RzOworK30KKysjZW5kaWYKKyAKKyBzdGF0aWMgaW50Cisg
YmlvX21ldGhvZF93cml0ZSAoQklPICogYmlvLCBjb25zdCBjaGFyICpkYXRhLCBpbnQgc2l6ZSkK
KyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKGJp
by0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVDVElP
TiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAKKyAgIEdTVF9MT0dfT0JKRUNUIChzZWxmLCAiQklP
OiB3cml0aW5nICVkIiwgc2l6ZSk7CisgCitAQCAtODI0LDcgKzg5Myw3IEBAIGJpb19tZXRob2Rf
d3JpdGUgKEJJTyAqIGJpbywgY29uc3QgY2hhciAqZGF0YSwgaW50IHNpemUpCisgc3RhdGljIGlu
dAorIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBjaGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6
ZSkKKyB7CistICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04g
KGJpby0+cHRyKTsKKysgIEdzdER0bHNDb25uZWN0aW9uICpzZWxmID0gR1NUX0RUTFNfQ09OTkVD
VElPTiAoQklPX2dldF9kYXRhIChiaW8pKTsKKyAgIEdzdER0bHNDb25uZWN0aW9uUHJpdmF0ZSAq
cHJpdiA9IHNlbGYtPnByaXY7CisgICBndWludCBpbnRlcm5hbF9zaXplOworICAgZ2ludCBjb3B5
X3NpemU7CitAQCAtODY4LDcgKzkzNyw3IEBAIGJpb19tZXRob2RfcmVhZCAoQklPICogYmlvLCBj
aGFyICpvdXRfYnVmZmVyLCBpbnQgc2l6ZSkKKyBzdGF0aWMgbG9uZworIGJpb19tZXRob2RfY3Ry
bCAoQklPICogYmlvLCBpbnQgY21kLCBsb25nIGFyZzEsIHZvaWQgKmFyZzIpCisgeworLSAgR3N0
RHRsc0Nvbm5lY3Rpb24gKnNlbGYgPSBHU1RfRFRMU19DT05ORUNUSU9OIChiaW8tPnB0cik7Cisr
ICBHc3REdGxzQ29ubmVjdGlvbiAqc2VsZiA9IEdTVF9EVExTX0NPTk5FQ1RJT04gKEJJT19nZXRf
ZGF0YSAoYmlvKSk7CisgICBHc3REdGxzQ29ubmVjdGlvblByaXZhdGUgKnByaXYgPSBzZWxmLT5w
cml2OworIAorICAgc3dpdGNoIChjbWQpIHsKK0BAIC05MTYsOCArOTg1LDggQEAgYmlvX21ldGhv
ZF9uZXcgKEJJTyAqIGJpbykKKyB7CisgICBHU1RfTE9HX09CSkVDVCAoTlVMTCwgIkJJTzogbmV3
Iik7CisgCistICBiaW8tPnNodXRkb3duID0gMDsKKy0gIGJpby0+aW5pdCA9IDE7CisrICBCSU9f
c2V0X3NodXRkb3duIChiaW8sIDApOworKyAgQklPX3NldF9pbml0IChiaW8sIDEpOworIAorICAg
cmV0dXJuIDE7CisgfQorQEAgLTkzMCw2ICs5OTksNiBAQCBiaW9fbWV0aG9kX2ZyZWUgKEJJTyAq
IGJpbykKKyAgICAgcmV0dXJuIDA7CisgICB9CisgCistICBHU1RfTE9HX09CSkVDVCAoR1NUX0RU
TFNfQ09OTkVDVElPTiAoYmlvLT5wdHIpLCAiQklPIGZyZWUiKTsKKysgIEdTVF9MT0dfT0JKRUNU
IChHU1RfRFRMU19DT05ORUNUSU9OIChCSU9fZ2V0X2RhdGEgKGJpbykpLCAiQklPIGZyZWUiKTsK
KyAgIHJldHVybiAwOworIH0KKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9w
YXRjaGVzL2dzdC1wbHVnaW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hl
Y2tpbmctaW4tUlNBX2dlbmVyYXRlX2sucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1
Z2lucy1iYWQtMDAwMi1kdGxzY2VydGlmaWNhdGUtRml4LWVycm9yLWNoZWNraW5nLWluLVJTQV9n
ZW5lcmF0ZV9rLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi5j
NjY4NzczNzBjNgotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVn
aW5zLWJhZC0wMDAyLWR0bHNjZXJ0aWZpY2F0ZS1GaXgtZXJyb3ItY2hlY2tpbmctaW4tUlNBX2dl
bmVyYXRlX2sucGF0Y2gKQEAgLTAsMCArMSwzNyBAQAorRnJvbSAzYTA2OTE5M2UyNTM2NGViZGFj
YWM4NmY0YjAzMDIyYzE1MWVhMjljIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQorRnJvbTogPT9V
VEYtOD9xP1NlYmFzdGlhbj0yMERyPUMzPUI2Z2U/PSA8c2ViYXN0aWFuQGNlbnRyaWN1bGFyLmNv
bT4KK0RhdGU6IE1vbiwgMTQgTm92IDIwMTYgMTE6MzI6MTcgKzAyMDAKK1N1YmplY3Q6IFtQQVRD
SF0gZHRsc2NlcnRpZmljYXRlOiBGaXggZXJyb3IgY2hlY2tpbmcgaW4gUlNBX2dlbmVyYXRlX2tl
eV9leCgpCisgdXNhZ2UKKworV2FzIGJyb2tlbiBkdXJpbmcgdGhlIHBvcnQgZm9yIE9wZW5TU0wg
MS4xLgorCitodHRwczovL2J1Z3ppbGxhLmdub21lLm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Nzc0MzI4
CistLS0KKyBleHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyB8IDcgKysrKy0tLQorIDEgZmls
ZSBjaGFuZ2VkLCA0IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg
YS9leHQvZHRscy9nc3RkdGxzY2VydGlmaWNhdGUuYyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZp
Y2F0ZS5jCitpbmRleCBjMWM5NjAyLi5jMmQ5YmIyIDEwMDY0NAorLS0tIGEvZXh0L2R0bHMvZ3N0
ZHRsc2NlcnRpZmljYXRlLmMKKysrKyBiL2V4dC9kdGxzL2dzdGR0bHNjZXJ0aWZpY2F0ZS5jCitA
QCAtMjA3LDEyICsyMDcsMTMgQEAgaW5pdF9nZW5lcmF0ZWQgKEdzdER0bHNDZXJ0aWZpY2F0ZSAq
IHNlbGYpCisgICByc2EgPSBSU0FfbmV3ICgpOworICAgaWYgKHJzYSAhPSBOVUxMKSB7CisgICAg
IEJJR05VTSAqZSA9IEJOX25ldyAoKTsKKy0gICAgaWYgKGUgIT0gTlVMTCAmJiBCTl9zZXRfd29y
ZCAoZSwgUlNBX0Y0KQorLSAgICAgICAgJiYgUlNBX2dlbmVyYXRlX2tleV9leCAocnNhLCAyMDQ4
LCBlLCBOVUxMKSkgeworKyAgICBpZiAoZSA9PSBOVUxMIHx8ICFCTl9zZXRfd29yZCAoZSwgUlNB
X0Y0KQorKyAgICAgICAgfHwgIVJTQV9nZW5lcmF0ZV9rZXlfZXggKHJzYSwgMjA0OCwgZSwgTlVM
TCkpIHsKKyAgICAgICBSU0FfZnJlZSAocnNhKTsKKyAgICAgICByc2EgPSBOVUxMOworICAgICB9
CistICAgIEJOX2ZyZWUgKGUpOworKyAgICBpZiAoZSkKKysgICAgICBCTl9mcmVlIChlKTsKKyAg
IH0KKyAjZW5kaWYKKyAKKy0tIAorMi4xMC4yCisKZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9wYXRj
aGVzL2dzdC1wbHVnaW5zLWdvb2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1m
aXJzdC1tb29mLWZvci1mci5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdv
b2QtUmV2ZXJ0LXF0ZGVtdXgtZXhwb3NlLXN0cmVhbXMtd2l0aC1maXJzdC1tb29mLWZvci1mci5w
YXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMC4uM2E2MGRiNDc3MmIK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLVJl
dmVydC1xdGRlbXV4LWV4cG9zZS1zdHJlYW1zLXdpdGgtZmlyc3QtbW9vZi1mb3ItZnIucGF0Y2gK
QEAgLTAsMCArMSwxMzMgQEAKK0Zyb20gMWE4MWJkOTBkNGEzZTU5ZDY2NjlhMGJiZmE0NTZmMWVk
NGU1ZGI0OCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFhhYmllciBSb2RyaWd1ZXog
Q2FsdmFyIDxjYWx2YXJpc0BpZ2FsaWEuY29tPgorRGF0ZTogVGh1LCA3IEFwciAyMDE2IDEzOjU3
OjE2ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIFJldmVydCAicXRkZW11eDogZXhwb3NlIHN0cmVh
bXMgd2l0aCBmaXJzdCBtb29mIGZvcgorIGZyYWdtZW50ZWQgZm9ybWF0IgorCitUaGlzIHJldmVy
dHMgY29tbWl0IGQ4YmI2Njg3ZWEyNTE1NzBjMzMxMDM4Mjc5YTQzZDQ0ODE2N2Q2YWQuCistLS0K
KyBnc3QvaXNvbXA0L3F0ZGVtdXguYyB8IDU0ICsrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBnc3QvaXNvbXA0L3F0ZGVtdXguaCB8ICAxIC0KKyAy
IGZpbGVzIGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKyksIDM5IGRlbGV0aW9ucygtKQorCitkaWZm
IC0tZ2l0IGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworaW5k
ZXggMzliZTE2My4uOTYzNmI0YiAxMDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5jCisr
KysgYi9nc3QvaXNvbXA0L3F0ZGVtdXguYworQEAgLTYwOSw3ICs2MDksNiBAQCBnc3RfcXRkZW11
eF9pbml0IChHc3RRVERlbXV4ICogcXRkZW11eCkKKyAgIHF0ZGVtdXgtPnN0YXRlID0gUVRERU1V
WF9TVEFURV9JTklUSUFMOworICAgcXRkZW11eC0+cHVsbGJhc2VkID0gRkFMU0U7CisgICBxdGRl
bXV4LT5wb3N0ZWRfcmVkaXJlY3QgPSBGQUxTRTsKKy0gIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmln
dXJlID0gRkFMU0U7CisgICBxdGRlbXV4LT5uZWVkZWRieXRlcyA9IDE2OworICAgcXRkZW11eC0+
dG9kcm9wID0gMDsKKyAgIHF0ZGVtdXgtPmFkYXB0ZXIgPSBnc3RfYWRhcHRlcl9uZXcgKCk7CitA
QCAtMjA0OSw3ICsyMDQ4LDYgQEAgZ3N0X3F0ZGVtdXhfcmVzZXQgKEdzdFFURGVtdXggKiBxdGRl
bXV4LCBnYm9vbGVhbiBoYXJkKQorICAgICBnc3RfY2Fwc19yZXBsYWNlICgmcXRkZW11eC0+bWVk
aWFfY2FwcywgTlVMTCk7CisgICAgIHF0ZGVtdXgtPnRpbWVzY2FsZSA9IDA7CisgICAgIHF0ZGVt
dXgtPmdvdF9tb292ID0gRkFMU0U7CistICAgIHF0ZGVtdXgtPnBlbmRpbmdfY29uZmlndXJlID0g
RkFMU0U7CisgICB9IGVsc2UgaWYgKHF0ZGVtdXgtPm1zc19tb2RlKSB7CisgICAgIGdzdF9mbG93
X2NvbWJpbmVyX3Jlc2V0IChxdGRlbXV4LT5mbG93Y29tYmluZXIpOworICAgICBmb3IgKG4gPSAw
OyBuIDwgcXRkZW11eC0+bl9zdHJlYW1zOyBuKyspCitAQCAtNjEwNCw3ICs2MTAyLDYgQEAgZ3N0
X3F0ZGVtdXhfcHJvY2Vzc19hZGFwdGVyIChHc3RRVERlbXV4ICogZGVtdXgsIGdib29sZWFuIGZv
cmNlKQorICAgICAgICAgICAgICZmb3VyY2MpOworICAgICAgICAgaWYgKGZvdXJjYyA9PSBGT1VS
Q0NfbW9vdikgeworICAgICAgICAgICBnaW50IG47CistICAgICAgICAgIGdib29sZWFuIGdvdF9z
YW1wbGVzID0gRkFMU0U7CisgCisgICAgICAgICAgIC8qIGluIHVzdWFsIGZyYWdtZW50ZWQgc2V0
dXAgd2UgY291bGQgdHJ5IHRvIHNjYW4gZm9yIG1vcmUKKyAgICAgICAgICAgICogYW5kIGVuZCB1
cCBhdCB0aGUgdGhlIG1vb3YgKGFmdGVyIG1kYXQpIGFnYWluICovCitAQCAtNjEzNiwyNyArNjEz
MywxOSBAQCBnc3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwg
Z2Jvb2xlYW4gZm9yY2UpCisgICAgICAgICAgICAgcXRkZW11eF9ub2RlX2R1bXAgKGRlbXV4LCBk
ZW11eC0+bW9vdl9ub2RlKTsKKyAgICAgICAgICAgICBxdGRlbXV4X3BhcnNlX3RyZWUgKGRlbXV4
KTsKKyAgICAgICAgICAgICBxdGRlbXV4X3ByZXBhcmVfc3RyZWFtcyAoZGVtdXgpOworKyAgICAg
ICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KQorKyAgICAgICAgICAgICAgcXRkZW11eF9leHBv
c2Vfc3RyZWFtcyAoZGVtdXgpOworKyAgICAgICAgICAgIGVsc2UgeworIAorLSAgICAgICAgICAg
IGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKyspIHsKKy0gICAgICAgICAgICAg
IFF0RGVtdXhTdHJlYW0gKnN0cmVhbSA9IGRlbXV4LT5zdHJlYW1zW25dOworLSAgICAgICAgICAg
ICAgZ290X3NhbXBsZXMgfD0gc3RyZWFtLT5zdGJsX2luZGV4ID49IDA7CistICAgICAgICAgICAg
fQorLSAgICAgICAgICAgIGlmICghZGVtdXgtPmZyYWdtZW50ZWQgfHwgZ290X3NhbXBsZXMpIHsK
Ky0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmdvdF9tb292KSB7CistICAgICAgICAgICAgICAg
IHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKy0gICAgICAgICAgICAgIH0gZWxzZSB7
CistICAgICAgICAgICAgICAgIGZvciAobiA9IDA7IG4gPCBkZW11eC0+bl9zdHJlYW1zOyBuKysp
IHsKKy0gICAgICAgICAgICAgICAgICBRdERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3Ry
ZWFtc1tuXTsKKy0gICAgICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jb25maWd1cmVfc3RyZWFt
IChkZW11eCwgc3RyZWFtKTsKKy0gICAgICAgICAgICAgICAgfQorKyAgICAgICAgICAgICAgZm9y
IChuID0gMDsgbiA8IGRlbXV4LT5uX3N0cmVhbXM7IG4rKykgeworKyAgICAgICAgICAgICAgICBR
dERlbXV4U3RyZWFtICpzdHJlYW0gPSBkZW11eC0+c3RyZWFtc1tuXTsKKysKKysgICAgICAgICAg
ICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVtdXgsIHN0cmVhbSk7CisgICAg
ICAgICAgICAgICB9CistICAgICAgICAgICAgICBnc3RfcXRkZW11eF9jaGVja19zZW5kX3BlbmRp
bmdfc2VnbWVudCAoZGVtdXgpOworLSAgICAgICAgICAgICAgZGVtdXgtPnBlbmRpbmdfY29uZmln
dXJlID0gRkFMU0U7CistICAgICAgICAgICAgfSBlbHNlIHsKKy0gICAgICAgICAgICAgIGRlbXV4
LT5wZW5kaW5nX2NvbmZpZ3VyZSA9IFRSVUU7CisgICAgICAgICAgICAgfQorIAorICAgICAgICAg
ICAgIGRlbXV4LT5nb3RfbW9vdiA9IFRSVUU7CisrICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY2hl
Y2tfc2VuZF9wZW5kaW5nX3NlZ21lbnQgKGRlbXV4KTsKKyAKKyAgICAgICAgICAgICAvKiBmcmFn
bWVudGVkIHN0cmVhbXMgaGVhZGVycyBzaG91bGRuJ3QgY29udGFpbiBlZHRzIGF0b21zICovCisg
ICAgICAgICAgICAgaWYgKCFkZW11eC0+ZnJhZ21lbnRlZCkgeworQEAgLTYxNzUsNyArNjE2NCw2
IEBAIGdzdF9xdGRlbXV4X3Byb2Nlc3NfYWRhcHRlciAoR3N0UVREZW11eCAqIGRlbXV4LCBnYm9v
bGVhbiBmb3JjZSkKKyAgICAgICAgICAgICBndWludDY0IGRpc3QgPSAwOworICAgICAgICAgICAg
IEdzdENsb2NrVGltZSBwcmV2X3B0czsKKyAgICAgICAgICAgICBndWludDY0IHByZXZfb2Zmc2V0
OworLSAgICAgICAgICAgIGdpbnQgbjsKKyAKKyAgICAgICAgICAgICBHU1RfREVCVUdfT0JKRUNU
IChkZW11eCwgIlBhcnNpbmcgW21vb2ZdIik7CisgCitAQCAtNjIwOSwyNSArNjE5NywxNSBAQCBn
c3RfcXRkZW11eF9wcm9jZXNzX2FkYXB0ZXIgKEdzdFFURGVtdXggKiBkZW11eCwgZ2Jvb2xlYW4g
Zm9yY2UpCisgICAgICAgICAgICAgICByZXQgPSBHU1RfRkxPV19FUlJPUjsKKyAgICAgICAgICAg
ICAgIGdvdG8gZG9uZTsKKyAgICAgICAgICAgICB9CistICAgICAgICAgICAgLyogaW4gTVNTIHdl
IG5lZWQgdG8gZXhwb3NlIHRoZSBwYWRzIGFmdGVyIHRoZSBmaXJzdCBtb29mIGFzIHdlIHdvbid0
IGdldCBhIG1vb3YgCistICAgICAgICAgICAgICogQWxzbywgZnJhZ21lbnRlZCBmb3JtYXQgbmVl
ZCB0byBiZSBleHBvc2VkIGlmIGEgbW9vdiBoYXZlIG5vIHZhbGlkIHNhbXBsZSBkYXRhICovCist
ICAgICAgICAgICAgaWYgKGRlbXV4LT5tc3NfbW9kZSB8fCBkZW11eC0+cGVuZGluZ19jb25maWd1
cmUpIHsKKy0gICAgICAgICAgICAgIGlmICghZGVtdXgtPmV4cG9zZWQpIHsKKy0gICAgICAgICAg
ICAgICAgaWYgKCFkZW11eC0+cGVuZGluZ19uZXdzZWdtZW50KSB7CistICAgICAgICAgICAgICAg
ICAgR3N0U2VnbWVudCBzZWdtZW50OworLSAgICAgICAgICAgICAgICAgIGdzdF9zZWdtZW50X2lu
aXQgKCZzZWdtZW50LCBHU1RfRk9STUFUX1RJTUUpOworLSAgICAgICAgICAgICAgICAgIEdTVF9E
RUJVR19PQkpFQ1QgKGRlbXV4LCAibmV3IHBlbmRpbmdfbmV3c2VnbWVudCIpOworLSAgICAgICAg
ICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBnc3RfZXZlbnRfbmV3X3NlZ21l
bnQgKCZzZWdtZW50KTsKKy0gICAgICAgICAgICAgICAgfQorLSAgICAgICAgICAgICAgICBxdGRl
bXV4X2V4cG9zZV9zdHJlYW1zIChkZW11eCk7CistICAgICAgICAgICAgICB9IGVsc2UgeworLSAg
ICAgICAgICAgICAgICBmb3IgKG4gPSAwOyBuIDwgZGVtdXgtPm5fc3RyZWFtczsgbisrKSB7Cist
ICAgICAgICAgICAgICAgICAgUXREZW11eFN0cmVhbSAqc3RyZWFtID0gZGVtdXgtPnN0cmVhbXNb
bl07CistICAgICAgICAgICAgICAgICAgZ3N0X3F0ZGVtdXhfY29uZmlndXJlX3N0cmVhbSAoZGVt
dXgsIHN0cmVhbSk7CistICAgICAgICAgICAgICAgIH0KKysgICAgICAgICAgICAvKiBpbiBNU1Mg
d2UgbmVlZCB0byBleHBvc2UgdGhlIHBhZHMgYWZ0ZXIgdGhlIGZpcnN0IG1vb2YgYXMgd2Ugd29u
J3QgZ2V0IGEgbW9vdiAqLworKyAgICAgICAgICAgIGlmIChkZW11eC0+bXNzX21vZGUgJiYgIWRl
bXV4LT5leHBvc2VkKSB7CisrICAgICAgICAgICAgICBpZiAoIWRlbXV4LT5wZW5kaW5nX25ld3Nl
Z21lbnQpIHsKKysgICAgICAgICAgICAgICAgR3N0U2VnbWVudCBzZWdtZW50OworKyAgICAgICAg
ICAgICAgICBnc3Rfc2VnbWVudF9pbml0ICgmc2VnbWVudCwgR1NUX0ZPUk1BVF9USU1FKTsKKysg
ICAgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVtdXgsICJuZXcgcGVuZGluZ19uZXdz
ZWdtZW50Iik7CisrICAgICAgICAgICAgICAgIGRlbXV4LT5wZW5kaW5nX25ld3NlZ21lbnQgPSBn
c3RfZXZlbnRfbmV3X3NlZ21lbnQgKCZzZWdtZW50KTsKKyAgICAgICAgICAgICAgIH0KKy0gICAg
ICAgICAgICAgIGdzdF9xdGRlbXV4X2NoZWNrX3NlbmRfcGVuZGluZ19zZWdtZW50IChkZW11eCk7
CistICAgICAgICAgICAgICBkZW11eC0+cGVuZGluZ19jb25maWd1cmUgPSBGQUxTRTsKKysgICAg
ICAgICAgICAgIHF0ZGVtdXhfZXhwb3NlX3N0cmVhbXMgKGRlbXV4KTsKKyAgICAgICAgICAgICB9
CisgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgR1NUX0RFQlVHX09CSkVDVCAoZGVt
dXgsICJEaXNjYXJkaW5nIFttb29mXSIpOworZGlmZiAtLWdpdCBhL2dzdC9pc29tcDQvcXRkZW11
eC5oIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgKK2luZGV4IDYwNjEyMTUuLmVjZjBjNjMgMTAwNjQ0
CistLS0gYS9nc3QvaXNvbXA0L3F0ZGVtdXguaAorKysrIGIvZ3N0L2lzb21wNC9xdGRlbXV4LmgK
K0BAIC04OSw3ICs4OSw2IEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBnYm9vbGVhbiBwb3N0
ZWRfcmVkaXJlY3Q7CisgCisgICAvKiBwdXNoIGJhc2VkIHZhcmlhYmxlcyAqLworLSAgZ2Jvb2xl
YW4gcGVuZGluZ19jb25maWd1cmU7CisgICBndWludCBuZWVkZWRieXRlczsKKyAgIGd1aW50IHRv
ZHJvcDsKKyAgIEdzdEFkYXB0ZXIgKmFkYXB0ZXI7CistLSAKKzIuOC4wLnJjMworCmRpZmYgLS1n
aXQgYS9Ub29scy93cGUvcGF0Y2hlcy9nc3QtcGx1Z2lucy1nb29kLXVzZS10aGUtdGZkdC1kZWNv
ZGUtdGltZS5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRo
ZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi4xZTlkZDk3Zjc5MQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3dwZS9wYXRjaGVz
L2dzdC1wbHVnaW5zLWdvb2QtdXNlLXRoZS10ZmR0LWRlY29kZS10aW1lLnBhdGNoCkBAIC0wLDAg
KzEsMTQ2IEBACitGcm9tIDQ2ZDNlMGZhYTkyMjY0MzA5NGE1ZTQ2YTMyZTRmODJmNzc0YWU3NzIg
TW9uIFNlcCAxNyAwMDowMDowMCAyMDAxCitGcm9tOiA9P1VURi04P3E/RW5yaXF1ZT0yME9jYT1D
Mz1CMWE9MjBHb256PUMzPUExbGV6Pz0gPGVvY2FuaGFAaWdhbGlhLmNvbT4KK0RhdGU6IFR1ZSwg
MTAgTm92IDIwMTUgMTM6MDk6MDAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gVXNlIHRoZSB0ZmR0
IGRlY29kZSB0aW1lIHdoZW4gaXQncyBzaWduaWZpY2FudGx5IGRpZmZlcmVudAorIHRoYW4gdGhl
IHRpbWUgaW4gdGhlIGxhc3Qgc2FtcGxlIGlmIGFsd2F5cy1ob25vci10ZmR0IGlzIGVuYWJsZWQK
KworaHR0cHM6Ly9idWd6aWxsYS5nbm9tZS5vcmcvc2hvd19idWcuY2dpP2lkPTc1NDIzMAorLS0t
CisgZ3N0L2lzb21wNC9xdGRlbXV4LmMgfCA3MiArKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKysrKysrCisgZ3N0L2lzb21wNC9xdGRlbXV4LmggfCAgMSArCisg
MiBmaWxlcyBjaGFuZ2VkLCA3MyBpbnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9nc3QvaXNv
bXA0L3F0ZGVtdXguYyBiL2dzdC9pc29tcDQvcXRkZW11eC5jCitpbmRleCA4ODA1OTVlLi5kOGI1
NGYwIDEwMDY0NAorLS0tIGEvZ3N0L2lzb21wNC9xdGRlbXV4LmMKKysrKyBiL2dzdC9pc29tcDQv
cXRkZW11eC5jCitAQCAtNTM1LDYgKzUzNSwxMSBAQCBzdGF0aWMgdm9pZCBnc3RfcXRkZW11eF9h
cHBlbmRfcHJvdGVjdGlvbl9zeXN0ZW1faWQgKEdzdFFURGVtdXggKiBxdGRlbXV4LAorICAgICBj
b25zdCBnY2hhciAqIGlkKTsKKyBzdGF0aWMgdm9pZCBxdGRlbXV4X2dzdF9zdHJ1Y3R1cmVfZnJl
ZSAoR3N0U3RydWN0dXJlICogZ3N0c3RydWN0dXJlKTsKKyAKKytzdGF0aWMgdm9pZCBnc3RfcXRk
ZW11eF9zZXRfcHJvcGVydHkgKEdPYmplY3QgKiBvYmplY3QsIGd1aW50IHByb3BfaWQsCisrICAg
IGNvbnN0IEdWYWx1ZSAqIHZhbHVlLCBHUGFyYW1TcGVjICogc3BlYyk7Cisrc3RhdGljIHZvaWQg
Z3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0ICogb2JqZWN0LCBndWludCBwcm9wX2lk
LAorKyAgICBHVmFsdWUgKiB2YWx1ZSwgR1BhcmFtU3BlYyAqIHNwZWMpOworKworIHN0YXRpYyB2
b2lkCisgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11eENsYXNzICoga2xhc3MpCisg
eworQEAgLTU0Niw4ICs1NTEsMjEgQEAgZ3N0X3F0ZGVtdXhfY2xhc3NfaW5pdCAoR3N0UVREZW11
eENsYXNzICoga2xhc3MpCisgCisgICBwYXJlbnRfY2xhc3MgPSBnX3R5cGVfY2xhc3NfcGVla19w
YXJlbnQgKGtsYXNzKTsKKyAKKysgIGdvYmplY3RfY2xhc3MtPnNldF9wcm9wZXJ0eSA9IGdzdF9x
dGRlbXV4X3NldF9wcm9wZXJ0eTsKKysgIGdvYmplY3RfY2xhc3MtPmdldF9wcm9wZXJ0eSA9IGdz
dF9xdGRlbXV4X2dldF9wcm9wZXJ0eTsKKysKKyAgIGdvYmplY3RfY2xhc3MtPmRpc3Bvc2UgPSBn
c3RfcXRkZW11eF9kaXNwb3NlOworIAorKyAvKioKKysgICAqIEdzdFF0RGVtdXg6OmFsd2F5cy1o
b25vci10ZmR0OgorKyAgICoKKysgICAqIFJlcXVlc3RzIHRoZSBkZW11eGVyIHRvIHJlc3BlY3Qg
d2hhdCB0aGUgVEZEVCBhdG9tIHNheXMgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24g
dGltZXN0YW1wcy4gRGVmYXVsdHMgdG8gRkFMU0UuCisrICAgKi8KKysgIGdfb2JqZWN0X2NsYXNz
X2luc3RhbGxfcHJvcGVydHkgKGdvYmplY3RfY2xhc3MsIFBST1BfQUxXQVlTX0hPTk9SX1RGRFQs
CisrICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4gKCJhbHdheXMtaG9ub3ItdGZkdCIsICJBbHdh
eXMgaG9ub3IgVEZEVCIsCisrICAgICAgICAgICJXaGVuIGVuYWJsZWQsIFRGRFQgYXRvbSB3aWxs
IGFsd2F5cyBiZSByZXNwZWN0ZWQgaW4gb3JkZXIgdG8gcHJvZHVjZSBwcmVzZW50YXRpb24gdGlt
ZXN0YW1wcyIsCisrICAgICAgICAgIEZBTFNFLCBHX1BBUkFNX1JFQURXUklURSB8IEdfUEFSQU1f
U1RBVElDX1NUUklOR1MpKTsKKysKKyAgIGdzdGVsZW1lbnRfY2xhc3MtPmNoYW5nZV9zdGF0ZSA9
IEdTVF9ERUJVR19GVU5DUFRSIChnc3RfcXRkZW11eF9jaGFuZ2Vfc3RhdGUpOworICNpZiAwCisg
ICBnc3RlbGVtZW50X2NsYXNzLT5zZXRfaW5kZXggPSBHU1RfREVCVUdfRlVOQ1BUUiAoZ3N0X3F0
ZGVtdXhfc2V0X2luZGV4KTsKK0BAIC02MTEsNiArNjI5LDcgQEAgZ3N0X3F0ZGVtdXhfaW5pdCAo
R3N0UVREZW11eCAqIHF0ZGVtdXgpCisgICBxdGRlbXV4LT5jZW5jX2F1eF9pbmZvX3NpemVzID0g
TlVMTDsKKyAgIHF0ZGVtdXgtPmNlbmNfYXV4X3NhbXBsZV9jb3VudCA9IDA7CisgICBxdGRlbXV4
LT5wcm90ZWN0aW9uX3N5c3RlbV9pZHMgPSBOVUxMOworKyAgcXRkZW11eC0+YWx3YXlzX2hvbm9y
X3RmZHQgPSBGQUxTRTsKKyAgIGdfcXVldWVfaW5pdCAoJnF0ZGVtdXgtPnByb3RlY3Rpb25fZXZl
bnRfcXVldWUpOworICAgZ3N0X3NlZ21lbnRfaW5pdCAoJnF0ZGVtdXgtPnNlZ21lbnQsIEdTVF9G
T1JNQVRfVElNRSk7CisgICBxdGRlbXV4LT5mbG93Y29tYmluZXIgPSBnc3RfZmxvd19jb21iaW5l
cl9uZXcgKCk7CitAQCAtNjM5LDYgKzY1OCw0MiBAQCBnc3RfcXRkZW11eF9kaXNwb3NlIChHT2Jq
ZWN0ICogb2JqZWN0KQorIH0KKyAKKyBzdGF0aWMgdm9pZAorK2dzdF9xdGRlbXV4X3NldF9wcm9w
ZXJ0eSAoR09iamVjdCAqIG9iamVjdCwgZ3VpbnQgcHJvcF9pZCwKKysgICAgY29uc3QgR1ZhbHVl
ICogdmFsdWUsIEdQYXJhbVNwZWMgKiBwc3BlYykKKyt7CisrICBHc3RRVERlbXV4ICpxdGRlbXV4
ID0gR1NUX1FUREVNVVggKG9iamVjdCk7CisrCisrICBzd2l0Y2ggKHByb3BfaWQpIHsKKysgICAg
Y2FzZSBQUk9QX0FMV0FZU19IT05PUl9URkRUOgorKyAgICAgIEdTVF9PQkpFQ1RfTE9DSyAocXRk
ZW11eCk7CisrICAgICAgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQgPSBnX3ZhbHVlX2dldF9i
b29sZWFuICh2YWx1ZSk7CisrICAgICAgR1NUX09CSkVDVF9VTkxPQ0sgKHF0ZGVtdXgpOworKyAg
ICAgIGJyZWFrOworKyAgICBkZWZhdWx0OgorKyAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9Q
Uk9QRVJUWV9JRCAob2JqZWN0LCBwcm9wX2lkLCBwc3BlYyk7CisrICAgICAgYnJlYWs7CisrICB9
CisrfQorKworK3N0YXRpYyB2b2lkCisrZ3N0X3F0ZGVtdXhfZ2V0X3Byb3BlcnR5IChHT2JqZWN0
ICogb2JqZWN0LCBndWludCBwcm9wX2lkLCBHVmFsdWUgKiB2YWx1ZSwKKysgICAgR1BhcmFtU3Bl
YyAqIHBzcGVjKQorK3sKKysgIEdzdFFURGVtdXggKnF0ZGVtdXggPSBHU1RfUVRERU1VWCAob2Jq
ZWN0KTsKKysKKysgIHN3aXRjaCAocHJvcF9pZCkgeworKyAgICBjYXNlIFBST1BfQUxXQVlTX0hP
Tk9SX1RGRFQ6CisrICAgICAgR1NUX09CSkVDVF9MT0NLIChxdGRlbXV4KTsKKysgICAgICBnX3Zh
bHVlX3NldF9ib29sZWFuICh2YWx1ZSwgcXRkZW11eC0+YWx3YXlzX2hvbm9yX3RmZHQpOworKyAg
ICAgIEdTVF9PQkpFQ1RfVU5MT0NLIChxdGRlbXV4KTsKKysgICAgICBicmVhazsKKysgICAgZGVm
YXVsdDoKKysgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQgKG9iamVjdCwg
cHJvcF9pZCwgcHNwZWMpOworKyAgICAgIGJyZWFrOworKyAgfQorK30KKysKKytzdGF0aWMgdm9p
ZAorIGdzdF9xdGRlbXV4X3Bvc3Rfbm9fcGxheWFibGVfc3RyZWFtX2Vycm9yIChHc3RRVERlbXV4
ICogcXRkZW11eCkKKyB7CisgICBpZiAocXRkZW11eC0+cG9zdGVkX3JlZGlyZWN0KSB7CitAQCAt
Mjk5NSw2ICszMDUwLDE2IEBAIHF0ZGVtdXhfcGFyc2VfdHJ1biAoR3N0UVREZW11eCAqIHF0ZGVt
dXgsIEdzdEJ5dGVSZWFkZXIgKiB0cnVuLAorICAgICAgICAgICBzdHJlYW0tPnNhbXBsZXNbc3Ry
ZWFtLT5uX3NhbXBsZXMgLSAxXS50aW1lc3RhbXAgKworICAgICAgICAgICBzdHJlYW0tPnNhbXBs
ZXNbc3RyZWFtLT5uX3NhbXBsZXMgLSAxXS5kdXJhdGlvbjsKKyAKKysgICAgICAvKiBJZiB3ZSdy
ZSBhbHdheXMgaG9ub3JpbmcgVEZEVCBhbmQgdGhlcmUncyBhIHNpZ25pZmljYXRpdmUgZGlmZmVy
ZW5jZQorKyAgICAgICAqIGJldHdlZW4gdGhlIGRlY29kZV90cyBhbmQgdGhlIHRpbWVzdGFtcCwg
cHJlZmVyIGRlY29kZV90cyAqLworKyAgICAgIGlmIChxdGRlbXV4LT5hbHdheXNfaG9ub3JfdGZk
dCA9PSBUUlVFCisrICAgICAgICAgICYmIGFicyAoZGVjb2RlX3RzIC0gdGltZXN0YW1wKSA+Cisr
ICAgICAgICAgIHN0cmVhbS0+c2FtcGxlc1tzdHJlYW0tPm5fc2FtcGxlcyAtIDFdLmR1cmF0aW9u
KSB7CisrICAgICAgICBHU1RfSU5GT19PQkpFQ1QgKHF0ZGVtdXgsCisrICAgICAgICAgICAgImRl
Y29kZV90cyBpcyBzaWduaWZpY2FudGx5IGRpZmZlcmVudCBmcm9tIHRpbWVzdGFtcCwgdXNpbmcg
ZGVjb2RlX3RzIik7CisrICAgICAgICB0aW1lc3RhbXAgPSBkZWNvZGVfdHM7CisrICAgICAgfQor
KworICAgICAgIGdzdF90cyA9IFFUU1RSRUFNVElNRV9UT19HU1RUSU1FIChzdHJlYW0sIHRpbWVz
dGFtcCk7CisgICAgICAgR1NUX0lORk9fT0JKRUNUIChxdGRlbXV4LCAiZmlyc3Qgc2FtcGxlIHRz
ICUiIEdTVF9USU1FX0ZPUk1BVAorICAgICAgICAgICAiIChleHRlbmRzIHByZXZpb3VzIHNhbXBs
ZXMpIiwgR1NUX1RJTUVfQVJHUyAoZ3N0X3RzKSk7CitkaWZmIC0tZ2l0IGEvZ3N0L2lzb21wNC9x
dGRlbXV4LmggYi9nc3QvaXNvbXA0L3F0ZGVtdXguaAoraW5kZXggNTNiZDA3MS4uZWNmMGM2MyAx
MDA2NDQKKy0tLSBhL2dzdC9pc29tcDQvcXRkZW11eC5oCisrKysgYi9nc3QvaXNvbXA0L3F0ZGVt
dXguaAorQEAgLTE1NCwxMiArMTU0LDIwIEBAIHN0cnVjdCBfR3N0UVREZW11eCB7CisgICBndWlu
dDggKmNlbmNfYXV4X2luZm9fc2l6ZXM7CisgICBndWludDMyIGNlbmNfYXV4X3NhbXBsZV9jb3Vu
dDsKKyAKKysgIGdib29sZWFuIGFsd2F5c19ob25vcl90ZmR0OworIH07CisgCisgc3RydWN0IF9H
c3RRVERlbXV4Q2xhc3MgeworICAgR3N0RWxlbWVudENsYXNzIHBhcmVudF9jbGFzczsKKyB9Owor
IAorKy8qIHByb3BzICovCisrZW51bQorK3sKKysgIFBST1BfMCwKKysgIFBST1BfQUxXQVlTX0hP
Tk9SX1RGRFQKKyt9OworKworIEdUeXBlIGdzdF9xdGRlbXV4X2dldF90eXBlICh2b2lkKTsKKyAK
KyBHX0VORF9ERUNMUworLS0gCisyLjYuMQorCmRpZmYgLS1naXQgYS9Ub29scy93cGUvcGF0Y2hl
cy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1wdXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlm
LXRoZS0ucGF0Y2ggYi9Ub29scy93cGUvcGF0Y2hlcy9nc3RyZWFtZXItdHlwZWZpbmQtT25seS1w
dXNoLWEtQ0FQUy1ldmVudC1kb3duc3RyZWFtLWlmLXRoZS0ucGF0Y2gKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmI0NDZiZDU0NGMzCi0tLSAvZGV2L251bGwKKysrIGIv
VG9vbHMvd3BlL3BhdGNoZXMvZ3N0cmVhbWVyLXR5cGVmaW5kLU9ubHktcHVzaC1hLUNBUFMtZXZl
bnQtZG93bnN0cmVhbS1pZi10aGUtLnBhdGNoCkBAIC0wLDAgKzEsMzIgQEAKK0Zyb20gNWU0M2Vl
NTk4OWQ3YjUxZGNiMzE0NWJkOTk3NTI1MjQ3YTNkNjJkYyBNb24gU2VwIDE3IDAwOjAwOjAwIDIw
MDEKK0Zyb206ID0/VVRGLTg/cT9TZWJhc3RpYW49MjBEcj1DMz1CNmdlPz0gPHNlYmFzdGlhbkBj
ZW50cmljdWxhci5jb20+CitEYXRlOiBXZWQsIDExIE1heSAyMDE2IDE1OjA2OjM5ICswMzAwCitT
dWJqZWN0OiBbUEFUQ0hdIHR5cGVmaW5kOiBPbmx5IHB1c2ggYSBDQVBTIGV2ZW50IGRvd25zdHJl
YW0gaWYgdGhlIHNpbmtwYWQgaXMKKyBub3QgaW4gUFVMTCBtb2RlCisKK1RoZSBvdGhlciBzaWdu
YWwgaGFuZGxlcnMgb2YgdGhlIHR5cGUtZm91bmQgc2lnbmFsIG1pZ2h0IGhhdmUgcmVhY3RpdmF0
ZWQKK3R5cGVmaW5kIGluIFBVTEwgbW9kZSBhbHJlYWR5LCBwdXNoaW5nIGEgQ0FQUyBldmVudCBh
dCB0aGF0IHBvaW50IHdvdWxkIGNhdXNlCitkZWFkbG9ja3MgYW5kIGlzIGluIGdlbmVyYWwgdW5l
eHBlY3RlZCBieSBlbGVtZW50cyB0aGF0IGFyZSBpbiBQVUxMIG1vZGUuCisKK2h0dHBzOi8vYnVn
emlsbGEuZ25vbWUub3JnL3Nob3dfYnVnLmNnaT9pZD03NjU5MDYKKy0tLQorIHBsdWdpbnMvZWxl
bWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMgfCA0ICsrKysKKyAxIGZpbGUgY2hhbmdlZCwgNCBp
bnNlcnRpb25zKCspCisKK2RpZmYgLS1naXQgYS9wbHVnaW5zL2VsZW1lbnRzL2dzdHR5cGVmaW5k
ZWxlbWVudC5jIGIvcGx1Z2lucy9lbGVtZW50cy9nc3R0eXBlZmluZGVsZW1lbnQuYworaW5kZXgg
YzY4NjQxMi4uNDUzZmY3NSAxMDA2NDQKKy0tLSBhL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZp
bmRlbGVtZW50LmMKKysrKyBiL3BsdWdpbnMvZWxlbWVudHMvZ3N0dHlwZWZpbmRlbGVtZW50LmMK
K0BAIC0xNzksNiArMTc5LDEwIEBAIGdzdF90eXBlX2ZpbmRfZWxlbWVudF9oYXZlX3R5cGUgKEdz
dFR5cGVGaW5kRWxlbWVudCAqIHR5cGVmaW5kLAorICAgR1NUX0lORk9fT0JKRUNUICh0eXBlZmlu
ZCwgImZvdW5kIGNhcHMgJSIgR1NUX1BUUl9GT1JNQVQgIiwgcHJvYmFiaWxpdHk9JXUiLAorICAg
ICAgIGNhcHMsIHByb2JhYmlsaXR5KTsKKyAKKysgIC8qIERvIG5vdGhpbmcgaWYgZG93bnN0cmVh
bSBpcyBwdWxsaW5nIGZyb20gdXMgKi8KKysgIGlmIChHU1RfUEFEX01PREUgKHR5cGVmaW5kLT5z
cmMpID09IEdTVF9QQURfTU9ERV9QVUxMKQorKyAgICByZXR1cm47CisrCisgICBHU1RfT0JKRUNU
X0xPQ0sgKHR5cGVmaW5kKTsKKyAKKyAgIC8qIE5vdyBhY3R1YWxseSBzZW5kIHRoZSBDQVBTIGV2
ZW50IGRvd25zdHJlYW0uCistLSAKKzIuOC4xCg==
</data>
<flag name="commit-queue"
          id="329556"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>308388</attachid>
            <date>2017-04-27 07:52:01 -0700</date>
            <delta_ts>2017-04-27 13:41:37 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews113 for mac-elcapitan</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>1916779</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
ZWat88ZNOneD0+WqHlR5YLxL804x8I8szvrL0G4PfHtUm/W63WTwEovoOA0O2eU+1lNFf2sGxTFf
eePNqozOyWvIj+1J0fTaDfMe56dusC0X9uHmRuPaq7SY9py4yZSVl7y7ruR8rLeNNF+f3rb5/jB3
HIuxWa9IbnZ6HJ8VZ6T7/XRSOv7qpbhjj/jdmSI81r1HWXcXqmVreW2MuzORvq43Sta/8lHceklT
+93cuPbFt23+6hR31yk8bAusXK09Cn1nYnv2sN3AkrZsNk28bIieRxtTn7/kKylUes42LV6G/mhx
a8X70PecNl1uj0O/NsS+y/50uOuvDo55aU/8KHQ25MC3L5dxIs/y3ptzqi3eRkWkdMre22gbK6N7
loWe2vMv7mXhzUbSwLHRRRb4oRNW0XWGwzC09y3XPbXs4bRZcy746Unf2yrOxdBZ3V57V220dTap
dpqMx4P2iXXzZFEox8lSm+zmtXV71Ihldtq97OXzvFG832zpPj3bCd/el/fJ9CPor3MtvXeKU/c8
HveF2eTF4Hyzd+riEpTzmtqdGbq3mi3KgXIx5hdzlR5GrqXclqN+7xp9ZM3VMZ2Pw82kt9xartwp
399fp85iYb2kfNr1a6ulpQWedVbzMpOuUitoppLR2WehumkPbzwX3txT8vFZPhu9LSs6bqNUePf8
ela6V7+hBrVOez0IOqm71HFRsea5u5gHHms5QbFpHUfb64eWr3Q1WqrlYT951bzR1ps0wqS1nbxd
7WbTr3UC42Dot1fhhnrItH5vKC+a98z7cPay09srjvme3SZunJ3Zq9zaWsuuI38ylN/3fuWn/wJQ
SwMEFAACAAgAwyybSu0rE3nvCQAAOxIAABUAHABfd3B0X2NlcnRzLzAzRTBCMi5wZW1VVAkAAy3m
AVkt5gFZdXgLAAEE9QEAAAQUAAAAnVZrk6LIEv3ur/Dj3XBnLd6QEfuhALW1xfZt67cCCsUHtIrP
X38zmd0eZ9vZG3GJiQmbojKzTp46Jz15KNIkjUQhoVLFxxeF+P6Lnqk8HNM8g6pW/Q+7qr99Lozk
IRXbau+0C+UBqqqhKxqjbzTJwsfv0mUmitNBVvl2mR/SYrWD6nElVMOc4R/DEW9k0eH2UWCWz03t
4/FEUb3enxcZfvvYiiLJD7tvhTwWxx+1iW0ap8Xt8wU9vbyouhK/llDlH4eqalUVFTQbmFFVmWJV
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
ZC1wYXJhbWV0ZXJzLXN0ZGVyci50eHRVVAkAA93zAVlc5gFZdXgLAAEE9QEAAAQUAAAAQ291bGQg
bm90IGdlbmVyYXRlIGEga2V5IHBhaXIsIHN0YXR1cyAtNDMwNApQSwMEFAACAAgAjzSbSjA7uLFL
AAAAaAAAADwAHABjcnlwdG8vc3VidGxlL3JzYS1pbXBvcnQta2V5LW1hbGZvcm1lZC1wYXJhbWV0
ZXJzLXN0ZGVyci50eHRVVAkAA97zAVle5gFZdXgLAAEE9QEAAAQUAAAAbcuxDYAwDETRniluHxpW
sGRLsYA4ci5EbA8NHfV/f0u/hIbd7o7pLDEIUXV6VDmgQoGkoQbRR2uRNF3Wj+OMN7JIBWegpZ/W
f4YHUEsDBAoAAAAAANMsm0oAAAAAAAAAAAAAAAAPABwAY3J5cHRvL3dvcmtlcnMvVVQJAANN5gFZ
MfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADTLJtKAAAAAAAAAAAAAAAAFgAcAGNyeXB0by93
b3JrZXJzL3N1YnRsZS9VVAkAA03mAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAgAAAIU0m0ol
4NMILAAAACwAAAAxABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL3JzYS1nZW5lcmF0ZS1rZXktc3Rk
ZXJyLnR4dFVUCQADyfMBWU3mAVl1eAsAAQT1AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBr
ZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQKAAAAAADSLJtKAAAAAAAAAAAAAAAADQAcAGRpc3Bs
YXlsaXN0cy9VVAkAA0zmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIU0m0qjV/3oUAAA
AI4AAAAyABwAZGlzcGxheWxpc3RzL2V4dGVudC1pbmNsdWRlcy10cmFuc2Zvcm1zLXN0ZGVyci50
eHRVVAkAA8rzAVlM5gFZdXgLAAEE9QEAAAQUAAAAcy9KLMjITC52zs8rSa0osbJKTy1xDvHV0FTI
LFbIyy9RqEwtUUjOzy1ILMlMyklVKM8syVAoSk3OL0rJzEsHyoC1FetxuaMbVIxmEDGGAABQSwME
FAACAAgAhTSbSvKWldVHAAAASQAAACkAHABkaXNwbGF5bGlzdHMvbGF5ZXItZGlzcGF5LWxpc3Qt
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
ZWJvYXJkL2ZpbGUtaW5wdXQtZmlsZXMtYWNjZXNzLXN0ZGVyci50eHRVVAkAA/rzAVl85gFZdXgL
AAEE9QEAAAQUAAAA7dbNattAEADgu59i8KEk0Hj9o9iOQCf/QGhwgmTXva52R9ZSWWN2V7QmBPwa
gfbl/CSV1KSEtqGF+lDsvUhomR3NzH4ITcLwNvRhylWGEizBCi3Y7QZBScytShRqoAQ0Giq0QOAW
FuENJGW8zxh7T1mxRsPG3HI2WUZsifE7ZdkN31Jh52isYSiVVfmKbbixGBPXko3D+ZR/xGmZBT4p
mwJqTRom9XVMa67yYBaNSBCv174vwYgkBt1+G5rzFOsaYL/78iLZfvcVBBWZzPe7RwsxAm0wLzuL
UfDCINgUddmbgZzAFCKtk7SasDCor/OEgvtZVPYXHK6/tzCLqvsdt2lwoHyLXKLOtmVQPZ2g/XmQ
XLUTr+0NeacN9z/N8e42uv7w6xyhOXsxBCh3SKVRWNLb5sNDq9F4tdqotlA9jUgjq7bzjWJVefWZ
tdbrs8veOfhgLLdKQEyUwVO471dxvm/S6qBC3GRc1J2dCcqNheV86vuR1WV38Oa8MXFCj0rooDNw
Qg8h9DmdYT+GcpGQvpCar1ZVaf/M9vd5/xfBf+r/IKz/5iWvWe95Pbxy1p31k7DudYbOurN+9NZR
9ody6DnrzvrxW4/FoJ+gs+6sn8B3veOJrnTWnfUT+F/v9r1LfmTWvwFQSwMEFAACAAgAqDSbSsxZ
KrHjAAAAdwEAACwAHABlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtbm9zY3JpcHQtc3RkZXJyLnR4
dFVUCQADC/QBWY3mAVl1eAsAAQT1AQAABBQAAAB1j0FLw0AQhe/9FXOSRKQDgghLCRRtLhaVpDTn
yWY2LqSZsDsR+u9NbEQRepz33vdmZlcUb4WBnHzHDagABfvhPxniWAeOMgbL4CSAmwIGEY/SjSeO
+ExKuKtKrLh+8Yp7OsuoB44akRuvvm/xpyAi1bwe+nZ1FS+/g/P0JIGxE2o44HIMWod7bsmeJ397
0dZ2GJKH+8cUDEQl9RYKdu8aNkuHMf+RDK5axtjApJxY6aNCdciNKTVMT8DN3S+WBzrxrFxiR7Yq
fxa+SsNwm82BqI0xbuyteuk3tUgHyUKnWbr6AlBLAwQUAAIACACnNJtK8TqfnOIAAAB7AQAAMgAc
AGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1ub3NjcmlwdC14aHRtbC1zdGRlcnIudHh0VVQJAAMK
9AFZjOYBWXV4CwABBPUBAAAEFAAAAHVOTUvDQBC991fMSRKRDggiLCUg2lxaVJLSnCe7k7olzYTd
idB/b2IjitDj+37rongrDOTkW3agAhTsh/9kiEMdOMoQLEMjAZrRYBBxL+1w4ogvpITrqsSK641X
3NJZBt1x1IjsvPrugD1F5VoouB9qeYyLqxXl99qEniUwtkKOA86H0Da45QPZ86g/Xbil7fvk4f4x
BQNRSb2Fgpt3Dau5w5j/kQyuSsbYwKScWOmiQrXLjSk1jK/h5u43lgc68cRcbHu2Kn8GX8Ux3GaT
Iaozphk6q166VS3SQjKn0yxdfAFQSwMEFAACAAgA2zabSq2vO+9QDwAAaoMAAA0AHABlcnJvcl9s
b2cudHh0VVQJAAMu+AFZKuYBWXV4CwABBPUBAAAEFAAAAO1de2/bSJL//z5FI7iZsYEhxX53Exgc
co5v4ttM4rOdzQFBEFBUS2JCkVqSsuNb7He/alKyHmHLkt9xNDPwQyarqn9VXVVd3dXz8Ww4QS/H
BSISBTykKgyITzWRWiESYPkJfSzLNLyIigx+HCc9RDnXn9DL1wHWgQ4RJtIP4F8cMkbDAJWmODcF
ik1RJf0kjiqDerkp0dt3ZyjJ4nTSMyjK0NErdDFM4iEaRVU8hL9XQzN7N4tG5t8+tgnGuBZB4BRM
BI1gStIQHWVJFaJTU5ZJnqGDCLigpERZXqE4z/rJYFKYHvo4TDL72Omb6ZP1g5+c7LXg17J/BFxE
oCmZCTYajz6PC9PPi68hDDeJzaqIARaA0MuxHWsHXvexQnvvs+TbPjp+fdzhPvepQm+SbmEAGXiC
+HIRNc9DhSknoyQbAKDFKEpRPjZFVAGApVtEcWVTcV4Yl2yBZiE6yEejKOuhNMlMiH7rTMqiU3aT
rDOsqjEI0Eedv+fpZGTKzquoijqHH047H0z3b0k1/fafkyTtdV6Z7mTQSaPLfFJ5lSkrz8qdVmVD
x7djQt4BepXHQCurTnIwjxdO0m9qQmdApyHQsSTLF8iL0dnl2JQHNUTbELACdEbJyPiVJVCTAhUc
vT16lRTbEqrfPpiUVT56k68TYzOIojiGOfE5zQd+9a16AQYwGsFUAh6HRZEXd8HCWEJzDnbwSe+/
ktSgTjUaz2g1urJWAg+8TJOoRJ0v5RWlfFKAoBuCdfX8iwViI9NLoq1J1W8tkcl7psi8hhoopCry
dFNivt85rbnbPx7A9Oj8lfcmKbzVSnWR7ZXctTkOwSWB2vy43BqS1fevZ/Lldjy+XM+iMOO8qG7J
6IrICzvZ34M/RS+61jS7eVV/9CYpK5MtOG0FfmjhDx/DEH9a/XDxadX2tHI8DRHh+6frD2MbiQ7m
MaKZCtt5kwvT/ZpU3nTSmNFvqw6Z4ZCCyw9IMA9mYT0TZ75YqNpJpwm4xMVIpjkHJ13GRTKuwClv
5yY7YFEL6ukZcAimd5AUcWr88XD8Wx2b+/kE3H5eoEkWdWHwVY7KKqp+h4DTN4UpQmQphp3Osq5q
4nn3i4krrw+jn1L3ktHAK88H/rAapS04MO5DSFcaXwWmQbIMhSL0E9qTwELtH0egGIh1U++FosKg
8yiFx7qTCo2L3PpLGxMhz4CYno/GqakgfLUhKShvsgVCeNg4VKAb9ezrhfnHBBBD8E5SXaIewNsi
O4egqrEMlEOHGrt0KG6uwyX9weC8MQh8e+1l0XkyqNOHjiXoRVVVJACq6URZPMwL8Hv518S41AhQ
KEEloTMoMjOA5KImuIyKZLwdFYlJk36A7Yfo7cL7qJeUcQ4JGCQ+fZiPe+V+k50tqCpE2wI5AqIL
aEZx0qOdcjK2jsqL/DHQ3nubZwai7iQFAzNoNibT2/evBbQmXxN1Ykb9gChNdLv5gMU7gLIIQoqC
PoBvBQhCBMqGNO3rXuc8Kjr9PIVwVXZk1ikFiQkecjbmTKfxOOPnYO6jGOQLBlnnrOPN1e4tq92b
qb3Iy9LLi2SQZF6/yEe1WyvrMfm16UHesA/6AjubQNZs9WPNr5cU4Any4hLm4daqWTBGp7kjSIRs
borYiirKZV2AV9/AuNeMsl1zSgssyU0m/mNo7gmr6yauaHVkbSqC+EoU1fxn8M3Np1nPAwtK8wvI
oxt9ehdDk3mlyWxQa4RxwcV9QjBj6ilbdAnL72dp0KsDa1cQJYy4XI60JaFWBekfyp4hAbsu0+A+
kzRgrB0IRbArapJHBmK7wFQjsWVY4j5XRBD2E9jIJiGA+0IrjPXzh+NaB0JsBVAEXEjqXGhJ6Ug4
xTQzxwTDSgkW7yjvwwCSLLGLseT/IC2HRdjEWFcLC2C7bM5qWdGev28HW4KwkE5H1daeuDTxpIAl
mF1YA9XKFvnejesq5wLUjbK8i6QaekNYwpnCH6eNd8bCDx+S67WaXEc7y8ss6fe9Bcq2YDd90rMF
Sq+b5vFX01ujZik0x4FLzQxTR2lBMbmZmv/98O3f//ni9dnZ8ef3x3+evHx1+Pno7enhwfuTw88n
h//z/vD07PTFvx7AGk6nvx/naRJfdibjQQFq8JKsftB407XhotIMBNzGi65airoDQ7kjgbY2oo35
LjLyykl3JofTnKjPgSFzrlFd0ZbeS16YjKKB8dI86sHYvDH8MkxgnEPIfVNA7gdNCjcYVZtq7KaR
Ioo8RdUARfvTs1JMy5ja1KJ8xQQVTgdMtaCOOKvU1g743cnRn0dv79fbNonF69ppLEA8BsLVLOuA
Ud6BG92Q0+b+cYngNJGeer8+LLwGpnLpEUMgDbjUZE1hemGGhSEknMAaVHtoM7z+LIOE8Y4nFera
3WCDGt5liJqtvdlukteNyiS24nj9KEm9DCZUmdjq9UbD/TZK7R+mXr5zkRdf7RReLG5uyO1L2QaF
9TRCUOZOHUVrUdcCsn1O8b+fzyCD+Pz6EBKLE3wvpr0KmOl60XhcdiDS1Zuac3NmNzDnTahvrdMF
Ik6TZb5UQiradg5hSV8LxxBwODvdAAuJeAgK+Sv6dtJw/dAYEjxQVYD071YNJYQmeDZK6n0WezjC
+XybiNrXAefcuQphFOvvZhVmT2BWbUzboR2ifZhEUrkdirYliuWhMxxsPX9OD88+H7x797ejw3uZ
O015ZmkhZKqD5sP5vMH4BhPnOtK3zYubXejlskqWTwtOZVMthVhzDmh53SK/sCbumXql3rNZRItW
KfYpVtRRc2GY43bHSOQtigwrljmHa1b4vX3BYYXFEmRX5WVgPAaPYN6fvHFZvcWHsUDpHT5OfLgg
Uu3wacdH+ZJiTLFrlSPa8WEM3xyf1hVFaXdW7ArAOoWG8p3W9Zbo20VgU1mqP56za4NI+1JiyagD
Iq3bIeIBvgcTmnreO7cgiwy8B+7bnNtimA2BLqNh1GcSUndnqGUBC74PtYtVzg+Q5qB4GBVRXEG+
A2G0XoTcah31rSxfTnoJrHNX6z9A2RRVNPB6Js5h6Y9FN6lgwZnY364qVPJWtcybc9887C7wmNYw
LdnajpeIUpfmOPZBE4o5tm21EKtqE7fZsL0SfI7IoDCQBSR9rx4zDNpLrjYarrPptgERPwAHxp3b
VY7JKezuxO03IcDQ6yLGDUXHIHjgEF23bxeAX8H8DjTiyuBmI4OE29ga0u0dzRYzBCbDf1g5/2h9
CX6E9DGvILTVm9hRUSeQ0wXbr/a0df/yFcj9B/61PrU2LUX8wX79xx+/0IMGs1/oYZQCt73TOkX3
7b7fATiiA5g3e8E3rn6HL7T+sr8Pb3WuXoNfxvDtqP8LCQBc+FoaA1+rYVLCN9BCCaYAP0VZD75m
OXz57+g8Om0IwOc13/36FZM13+xXGDF8O355enr4yrcsLZt2iyGEKv6wFnM+WFAXpO1fzbQaeUOj
ZxgyVuHeP3GlZFzttsnufptsVB/Ctss0e0i/3gNzBg/icyEEl+25NCjI4WsFvp8QAkLPosgNbRHG
o7FrbekquglBnnhI1BQLpZ5WjO9P0tSbFOn2Q6IhEz7VEOcD11GDdsdHNf7uKGdTq0aj6HLWKVVF
4DDevn+DupcwopvskDiT9ZWaVlSfHksTeGdp00R8P13TPI7SYV5Wrcn6nMN0yWe+QR7tzQ7tAvRF
NHLM4xpNRgUhfIfmrdFkIZe+VIqRNScC2gEVlNDF6uNBfQ7awjgwFQLRisvw7sAbw+g9m2zdpDZr
jzjC2qJn+gBwrz4KmcF0XgOJChgRegdJA4kICfYZVwrLbSHhUvDFbcs9TPePTTFKmrbPnskS0wuR
+WZimw/dXaEhyw+atOONyQbV0GL0G7K1eMvuPrlsq4nlX5uCc3OgJ61penl2XOQQk8pyvXY0C26o
nY02T57AUDmv988JDGe7ZlodojiaDIYVOj368+zw5K/fUTmc1LtQqJdfZMuMREg5/AeMVCCko52Y
YDnbj3+4fuKZZJoR5WwAt5Lp+2m0nvOnROvr+T8GMgwy+WuNYy7jA7ZaL8o4L8d+32q9INyu13rX
a73rtd71Wu96re+l1xo8sg4D7QsqhW6voxCsceuBPK614s+l2boGAiufB5wo57oHsNDsHrqtRRBQ
cvNu61p4IvxAQGIoHFpUsnUrBVhr/YzarWdYiEBqx9lfAv+IdiywErve4cfqHZ6pThNO9M3MeNc8
fM/Nw42OpI8DJR2d+c/N1dyqe3iGlyRUiWtvfyCw8nF5puDnuf6hAU35RASEqyftCH7SnuuZhhil
ynGw6vm4gbVN1zMkBIfMjTvyDUy1K99gz7jreoaNVGqhUeQ5W8kmwVPZBEcF8ifAYwMnQuuLG7Bk
zlQdO6aOVLsWyntroWx0I3xGKON4zXq4vVsaAvemnRm70z6P2RQ/07PSoDD5JOfgT9kr2+hF+Zgz
PD8J1Db/HNGCBnp3W8HutoIle2LYV7B+dF9+AfZEXJmqbTLcNV8/evN1o0jhExZI93kH67Ll8jFB
EUBu/7y6r2dYMKaFEGuwCLQrSRG79usHaL+uFWX7JRjY7BpFYdlitPzHbm5uxi5h7MGavm6wUSZW
xy523c1PtrtZhCyw1/9QDQtzV92HEsfqSAj13NtTZwCxQHEpdwC5AYJU3XEJ3w6gMBA+5VI4LhEn
pL4BohWg29wE/8N0ONcYgbuVAhPi2u4OsGrHSN/m0s+n2uLcQAIBlxN76GZNVqhWA65SYtfj/Ig9
zrXqCPcJ18y18QdJIl/RGw40fqIdXbMRcY6ZwK6Sf/sVBHZc7BG7nOeya4kD1+EwSl2y0ycguyQ4
cB2JWl5uLMm+a9H++Vq0ZyajFV5ofXoYk7mrHu1mDMLHGkP+45qymrumrHhqjb4LA9LUPY+Ja0Dy
SccF4XNCpJBPLNLdsNW3GZP2OcOUrKl0UK0c6pJ4t2f4SDcECHslvD0ArTVx3CYFmpPtmgOF411r
cRucgmvO2A7O28NZ3xAJq1zsvqLftiq033cmFNPPrS/5ChPIVjTeYTLFhNqNBgkzaN3umKMiwjG3
e2S7Zu176mBeUA+V9Kbq+TG6tUXImb2EntGAzFegmzXkbtuuDZzs/ygSKz5veVltSqb1zcEP3ZQ8
lUwxtU4yEtxXu/aMPydMX8//MZARZH6DnNs6rmR80HbtuYwMr2nXngu3a9fetWvv2rV37dq7du17
atcGj2z/152C6Pn1J5tFjWtziv8HUEsDBAoAAAAAAGAtm0oAAAAAAAAAAAAAAAAFABwAZmFzdC9V
VAkAA1PnAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAOUsm0oAAAAAAAAAAAAAAAAQABwA
ZmFzdC9hdHRhY2htZW50L1VUCQADbeYBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAljSb
SitkeoVyAgAATCIAADUAHABmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1sYWJlbC1oaWdobGln
aHQtc3RkZXJyLnR4dFVUCQAD6/MBWW3mAVl1eAsAAQT1AQAABBQAAADtl99q2zAUxu/7FIfARgtz
bad/shpy1aZQVtISN+tuT+zjWOBImXS8LpRCX2OwvVyfZLK3iyxdF6hTSFZhMEhIR/qOfh866g0G
F4MITlEUlAIrGBMDz6YEIiXJIhOkQWWgyahSJwTIMBycQ2bHR77vf1RFOSHjnyCj37uO/WsafRDs
n+NMlXxFho2foWEfmTHJJzamb3KlGW4E50BaKw29+n+iJihktx8fq0Rh3ferC45VSt32YQCtq5zq
peHh/nsd5uH+BySqLFL5cP+NYUSgpiStlBElWBoCzklbMQakAlMmeT19twVDQ/pMZqp724+toG5j
Qe+gH5/aIJfIebdZmKFMSRczIcd1FrrB106WYrafhtQJA7hdyNflRXz26XG+oNWfkwx2Rio0Jaz0
rHV3t7u19eQm4/qoq9ax0uRX03Eq/EpdfTa7k8n2wd4ORGAYWSQwUqqA38OjqBoXRVaNPZYBTQtM
qOraTpQ0DNdXp1EUs7bq4O3OVs8BuEkAHmVtB+BqAHzTDr6QnhVKjm+UTlfEI8zHXB84F8SuiFVY
jPk0uBiiA9eBu3ng0pG78puDO59ve6QrqgD+sMH6lAN/E9sc3Mdi/wFu8j6gfVcqOHA3EFzc23fg
Ngb3cymYPPSqzHtVIIkT8jhH9saKjKekV2Fs53soPZKpJ6RnxDhfAd7PX3stbPD87Tc3S7O1nzRV
eIjuNnCmcqZapamCo8A9apubCkelTHKVFcRM2tjCY6GnuXcWAy6018IgS9PQ3AdL0rAEdvcQdrC/
EthD+znYXxL2l6d9Q3B/ed6XA7/XCTujjgPeAf9agD8Isf2/lTM/AVBLAwQKAAAAAAAELZtKAAAA
AAAAAAAAAAAADAAcAGZhc3QvY2FudmFzL1VUCQADp+YBWTH4AVl1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAtTSbSmBN0YF9AAAAAgEAACYAHABmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3Rk
ZXJyLnR4dFVUCQADJfQBWafmAVl1eAsAAQT1AQAABBQAAADFzkEKwjAURdG5q3gbUGwbrAQRSitO
HKkzcRDpAwPJT/lNRV293YXDe0a3GRRljfXGVrU1BdBNcThTeupVyVtZbI25Y3dQTbq3aI9tksx3
vjCfvLBz49PCy8sF36OfC07VfSxcRqAbM5IQDIyUjDjN8CAkyfJLTatF8++BH1BLAwQKAAAAAABg
LZtKAAAAAAAAAAAAAAAACQAcAGZhc3QvY3NzL1VUCQADU+cBWTH4AVl1eAsAAQT1AQAABBQAAABQ
SwMEFAACAAgAETWbSkLQGHexAAAAzgEAADYAHABmYXN0L2Nzcy9wZXJzcGVjdGl2ZS1vcmlnaW4t
aW5pdGlhbC1pbmhlcml0LXN0ZGVyci50eHRVVAkAA9L0AVlT5wFZdXgLAAEE9QEAAAQUAAAAzY8x
C8IwFIR3f8XbtIMGwaF0bTuIg9KgnWv6LIEkLySvYv69FUVxd3C84+7jrm6afVNAi+edZugJIzhi
SMigrTdo0TEMyCVZPzL2kpNBuFCAuccQPSrWV1xS0IN2y9t8NRMnMqPFKKqOO1G3UjzhQtIYFD5U
SQGFilGUUn6BK1SmCx1rcivl/WKd55sMCriS7uFVLApDw9G912F/CDRt4bStFu/MRP7Y2az+6c30
rzfvUEsDBAoAAAAAAAotm0oAAAAAAAAAAAAAAAAJABwAZmFzdC9kb20vVVQJAAO05gFZMfgBWXV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACACoNJtK/lFToYkBAADgCQAAJQAcAGZhc3QvZG9tL0ZpbGVM
aXN0LWl0ZXJhdG9yLXN0ZGVyci50eHRVVAkAAwv0AVmN5gFZdXgLAAEE9QEAAAQUAAAA7ZTBauMw
EIbveYohh6WFErlbmhSBT2kCZUta7GSzV1ke1wJbE6QxbSiFvEahfbk8SWV3F5YtvexCYYsvghlm
fumf+dAsSa4SCXNlKsyBCW6QgbcbBJOjZVMYdEAFOPTUOI2gGFbJJRShXgohvlPV1OjFuWIlZutU
rDH7Zlhcqi01vETPXhTKs8ipFhzCEd8x3BouAZ0jB7PuPKdaGRsv0ilpUl3uNQVTyjH+Oo5guCyx
uxb2u6dfSvvdM2hqqtzud48MGQJt0AYnGWrVeAQu0QUvHiyBb3TZKYyGsPLoLmxB8f0iDX7if/Jz
BIt0HgSuFZfx30usbI6u2hp70w0gju4mhcrOMpxk0SSC+z9GdX2VXvx4OyoYLn6zCqEjNw41k9sO
Hx5Gg8G7D0y7DbfRlByKtl1tjGiddWsZ1fXB6ckhSPCs2GjIiCr4WS5lWyelL9t1JLiplMY2daDJ
eob1ci5lyi64gy+Hg1nP3X/AXRHI67nruftg7s6Ox6c9dz13H85dNP5s/90LUEsDBBQAAgAIAKc0
m0oMuE4acwEAAPAEAAA2ABwAZmFzdC9kb20vRmlsZUxpc3QtaXRlcmF0b3ItdXNpbmctb3Blbi1w
YW5lbC1zdGRlcnIudHh0VVQJAAMK9AFZjOYBWXV4CwABBPUBAAAEFAAAAO2SwUrDQBCG732KoQdR
kG6xVtuFnGoLolRJWut1s5k0C8lO2Z2gRYS+hqAv1ycxiQqieNGLiJeFGf75d76ZGYfhRShhokyO
CTDBEhl4vUIwCVo2qUEHlIJDT6XTCIphHp5DWumlEOKK8rJAL04UKzFeRGKB8Zlhca7WVPIMPXuR
Ks8ioUJwFXb4luHGcAboHDkYN+8JFcrYYBqNSJNqci8pGFGCwcFRF9qzDJtvYbt5fHPabp5AU5kn
drt5YIgRaIW2IolRq9IjcIauYvFgCXyps8ah04a5R3dqUwruplHFE/yIZx+m0aQyuFScBd+3mNsE
Xb42dtkMIOjeHqcqHsSDw2G314W7D6O6vIhOrz+PCtrTd6hQVSTGoWZy6/b9fafV+rLBqNlwHY3I
oajL1cqImqxZS6codvu9PZDgWbHREBPl8CqXstZJ6bN6HSGucqWxTu1qsp5hMZtIGbGr6GBnrzX+
v7vffnfDfr/XG/6xu3sGUEsDBAoAAAAAAPssm0oAAAAAAAAAAAAAAAAaABwAZmFzdC9kb20vTXV0
YXRpb25PYnNlcnZlci9VVAkAA5rmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALA0m0pL
G4E1pwAAANIAAAA/ABwAZmFzdC9kb20vTXV0YXRpb25PYnNlcnZlci9kYXRhYmFzZS1jYWxsYmFj
ay1kZWxpdmVyeS1zdGRlcnIudHh0VVQJAAMb9AFZmuYBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE
4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwA
kxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QT
Vi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBAoAAAAAAAot
m0oAAAAAAAAAAAAAAAAQABwAZmFzdC9kb20vV2luZG93L1VUCQADtOYBWTH4AVl1eAsAAQT1AQAA
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
AgAIALU0m0p1lVnVdgEAAFgFAAAzABwAZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZp
bGUtc3luYy1zdGRlcnIudHh0VVQJAAMl9AFZpeYBWXV4CwABBPUBAAAEFAAAAO1SwUoDMRC99yuG
HsSCNrVitYE91RZEqbLbWq/ZZNYNbDMlmUWLCP0NQX+uX+LuqiCKN0/iJZDJzMt7b944ji9jCRNl
CzTABLfIwOsVgjXo2GYWPVAGHgOVXiMohnl8AVnVL4UQ11SUSwziVLES40UiFpieWxYXak0lzzBw
EJkKLOqBID5ggnDk9vHeBq5+gTvLOaD35GHcnKe0VNZF02REmlRTeyvBiAxG/UEP2rMcGxqw3Tx/
RttuXkBTWRi33TwxpAi0QlepS1GrMiBwjr7SF8ARhFLnDUq3DfOA/sxlFD1Mk0pj9Ksa92CaTKr3
K8V59HuQc2fQF2vrbhuTot79cZamg6EZDg/6PXj4YufVZXJ2891OaE8/WQHVhLEeNZNftx8fu63W
j4SThld9G5HHhq5aWVErbVbXXS53jw47ICGwYqshJSrgvV3Kuk/KkNfrinFVKI11aVeTCwyL2UTK
hH2lDnY6rfF/Vv9mVtMTY/5YVl8BUEsDBAoAAAAAABYtm0oAAAAAAAAAAAAAAAALABwAZmFzdC9m
b3Jtcy9VVAkAA8zmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIALk0m0ouX9jvewEAAPg5
AAAzABwAZmFzdC9mb3Jtcy9WYWxpZGl0eVN0YXRlLXBhdHRlcm5NaXNtYXRjaC1zdGRlcnIudHh0
VVQJAAMt9AFZp+YBWXV4CwABBPUBAAAEFAAAAO3YTUsDMRAG4Lu/Yk62grjehCCC1gpWirJbLIIi
Y3baBnaTNZmt7b83fhwKXvTm4b2EfM1u5jkkIeOyvC0NlbLsG47jTRclJRe8oYfzsiQb2s41QgvO
ZU1vTlc0uPZrblxN8SuIZCeq9y2rXeW5HUfxupIkabBX3IembyUVl6xcjOdVMZeXG6dFFfpopZjw
misbXaejEKXYcozFjzUd2a4bnhwfkKGktTG9d6+9PHcaTyfVyJiHHGXMxVbFhlruWFWiP6OdsZ9p
mrvo1qxizHeqQxt8UprProypNDq/pP3Dr+ZMNjriJJX45NStnW4Pd78+7Rt1jfMyzb8/2BuDFrSg
BS1oQQta0IIWtKAFLWhBC1rQgha0oP0F7SOxkviawiLjfiYHWMACFrCABez/hm1druTl5Kxa51k/
6k+0CJHsiiPb3E+24YS7ArjBDW5wgxvc4AY3uMENbnCDG6/NoAUtaPF+h4MN3ODGjgxa0IIW9wgc
bOAG99+53wFQSwMECgAAAAAABi2bSgAAAAAAAAAAAAAAABAAHABmYXN0L2Zvcm1zL2ZpbGUvVVQJ
AAOs5gFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAC2NJtKrcpjIjMDAACMbwAAMgAcAGZh
c3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LWNoYW5nZS1ldmVudC1zdGRlcnIudHh0VVQJAAMo9AFZ
puYBWXV4CwABBPUBAAAEFAAAAO3dQWvbMBQH8Hs/xSOH0cKIbVm2G0NObQplJS1Ju+4qy1JjSKxg
K6xJKfRrDLYvl08yx8uhbJQdGpA3/peQGEex7B9+ek+2M5pMricpXYhirnKyhh6UJbteKipyVdpC
F6oio6lStVlVUpGwdDe5It2sn3qe99nMVwtVe+fCCm90P/XuVfapsN6VWJuVvVW1rT0tautpUy2a
t83Xmrembx8tfS3sjFRVmYpG7eu5WYiiHI6nZ0Ya0S77tYjOTK6GLPapdztT7Y/T9uX7vqHtyw+S
ZjXPy+3LN0uZIrNUZdOdTEmxqhXZmaqaDtVUGqpXctY20O/RXa2qy1Kb4dN42nRqeIBOfaTx9KL5
fCPsbPjehu7KXFXzdVE+tPti6D8mOstikfNAMp+efttrN9fTyy9/7jXqjV91m5pv5EWlpDXVuvf8
3D86enMzp+0h3306M5VqN08sC2/Xv/YI9ReL4yg8oZRqK2whKTNmTvvV03S3XprWs92hmajlXEi1
W3QsTVlbur+9SNOprZre0YeToxEg/oMQQ8ZPAfHdEDNRHQbivqFOQNxvy/shvmroLYhKxlwDIiB2
AGIsABEQXUMU0SDPAREQOwBRh4CIZMVtspL4kZ/4GCMConOIPBA5B0RAdF2+aUJzIAEREDsAMRsA
IpIVx8nKIB8MggwQAdE9RIE6IiC6hpgELGSnOCMCYgcg+grJCpIV58nKaaQZLnoAROd1xCQIWAKI
gOgcIgt8FLQBsQMQQ0zxIVlxnqzsIEqEZkB0njUHzI8ws4LQ7Do0NxADjYI2IHYAIvNxRgRE53VE
JTnHGBEQXUMc6CjTKGgjWXF+q4DmKkH5BhCdZ81+6OeYa0Zodj5GlEmUIDQDYhcghpjiQ2h2PkaU
CdcRIAKi6ym+OAhlAIgHgLg5FMRNhyBuDgVx81eIjAc4IwKie4iB1DEgIllxPcUX8ihGHREQOwCR
xyjfIFlxXtAOuRAo3wBiFyDmuJ0UEJ3XEXPOQowRAdE5xKw5IWKMiGTF+c1TjA1wGRggdgGiwNPA
EJo78OhinuN6REB0P9cc+XGGKT6E5i48Q1vgn6cA0T1ExqP/raD9E1BLAwQUAAIACAC3NJtKnJXa
uXIBAAASBQAAKwAcAGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LXJlc2V0LXN0ZGVyci50eHRV
VAkAAyr0AVmn5gFZdXgLAAEE9QEAAAQUAAAA7ZLNSgNBDMfvfYrQgyhIp35VHNhTbUGUKrut9To7
m3UHdidlJosWEfoagr5cn8TZtQdRPOlF8TIkf5JMfklGcXwZSxgrU2IGTHCLDLxcIJgMLZvcoAPK
waGn2mkExTCLLyAP8VIIcU1lXaEXp4qVGM0TMcf03LC4UEuqeYqevciVZ5GTq4IZ0oJJPb5nuDNc
ADpHDkbte0qVMjaaJEPSpFrtTYIhZRjtD/rQnRbYfg7r1fOm0Hr1AprqMrPr1RNDikALtAEnRa1q
j8AFugDkwRL4WhdtgV4XZh7dmc0pepgkASr6AahdmCTj4F8pLqLvFprZDF25NPa2nUXUvz/O03Sg
TgZ7Byd9ePgwtavL5Ozm89SgO3mHDSEjMw41k1t2Hx97nc6XbSbtyhtvSA7b9tTCiIav3VCvqraP
DnZAgmfFRkNKVMImXMomTkpfNKuJcVEqjY20rcl6hvl0LGXCLtDB1k5n9H+Iv/EQD4/0HzvEV1BL
AwQUAAIACAC3NJtKflou3HEBAAASBQAAPAAcAGZhc3QvZm9ybXMvZmlsZS9maWxlLWlucHV0LXJl
c2V0LXVzaW5nLW9wZW4tcGFuZWwtc3RkZXJyLnR4dFVUCQADKfQBWafmAVl1eAsAAQT1AQAABBQA
AADtksFKA0EMhu99itCDKEinKFYc2FNtQSyt7LbW6+xs1h3YnZSZLFpE6GsI+nJ9EmfXHkTxpBfF
y5D8JJl8SUZxPIsljJUpMQMmuEUGXq8QTIaWTW7QAeXg0FPtNIJiWMQTyEO8FEJcU1lX6MW5YiVG
y0QsMb00LCZqTTXP0bMXufIscnJVMENaMKnH9wx3hgtA58jBqH3PqVLGRtNkSJpUq71JMKQMo6NB
H7rzAtvPYbt53hXabl5AU11mdrt5YkgRaIU24KSoVe0RuEAXgDxYAl/roi3Q68LCo7uwOUUP0yRA
RT8AdQjTZBz8K8VF9N1CC5uhK9fG3raziPr3p3maDhTqQT/tw8OHqV3Nkoubz1OD7vQdNoSMzDjU
TG7dfXzsdTpftpm0K2+8ITls21MrIxq+dkO9qto/OT4ACZ4VGw0pUQm7cCmbOCl90awmxlWpNDbS
vibrGZbzsZQJu0AHewed0f8h/sZDPD05+2OH+ApQSwMEFAACAAgAuDSbSsaGnutxAQAAEgUAAC8A
HABmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2Utc3RkZXJyLnR4dFVUCQADK/QB
WajmAVl1eAsAAQT1AQAABBQAAADtks1KA0EMx+99itCDKEinKGod2FM/QJQqu631Ojub7Q7sTspM
Fi0i9DUEfbk+ibOrB1E86UXxMiR/kkx+ScZxfBlLmChTYgZMsEQGXq8QTIaWTW7QAeXg0FPtNIJi
mMcXkId4KYS4prKu0IuRYiXGi0QsMD03LC7UmmqeoWcvcuVZ5OSqYIa0YFKP7xhuDReAzpGDcfuO
qFLGRtNkSJpUq71KMKQMo4PjPnRnBbafw3bz9FZou3kGTXWZ2e3mkSFFoBXagJOiVrVH4AJdAPJg
CXyti7ZArwtzj+7M5hTdT5MAFf0A1D5Mk0nwrxQX0XcLzW2Grlwbu2xnEfXvTvI0PT7NTtUA+3D/
YWpXl8nZzeepQXf6DhtCRmYcaia37j489DqdL9tM2pU33pActu2plRENX7uhXlXtHh3ugQTPio2G
lKiEt3ApmzgpfdGsJsZVqTQ20q4m6xkWs4mUCbtABzt7nfH/If7GQ8TDwR87xBdQSwMEFAACAAgA
tzSbSqY38H9yAQAAEgUAAEAAHABmYXN0L2Zvcm1zL2ZpbGUvZmlsZS1yZXNldC1pbi1jaGFuZ2Ut
dXNpbmctb3Blbi1wYW5lbC1zdGRlcnIudHh0VVQJAAMq9AFZqOYBWXV4CwABBPUBAAAEFAAAAO2S
zUoDQQzH732K0IMoSKdUtDKwp36AKFV2W+t1djbbHdidlJksWkToawj6cn0SZ1cPonjSi+JlSP4k
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
AQmeFRsNKVEJu3IpmzopfdGsJsZVqTQ2qWNN1jMs51MpE3bBHRyddCYHEL8iiKOz0QHEvUFMlXsf
EHdCnwLEXS/7g/hM6C0Q9WiA5wcQDyB+PIjniN8MxCdQSwMEFAACAAgAujSbSlT3baapAQAA/AoA
ADwAHABmYXN0L2Zvcm1zL2ZpbGUvc2VsZWN0ZWQtZmlsZXMtZnJvbS1oaXN0b3J5LXN0YXRlLXN0
ZGVyci50eHRVVAkAAzD0AVms5gFZdXgLAAEE9QEAAAQUAAAA7ZLRatswFIbv8xSHXIwWRuSotGEC
X6UJlJW02MmyW9k+rgW2j5GOWUMp5DUG28vlSSp7pWzdepdBu+VGSL+ODuf/9c2i6CpSMNemxAyY
4AYZeNMgmAxrNrlBC5SDRUetTRE0wyq6hNzXKyHEJyrbCp0416zFbB2LNSYfDYtLvaGWl+jYiVw7
FjnZym/9M8FebTQX437XSeMR3zJ8MVwAWksWZv16TpU2dbiIp5SS7rUfEkwpw1CeBTBcFtgPA7vt
t1/a7bbfIaW2zOrd9itDgkAN1t5kgqluHQIXaL1NBzWBa9OibzMawsqhvahzCu8Wsbca/gWr72ER
z/3h2l+F+268qjO05cbUN31iYXA7yZNkEpzJU4kB3D3L9voqvvj8e7YwXPwUC/gXmbGYMtnN8P5+
NBi8OHbcg9KdpmSxH1c3RnR++38cVdXR6ckxKHCs2aSQEJXwWK5UV6eUK7qvi7ApdYqddJRS7RjW
y7lSMVvvDt4dD2YHfP8bfMdZ8OGA797wlU/Ry/3iK18dvs+s7g/fPzR+CV8pEzk54HvA963iOzkZ
/2P4PgBQSwMEFAACAAgAFi2bSgtIydCaAAAAzwAAADMAHABmYXN0L2Zvcm1zL2Zvcm0tYXNzb2Np
YXRlZC1lbGVtZW50LWNyYXNoLXN0ZGVyci50eHRVVAkAA8zmAVnM5gFZdXgLAAEE9QEAAAQUAAAA
fY2xCsIwFEV3v+LNhZakTWzJVtBBcCqiQ+kQmmcb0Bd9SRH/XpHOrpdzzi2FrHOh8rIGoY0SRqlC
lhJ2y/3RITnkEyP21VY0RmvZVHqALMsg79tzGyOmDmNYeMRjsM7T1OFzwZjg6snHeR0vPs175sBm
gJeNEJESpACWwFNMlkaEcIX/xTTb9LPtjdG693qBroDDRIG/aLH5AFBLAwQKAAAAAABBLZtKAAAA
AAAAAAAAAAAADAAcAGZhc3QvZnJhbWVzL1VUCQADGecBWTH4AVl1eAsAAQT1AQAABBQAAABQSwME
FAACAAgA8jSbSksbgTWnAAAA0gAAAC8AHABmYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXN0
b3JhZ2Utc3RkZXJyLnR4dFVUCQADmPQBWRnnAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH
9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G
5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz
3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQKAAAAAAANLZtKAAAA
AAAAAAAAAAAADQAcAGZhc3QvaGlzdG9yeS9VVAkAA7nmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsD
BBQAAgAIAMA0m0pLG4E1pwAAANIAAABAABwAZmFzdC9oaXN0b3J5L3BhZ2UtY2FjaGUtd2ViZGF0
YWJhc2Utbm8tdHJhbnNhY3Rpb24tZGItc3RkZXJyLnR4dFVUCQADN/QBWbnmAVl1eAsAAQT1AQAA
BBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pykWwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQ
EkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpxyCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXh
PoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/38HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrF
G1BLAwQKAAAAAAAWLZtKAAAAAAAAAAAAAAAADAAcAGZhc3QvaW1hZ2VzL1VUCQADy+YBWTH4AVl1
eAsAAQT1AQAABBQAAABQSwMEFAACAAgAyjSbSiGPvTgyAAAAMwAAACwAHABmYXN0L2ltYWdlcy9w
ZGYtYXMtaW1hZ2UtY3JvcC1ib3gtc3RkZXJyLnR4dFVUCQADS/QBWcvmAVl1eAsAAQT1AQAABBQA
AABzy0ksSXVJTc5PSbVSSAHRmXnpCqlFRflFVgqZecn5RUWpySUKKYkliQrJGanJ2XpcAFBLAwQK
AAAAAAAsLZtKAAAAAAAAAAAAAAAACgAcAGZhc3QvdGV4dC9VVAkAA/PmAVkx+AFZdXgLAAEE9QEA
AAQUAAAAUEsDBBQAAgAIAN00m0r+ns1CeQEAAIgJAAAjABwAZmFzdC90ZXh0L2Vtb2ppLWdlbmRl
ci0yLXN0ZGVyci50eHRVVAkAA3H0AVnz5gFZdXgLAAEE9QEAAAQUAAAA7ZRNTsMwEIXX5BRWllWC
Jm5iuxFUglYVqy5oWFVdOIlTIjU/ShypUEXiBqy5CefhAlwBG0oFUiU2kegi3s3Y8+Z5PtkYHGqD
a2OKgPhD5nv0HMBD0yYrb0UeiyqohFhih7nMJyMgACs0KSoRiK300WAwQHd5xstSxMh8e3l6f302
0cUkmBW52oYtTQQPgXoiiWC8y3km0CVaBIsiX8vUDib2rVg3G15ZqE4f9Z4DoAzoZaGMyyrdqiRs
VRSLOqrSUhaVyuxbTA+5QzMcO0NCVDMuVXXYSFF/np9d8zqNbnh9/+OkSyigpY6ThHoMQteF1Xgn
H0rtJWskDzcCxWkkLRQVTS61Q8sQuZLWumPjDCNfqy9UJl+jvRSGENPkmHSkXKty7cmcL/Qd5moo
V99ezfbL7G85j0bcZX/JHRmr2RqtMW5bAx/jrIJOOWPujfCo53xqnF3WLWeifBK353xqnEnH/zaO
mBPynvOpcWZe1+8ZOyPWc/5Hzh9QSwMECgAAAAAAOC2bSgAAAAAAAAAAAAAAAA0AHABmYXN0L3dv
cmtlcnMvVVQJAAML5wFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADrNJtKPnicZIwBAADQ
BQAAMwAcAGZhc3Qvd29ya2Vycy93b3JrZXItY29weS1zaGFyZWQtYmxvYi11cmwtc3RkZXJyLnR4
dFVUCQADifQBWQvnAVl1eAsAAQT1AQAABBQAAADtksFq20AQhu9+isGH4kDsdRrXpQs6OTaEBidI
dtzrajWylq52xO6IVISAXyOQvpyfpJKaQ0gpPeVSctllf2ZmZ775l3F8HUtYKWMxAybYIwM3FYLJ
0LHJDXqgHDwGqr1GUAzb+AryNl4KIW7J1iUGcaFYieUuETtMvxoWV6qhmjcYOIhcBRZ35L+jD8/3
WFPVjEOhPGbj1FI6rr0Nk4JLC3eGC0DvycOyPy+oVMZF62RBmlSv/ZZgQRlGH+dTGG4K7HuC4+Hp
n18cDz9BU20zdzw8MqQIVKFr509RqzogcIG+JRDAEYRaF33pyRC2Af2lyym6XycthejtKJzCOlm1
1W8UF9Eb1d+6DL1tjNv3TKPpj8/5l3maTWdzdTaF+1f0b66Ty29/0ofh+gUkaDMy41Ez+Wb48DAZ
DP7afdI7qnstyKPo0lVlRDd2v+lJWY4+nZ+AhMCKjYaUyMJzuJRdnJSh6BYZY2WVxk4aaXKBYbdZ
SZmwb6eDDyeD5bvP333+yudn83Q2+898/gtQSwMECgAAAAAALi2bSgAAAAAAAAAAAAAAAAkAHABm
YXN0L3hzbC9VVAkAA/jmAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAN00m0pO+yD4iAAA
AOcAAAAlABwAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUCQADcvQBWfTm
AVl1eAsAAQT1AQAABBQAAACljrEOwjAMRPd+hX+geGDLDBNsIDq7rSsiOXHlOFL5ewLlD1hOJ9/J
7yZNaxTyqBnYTC3AEoW/EhDxoVITFzyRE56HGw48XqLjlV5a/c7FCy5UHLciaFy02tTq29P6WadD
u4LEzHAEFk6cHWJa1bxrSdgtBKiZxgZ1BVGaf/D/0P3+nOfPhu4NUEsDBBQAAgAIAN00m0r9oi5k
jwAAAO4AAAAnABwAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0VVQJAANy
9AFZ9eYBWXV4CwABBPUBAAAEFAAAAJ2OMQ7CMAxF957CFyge2DLDBBuIzm7rikhOXDmOVG5PoJyA
5cv/f9t6k6Y1CnnUDGymFmCJwl8JiPhQqYkLnsgJz8MNBx4v0fFKL61+5+IFFyqOWxE0LlptauvN
eT/S3Me0qnlfLR5aBhIzwxFYOHF22NuuNWEfIUDNNDYAVxCl+QfyJ0bWUqfn50W7E+neUEsDBBQA
AgAIAOA0m0rPj2YOUAAAAKAAAAAkABwAZmFzdC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIu
dHh0VVQJAANz9AFZ9eYBWXV4CwABBPUBAAAEFAAAAK3MsQ3AIAwF0Z4p/gZR2myDwAhLNkaWiTJ+
yA5prrtXTCdLDrYBcje/0FgIEB6EEySkNAK2Yq5IPO4sXLG7CM0cStGt7ssslb+wp4fK8ZEvUEsD
BBQAAgAIAOE0m0qBSnetSwAAAKwAAAA0ABwAZmFzdC94c2wveHNsdC10cmFuc2Zvcm0tdG8tZnJh
Z21lbnQtY3Jhc2gtc3RkZXJyLnR4dFVUCQADdvQBWfjmAVl1eAsAAQT1AQAABBQAAAC1zLENgDAM
RNE+U9wKtGzjwAVZcmxkLOZHomAD6q/3t5inmpSGg5mRK4YaAVMnFtA46YVbUqUbW3LnUNdXxMBh
0cW+juJVbfvl+gBQSwMEFAACAAgA3DabSqbzG/G4AQAAhQMAABEAHABmdWxsX3Jlc3VsdHMuanNv
blVUCQADMPgBWTH4AVl1eAsAAQT1AQAABBQAAAClkV1v0zAUhv9K5SuQ4qUrGdXCVaQGNK1jaOkY
XEWuc7JYdWzLPmatpv53bIdNSICG4O7ofL3PeU+1WrU3dXO73jSvHgmCQ0fKRzJCJ1gM0DK+ew6o
UHTLVEcdHiScDDjKWLNgtEVSkvfr6vIryQjsDXCELqQ+VU0TMoyjZ6GZbOovm1lKHo8ZGXUHVtEk
R7lWaLWcABjXjvZeSsctwD+00K1H1MpNrO5X2Jv6Q7i8ubj++DJxghVBTigpFPyG5o/FFzn+xrSL
q/r69tm3CDMgmvSXp5cxYzjjA8S4mBfUgtPecqAPAgfqpH6gIwv/e8qfmMH8z/MShdsJY2Lrm2J5
lhHlx9bCfZBwIpxMytOMaBzAttwyN0AEjUYqBGu9SSI9kw6m0VGEOXVPynlGJDtoj206r+2EDer5
Zy39CC5fMWR5fdfkd7C9FJivU+8mOZGRb2CjOimLaathzkXlolieLzJixB7kj72g2Fb+BNExDP6R
+dvyrKiuZlrNKmOFnC2W2WwxP12G7QNzrbGAeAiLkQ+kROvDaC/2cVdy4nwS7iXbHUIiIz4AtJOv
DKMzbS9ibxw9vn73HVBLAwQKAAAAAAAwLZtKAAAAAAAAAAAAAAAABQAcAGh0dHAvVVQJAAP85gFZ
MfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADiNJtKAAAAAAAAAAAAAAAACwAcAGh0dHAvdGVz
dHMvVVQJAAN49AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADiNJtKAAAAAAAAAAAAAAAA
FAAcAGh0dHAvdGVzdHMvYXBwY2FjaGUvVVQJAAN49AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACADiNJtKwk3IHXQAAACbAAAAQwAcAGh0dHAvdGVzdHMvYXBwY2FjaGUvNDA0LXJlc291cmNl
LXdpdGgtc2xvdy1tYWluLXJlc291cmNlLWFjdHVhbC50eHRVVAkAA3j0AVl49AFZdXgLAAEE9QEA
AAQUAAAAJYzREcIwDEP/O4UmYIkeEwQGMMEhPtKYs1O6Pk750Z2kJ92qOAb7CK00QNioS4ng77P2
QdJ9FuIu/YUijXFIa+gagJHXYBkP08PZwF/ukHJmW2xh7LpbZryZP46m9Jw/VEbQk2IzNWjOu/ll
Sfd1vaa0/ABQSwMEFAACAAgA4jSbSibl06tBAQAASgIAAEEAHABodHRwL3Rlc3RzL2FwcGNhY2hl
LzQwNC1yZXNvdXJjZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1kaWZmLnR4dFVUCQADePQBWXj0
AVl1eAsAAQT1AQAABBQAAADFkM9uwjAMxu88he8lpDCkTZxgUO2wPxy6jbNJXRotNFXsDPb2S9jQ
HmHKIcrnL59/tlIK9Lt38UisNyioq12td7R/tPJ73UfrGr2hfTxoh18+ihJiUYE4OmHdiQw6K6xx
GAyajvS8nOe6j8GQOlnpFDt/Uke0/Z9O54GMUDORs4yKovg3EDQS0V0wlktQ0/ENFNPxDJbLkVpv
X+rtUwXPVV2vHqoFrIbBWYNifQ/r3APi0KAQtGgdNWPYk8HIBBlnofV0djsp05ku7sqy/CO7dmfd
eGLVe0kLsSwZA4yProGkpTRoSdKHZjKC184yXCYE6VAA4Yi9bZPw8za+lzQZ54Jltv0B2gQFJ+vc
Jc0E5C55CfbBn5gC0Cf1YNuLlrcCVy74IBoYnMcm52AryZ1dFIIP4I2JgRNT/bZep92MvgFQSwME
FAACAAgA4jSbSijTFXbYAAAAJwEAAEUAHABodHRwL3Rlc3RzL2FwcGNhY2hlLzQwNC1yZXNvdXJj
ZS13aXRoLXNsb3ctbWFpbi1yZXNvdXJjZS1leHBlY3RlZC50eHRVVAkAA3j0AVl49AFZdXgLAAEE
9QEAAAQUAAAANVDNasMwDL7nKfQAa5L2spFbCWGXrT1kewDVlhcx1zaWsvbxp3QMgUDfHx8az6f5
/DbB+zTPx9dpgGMpkR0q5wQjuoVgLR6VICBH8k9wIYerECyqZei6/eG57W32w0vf9x2W4jZXV0ny
Wh1J5zPJLmXd0Z1FW70ruLxGD4ZZGgRSM/i2+VhYQEnU9oIKCFdMHAz4u11OipxkI1iE0xcE6wQ3
jvER5irKYlqCS803oQr0Qwk4PLCreeG/FnwTFYGY0W85GNTUm4pqzRWyc2uVtpk/x9E+0/wCUEsD
BBQAAgAIAOI0m0o+k0fQCQgAAL0YAABJABwAaHR0cC90ZXN0cy9hcHBjYWNoZS80MDQtcmVzb3Vy
Y2Utd2l0aC1zbG93LW1haW4tcmVzb3VyY2UtcHJldHR5LWRpZmYuaHRtbFVUCQADePQBWXj0AVl1
eAsAAQT1AQAABBQAAAClWWtv47gV/Z5fQSTYBlhEkh07WT9mXMwkTgt0HwU83f24oCTK4oQSVZJK
nGn733v5kiVZSrLYHexYIi/J+zj33EvNh1wVbHP2ISc4hZ+CKIySHAtJ1MfLWmXB4hKGpXphZHO2
YrR8vEKrJyqpIin6zxmC/xQ5qCAlCRdYUV6uUMlLsjZTMRcpEUHMleLFCk2rA0rhmaTrs/+d2e3c
JglnXKzQxWS2NHPhA2XknmaZm49x8rgXvC7TwItmC/2nfZA9QXJGU3SRpqmdy3ipggwXlL2sUMFL
LiucOAULLPYUVJ6SAk3sUMXBOGOHIAwseiJGoXza03Q2mw3sL3EpA0kEzVqTkn4j5oz2oQEjmVqh
SXjjx1MqK4ZhE1qCZ5yGzzRVOSyeTL5z+uE0peW+WWl1c6HRT93oOHVpmYNSqhHP+RMRPYtubm7W
Y84mxLoh1DH5Ec6SbnHGOAYzBN3nqhs5LXUH5mOwxR/FwfVUgYmTnskKx4wECWGsY2Vg9u146TkH
6wITQw21Z4Gro2Y7kujYjYLGLO5Cpg8Xh1nvdwDUpDrYE7aHCsIL+4Np5AqF+qdv4ah6kqYkftF/
I6PqZ8aTx39ioUIwdZVRIVWQ5JSlo47Vx+1g/dVrmwlSQGiv3jjPneHdbwEXxFqkA7sbjzpAi6IJ
ZgFmdA+5ofiAWYJopP8dlykj3h1uH+1C/Z4TG9AjnpNaSB0arXY/A3EM0al9xODMBjg2eYx6r2nR
wfkpHPaCvKx7wAxv3oqXdTEKFX/TzWEmeNFztuNHfYb2+s91ERMBaCJtdNlRr/gpjTrULpcdAvTp
MkSDPpPn8/kg3bSj33CM3ujGpoBNg4bwHQ4cPIcgYtXtwGnmCKtluDFxkHBskRh1yyskVQmdnVpN
50DPJg413pBOrsKiwGarmQJ/mlewQxD8GOgBqxAt8J50IrNC143DY4a1F7VgAtQAOoAq7gn17T5G
ZTFfjnJvRrIjAWhYwY5NeWxl88DSNEu7SyHYclx8SZbr12p6s5NjmbYeLivGy3WanmyAUsLGV5Dl
m9pE36NdXVVcKKi0wiEZnFoUpFQSfR/BebhWObf+ttVYNzOAegU4TXykzAIjM1L/GxmtDAZIGGFP
Z7ce2JpuMGN3XoNB6Wtbywp8CHrlvYC+wA1dT5q60z8a/P7qOU1mNyndOWZIz5BXxJbN4JnEj1QF
Sui0s56wiqPwWq5bZsyd0RdSYVXLz3UMNbyph6HOnkF19BLFOYux6M77ozNGTIYeJwr+rRltyGlm
89j1UfrRdwv6ebwlHGOOV1u5IywyeiB2H8fHk65JITY9iE2z0yr+TIELRA9qzZ7fAlqm5AAk9Ypp
x0LYUmHILkdGnfK2cCxWajVdwg6WJjgv5oc3Fb09Kjq1IPZFyL4ZZd1zU8Hca6Nw05l1jqaZwIXV
sJcn3TailSN3I0x76psX6DX5s6v1hEHjCD3zOwrT7fLhCC9Xk0cmjSO6c00bmZ62x93m2O1h3XeK
4dGWIPU8a4/55EnBX3Um7dkvvkb27iS3P3hCO1XzlSRp3XZkgW0v3+bckgsYXo+wjLNft2By6HBr
h8/ryZAIwzFhK5xBhl2dLLfjZhNTkEsw9Rz9F52vz5pC3Crf/dUMQ4fOs0C9VGRwq/NRjZxg74qb
E2YIsmlGsW5GR2rURUGk9I3HqJ+HwtLKjp0h6veUQigx0BA9UV7Lu2YEmtlvpLxrFcuhOu9bjn6J
aRcXzeWAWoMEz+3u3SHRkcjM18B3aeOgAT0OUTonOuXCtX0jTV+7zsY1ZFXZ5h1f31P6tMp44nzI
a6X5op1+MatNJXFTgJcMdIEKNvWGtIul2QV6mC85sSdFrtLuQX9tg+JIwVxspR3UJHqiWHOy+slh
ApSNBX+GgEMnkGNY65oiqkLdBDV2zG9dF9+0Iu7ds4NuZPX/k24R9Z90+j1+QVO4ZVnDdICkv3wP
VBTow7jET+B78ADp1ZX2Te+k1AXTcGZbpuPHD1/9B2JwcX9/30rpi8XD/cPNwyA/QXM5jOLtdjuk
9YoUFTBUJ/iuTetJhvAImnYyf7tcTBaOtxJGsPjdtAf+KqBHzLUp1yIfIvfV7YNMBK0gpiL5eJ4r
VclVFOGv+BDuOd/DoopKDV0zFjEay+jrv2siXqJpOA+v3UsIrWX4VZ5vYF+z3wZ1d054SgIdQ/IM
cn+FSOtgfpwvWktAKfehMObpC/xAPoDeWMqPl/4moL8X5tNN9CvEEzgruscKR9vfdtFvJP4HVe7n
c01ZGt2TuN5HgBNwZqAI8Ctc3mumZKTtjPSIjHBVJTjJSTSfzPU8r0UCWUtVHkio4EGBNV34cehq
asxCdVCg67SrYusL0eXpjLm5j43rGz2yl5aeiL7OoO6XoKMc0EzpBc2ngGN/cbmZgl9hftORgoxv
y/yljGW1HhSE0n25ufvl590vP27RT9vd7tPftiv0qaqAy809Cd1pt6G6SnW+ZRgCBFfHmCS4lgRp
DwOQptc/hBP4M10tJpPJ0dneoTJKOZFByVVADlQq7VkAdM1SSG2gStiYKFiQhk5JwAh4x/+0PdWC
/OXGTTvZPxwKmcNtJ30zFG/G4PodMZiOu/9LTvXdSyrHuxiItKQZDNj3xCoi9QSVUhNCBmEAOmbM
+C8RWOaW4y2BI/IEFzGamTENbeQjgR4JqSQC92kKRLYD0VJECLjf8kR/STuJwp9zz+wd7rked8/u
X3d3AMw/g4zej+EdyGzzrxb/B1BLAwQKAAAAAAAyLZtKAAAAAAAAAAAAAAAALwAcAGh0dHAvdGVz
dHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvVVQJAAP/5gFZMfgBWXV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACADkNJtK3Jhv7zYAAAA6AAAAUQAcAGh0dHAvdGVzdHMvY29udGVu
dGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtc3Rk
ZXJyLnR4dFVUCQADe/QBWf/mAVl1eAsAAQT1AQAABBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgip
LEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2WlJpdwAQBQSwMEFAACAAgA4zSbStyYb+82AAAAOgAA
AGoAHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3NpdGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVy
ZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1yZWZlcmVyLWFsd2F5cy1zdGRlcnIudHh0VVQJ
AAN59AFZ/OYBWXV4CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIo
hUkrZBYr5OWXKCTmKeQnZaUml3ABAFBLAwQUAAIACADjNJtK3Jhv7zYAAAA6AAAAawAcAGh0dHAv
dGVzdHMvY29udGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXIt
c3RyaXBwZWQtd2l0aC1tZXRhLXJlZmVyZXItZGVmYXVsdC1zdGRlcnIudHh0VVQJAAN59AFZ/eYB
WXV4CwABBPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWX
KCTmKeQnZaUml3ABAFBLAwQUAAIACADjNJtK3Jhv7zYAAAA6AAAAaQAcAGh0dHAvdGVzdHMvY29u
dGVudGRpc3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQt
d2l0aC1tZXRhLXJlZmVyZXItbmV2ZXItc3RkZXJyLnR4dFVUCQADefQBWf3mAVl1eAsAAQT1AQAA
BBQAAAArzUtJTcvMS02xUvAKVnANCvIPUgipLEh1LSrKL7JSKIVJK2QWK+Tllygk5inkJ2WlJpdw
AQBQSwMEFAACAAgA4zSbStyYb+82AAAAOgAAAG8AHABodHRwL3Rlc3RzL2NvbnRlbnRkaXNwb3Np
dGlvbmF0dGFjaG1lbnRzYW5kYm94L3JlZmVyZXItaGVhZGVyLXN0cmlwcGVkLXdpdGgtbWV0YS1y
ZWZlcmVyLW5vLXJlZmVycmVyLXN0ZGVyci50eHRVVAkAA3r0AVn+5gFZdXgLAAEE9QEAAAQUAAAA
K81LSU3LzEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsD
BBQAAgAIAOM0m0rcmG/vNgAAADoAAAB+ABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25h
dHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJl
ci1uby1yZWZlcnJlci13aGVuLWRvd25ncmFkZS1zdGRlcnIudHh0VVQJAAN69AFZ/uYBWXV4CwAB
BPUBAAAEFAAAACvNS0lNy8xLTbFS8ApWcA0K8g9SCKksSHUtKsovslIohUkrZBYr5OWXKCTmKeQn
ZaUml3ABAFBLAwQUAAIACADjNJtK3Jhv7zYAAAA6AAAAagAcAGh0dHAvdGVzdHMvY29udGVudGRp
c3Bvc2l0aW9uYXR0YWNobWVudHNhbmRib3gvcmVmZXJlci1oZWFkZXItc3RyaXBwZWQtd2l0aC1t
ZXRhLXJlZmVyZXItb3JpZ2luLXN0ZGVyci50eHRVVAkAA3r0AVn+5gFZdXgLAAEE9QEAAAQUAAAA
K81LSU3LzEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsD
BBQAAgAIAOM0m0rcmG/vNgAAADoAAABuABwAaHR0cC90ZXN0cy9jb250ZW50ZGlzcG9zaXRpb25h
dHRhY2htZW50c2FuZGJveC9yZWZlcmVyLWhlYWRlci1zdHJpcHBlZC13aXRoLW1ldGEtcmVmZXJl
ci11bnNhZmUtdXJsLXN0ZGVyci50eHRVVAkAA3r0AVn/5gFZdXgLAAEE9QEAAAQUAAAAK81LSU3L
zEtNsVLwClZwDQryD1IIqSxIdS0qyi+yUiiFSStkFivk5ZcoJOYp5CdlpSaXcAEAUEsDBAoAAAAA
ADctm0oAAAAAAAAAAAAAAAARABwAaHR0cC90ZXN0cy9sb2NhbC9VVAkAAwnnAVkx+AFZdXgLAAEE
9QEAAAQUAAAAUEsDBAoAAAAAADctm0oAAAAAAAAAAAAAAAAWABwAaHR0cC90ZXN0cy9sb2NhbC9i
bG9iL1VUCQADCucBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA6TSbSqF55Hd6AQAAdAUA
ADEAHABodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1oeWJyaWQtYmxvYi1zdGRlcnIudHh0VVQJ
AAOG9AFZCucBWXV4CwABBPUBAAAEFAAAAO1SwWrbQBC9+ysePoQEitekxC0LOjk2hAYnSHbd62o1
ihbkHbE7ojEh4N8otD/nL4mkthBaesupyWXZHd68nffmLdL0JtVYGldTAWHckUD2DcEV5MWVjgK4
RKDIbbAEI9ik1yg7vFZKfea63VFUl0aMWmwztaX8kxN1bfbcypqiRFWJNEqGa83W1Oo3WVSePd27
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
VMeHu9vvG8Hubn+AUKs0zu5uvxmICFROWZl1RAJXBYFZkC7zLiBTUKzEog7SbsFVQfosS9TwehKW
uQ+fl/tbmITV9wWaxfAZba+ymHS6ltm8rmpof/ES7HTR6Xe8yIbrB/VfnIdnH/+uH1qTjeSh7BFL
TcIovW7d3LQPDqwPKl0tqbBO0aA1moXWjKJ30lhhfX+qXydKk1V1x1xaVXr1tW4vl4d95wgCKAwa
KSBSKoXfzYOgahcExaK6wFPKUxR1ZYdCZYWB2eU4CEKjy+rgzdHBiNX8YzW2iz2f1Tyl5k/TwsI8
L2/bXCYv13Mf6jXsPFLBk4a29NliyR34rhBsiS293JJju13i2YwtNTEuCd/2eI5jSw1Y6ri+0+dx
aQdLS/VVpik2o2kj2Ot62jjxDqIe9No2PqGwBwmbYlONmhrYHTbFpho05feFQDbFpho15Sf8bM7P
5k2s8xLX4x1wttSQpcjj56cdLN0XfJwofRxrnM+r074Y1uNxX1fZ4znsQG57gG37DD2MesT+2N/e
/GHCexI8lzaxZ+p5wmdLbKkZS3EvZks8L+5pXiz9CYf9sb/9+HMcj5D/Y8P+9uTPHfjY4XcA7G9f
458nuhGvJXgt0cxaAvl9Jltqao+D7P/M0k9QSwMECgAAAAAAYC2bSgAAAAAAAAAAAAAAACoAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9VVAkAA1TnAVkx+AFZdXgL
AAEE9QEAAAQUAAAAUEsDBBQAAgAIAA01m0pjqqxsggAAAKgAAABAABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQADyvQB
WVPnAVl1eAsAAQT1AQAABBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZ
zXK2wpsXqQRV0UR7YdDh3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpo
JTDOIdAP2AH4NGh6Q21cJ5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAA41m0pjqqxsggAA
AKgAAABSABwAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXVu
YWZmZWN0ZWQtYnktc3R5bGUtc3JjLTItc3RkZXJyLnR4dFVUCQADy/QBWVTnAVl1eAsAAQT1AQAA
BBQAAAAtjUEKwzAMBO95hV4QO72k+BWFviC4G2JQLCMppf59TSl7WobZzXK2wpsXqQRV0UR7YdDh
3lIIy22d48iS7jHGYMiXFu8hS3VUf/77Q7jkHhQml2ZYMO+M+WNMXCpoJTDOIdAP2AH4NGh6Q21c
J5LKnZY50o7NrzFEm4Lsak3U8Zq+UEsDBBQAAgAIAAM1m0qviBzXrQAAAKQBAAA6ABwAaHR0cC90
ZXN0cy9zZWN1cml0eS9jcm9zcy1vcmlnaW4td2Vic3FsLWFsbG93ZWQtc3RkZXJyLnR4dFVUCQAD
tvQBWTbnAVl1eAsAAQT1AQAABBQAAADdj80KwjAQhO99ij22B40gXoIIoj2JFCrqOUm3EEh3wzap
+vb+oC/hbQa+b2Dqtm1aDWcyNiAkhpSFgAk8OcEBKZkAJieeTcblPEC5AOIEhgBFWKpCXTjkAUe1
N8mo+npSV7QHn9SJszh8tx0LqiN3ObywG9ruRVoz4kd5h7mLsVyuVhVoqO8OY/JMjawn9t0Gvgta
/3CtI0rPMjQRaUvdBcX3j9Iyh6qo/+7RE1BLAwQUAAIACAADNZtKSxuBNacAAADSAAAAMgAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3Mtb3JpZ2luLXdlYnNxbC1zdGRlcnIudHh0VVQJAAO29AFZ
NucBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW
0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeq
Du3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPL
WEekA/U3FD+8CsscysUbUEsDBBQAAgAIABk1m0pLG4E1pwAAANIAAAA/ABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLWxvb3NlbmVkLXdlYnNxbC1zdGRlcnIudHh0VVQJAAPi
9AFZZecBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv4
8/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJR
VdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WO
KAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIABo1m0pLG4E1pwAAANIAAABDABwAaHR0cC90ZXN0
cy9zZWN1cml0eS9zdG9yYWdlLWJsb2NraW5nLXN0cmVuZ3RoZW5lZC13ZWJzcWwtc3RkZXJyLnR4
dFVUCQAD4/QBWWbnAVl1eAsAAQT1AQAABBQAAAA1zM0KwjAQBOC7T7HH9qARxEsQQbQnkUKL9pyk
Wwiku2Gb+PP2VtHbDHwzVdPUjYYrGRsQEkPKQsAEnpzgiJRMAJMTL+/G5TxCsQbiBIYARVjKhbpx
yCNO6mSSUVXXqg7t2SfVchaHn3ZkQXXhPoeZPdD2s7Rmwu/kE1YuxmKz3ZagoXo6jMkz1bK7s+/3
8HvQ+s+1jigDy1hHpAP1NxQ/vArLHMrFG1BLAwQUAAIACAAmNZtKYEtmEJEAAAD7AQAARQAcAGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzLURFTklFRC14c2wtZG9jdW1lbnQtc2VjdXJpdHlPcmlnaW4t
c3RkZXJyLnR4dFVUCQAD9/QBWX3nAVl1eAsAAQT1AQAABBQAAADtjjEOgzAMRXdO4QuEBJZWmWHo
0p4BBVMimSSynQpuXzr0Bh2rv76v90LeSqRJY06AzJk9LJEQVtXire36S+vOdf7qnLOCoXLUw+4i
Zhjvt3Ewu5CZc6gbJjVf4MHxGVO7bwQUE0IPSPghQPQglBVRm/PpX8hyuj3kRAd0rYMFJ62MAhMj
SC0ls+LchH/oj0PfUEsDBAoAAAAAAEUtm0oAAAAAAAAAAAAAAAATABwAaHR0cC90ZXN0cy9zdG9y
YWdlL1VUCQADIucBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA9jSbSksbgTWnAAAA0gAA
AEUAHABodHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1j
b250ZXh0LXN0ZGVyci50eHRVVAkAA6D0AVki5wFZdXgLAAEE9QEAAAQUAAAANczNCsIwEATgu0+x
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
cy9JbmRleGVkREIvaWRiY3Vyc29yX2l0ZXJhdGluZy1zdGRlcnIudHh0VVQJAAMD9QFZg+cBWXV4
CwABBPUBAAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOt
m+bRSDgxYx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbc
YPGD1nZixDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQU
AAIACAA3NZtKHdGPJqMAAABPAgAARgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
SW5kZXhlZERCL2lkYmZhY3Rvcnlfb3BlbjExLXN0ZGVyci50eHRVVAkAAxr1AVmX5wFZdXgLAAEE
9QEAAAQUAAAA7Y+xCsIwFEX3fsUb28UgikI2bTuIitiCHSVN3hBI+0L6Uvx8a+nkFzg4Xjjncm9Z
VbdKwoEZO8/ABMqMqtcICjR13iGjAR3DQCERD3Kxw0EUipUom1o02J4ti5pi0PhJOQUUVzLRTZjt
Db7QmFYMGEYMor5fLOOpOOZz4Up7n27W+wwktEQOlgIpJ6SeFSm/HCmXgWm0Pe+2T86S8n/iR068
AVBLAwQUAAIACAA6NZtKRmgb25kAAADFAAAAQwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvSW5kZXhlZERCL2lkYmluZGV4X2NvdW50LXN0ZGVyci50eHRVVAkAAyD1AVmd5wFZdXgL
AAEE9QEAAAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b
5tFIODFjHxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg
8YPWdmLEOGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQA
AgAIADo1m0pGaBvbmQAAAMUAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9J
bmRleGVkREIvaWRiaW5kZXhfY291bnQyLXN0ZGVyci50eHRVVAkAAx/1AVmc5wFZdXgLAAEE9QEA
AAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFj
HxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLE
OGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIADo1
m0pGaBvbmQAAAMUAAABEABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRiaW5kZXhfY291bnQzLXN0ZGVyci50eHRVVAkAAx/1AVmc5wFZdXgLAAEE9QEAAAQUAAAA
XY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFjHxiYQNtJ
DwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLEOGEU6nlz
jJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAEg1m0pGaBvb
mQAAAMUAAABJABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvaWRi
b2JqZWN0c3RvcmVfY291bnQtc3RkZXJyLnR4dFVUCQADN/UBWbPnAVl1eAsAAQT1AQAABBQAAABd
jrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kP
BkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOM
l+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgARzWbSkZoG9uZ
AAAAxQAAAEoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9jb3VudDItc3RkZXJyLnR4dFVUCQADNvUBWbLnAVl1eAsAAQT1AQAABBQAAABd
jrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kP
BkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQlKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOM
l+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8uYEP+zcX2RdQSwMEFAACAAgARzWbSjA9hTef
AAAAigEAAEoAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9pZGJv
YmplY3RzdG9yZV9jb3VudDMtc3RkZXJyLnR4dFVUCQADNvUBWbLnAVl1eAsAAQT1AQAABBQAAADd
j7EKwjAURfd+xRvbxSCKQja1HURFbMCOkiZvCKR9IX0pfr61dPITHC+ce7i3qut7LeHAjF1gYAJt
R90bBA2GuuCR0YJJcaCYiSf51OEgSs1aVI0SDbYXx0JRiga/6UQRxY1s8hPmeotvtLYVA8YRo1CP
q2M8l8fTLFyZEPLNel+AhJbIwyKQckLUXJHypyPlMjBPrufd9sVFVv3DiQ9QSwMEFAACAAgASjWb
SkZoG9uZAAAAxQAAAEsAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWRE
Qi9pZGJvYmplY3RzdG9yZV9kZWxldGU1LXN0ZGVyci50eHRVVAkAAzz1AVm45wFZdXgLAAEE9QEA
AAQUAAAAXY6xCsIwFEX3fsUb28UgikI2bTuIitiAHSVN3hBI+0L6Uvx8a+nkeOGcw62b5tFIODFj
HxiYQNtJDwZBg6E+eGS0YFIcKWbiRT71OIpKsxZ1q0SL3dWxUJSiwd8qKaK4k01+xtxg8YPWdmLE
OGEU6nlzjJfqXC7BjQkh322PBUjoiDysASlnRC2KlH+OlOvBPLmBD/s3F9kXUEsDBBQAAgAIAFE1
m0pGaBvbmQAAAMUAAABOABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVk
REIvaWRidHJhbnNhY3Rpb24tb25jb21wbGV0ZS1zdGRlcnIudHh0VVQJAANK9QFZxecBWXV4CwAB
BPUBAAAEFAAAAF2OsQrCMBRF937FG9vFIIpCNm07iIrYgB0lTd4QSPtC+lL8fGvp5HjhnMOtm+bR
SDgxYx8YmEDbSQ8GQYOhPnhktGBSHClm4kU+9TiKSrMWdatEi93VsVCUosHfKimiuJNNfsbcYPGD
1nZixDhhFOp5c4yX6lwuwY0JId9tjwVI6Ig8rAEpZ0QtipR/jpTrwTy5gQ/7NxfZF1BLAwQUAAIA
CABwNZtKMD2FN58AAACKAQAAWAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5k
ZXhlZERCL3RyYW5zYWN0aW9uLWNyZWF0ZV9pbl92ZXJzaW9uY2hhbmdlLXN0ZGVyci50eHRVVAkA
A4P1AVn85wFZdXgLAAEE9QEAAAQUAAAA3Y+xCsIwFEX3fsUb28UgikI2tR1ERWzAjpImbwikfSF9
KX6+tXTyExwvnHu4t6rrey3hwIxdYGACbUfdGwQNhrrgkdGCSXGgmIkn+dThIErNWlSNEg22F8dC
UYoGv+lEEcWNbPIT5nqLb7S2FQPGEaNQj6tjPJfH0yxcmRDyzXpfgISWyMMikHJC1FyR8qcj5TIw
T67n3fbFRVb9w4kPUEsDBBQAAgAIAHI1m0pGaBvbmQAAAMUAAABGABwAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvd3JpdGVyLXN0YXJ2YXRpb24tc3RkZXJyLnR4dFVU
CQADiPUBWQHoAVl1eAsAAQT1AQAABBQAAABdjrEKwjAURfd+xRvbxSCKQjZtO4iK2IAdJU3eEEj7
QvpS/Hxr6eR44ZzDrZvm0Ug4MWMfGJhA20kPBkGDoT54ZLRgUhwpZuJFPvU4ikqzFnWrRIvd1bFQ
lKLB3yoporiTTX7G3GDxg9Z2YsQ4YRTqeXOMl+pcLsGNCSHfbY8FSOiIPKwBKWdELYqUf46U68E8
uYEP+zcX2RdQSwMECgAAAAAAeC2bSgAAAAAAAAAAAAAAAC0AHABpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9VVAkAA4PnAVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAJwtm0oAAAAAAAAAAAAAAAA5ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvVVQJAAPH5wFZMfgBWXV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACAAsNZtKjzQacEQAAACgCQAAXAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L2ZhaWx1cmVzX1JTQS1PQUVQLndvcmtlci1zdGRl
cnIudHh0VVQJAAMD9QFZg+cBWXV4CwABBPUBAAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhO
rVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2VO2o2lG1o2pH1Y6qHVVLc7UAUEsDBBQAAgAIADA1
m0pUAsmyNgAAAMACAABlABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlw
dG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUud29ya2VyLXN0ZGVy
ci50eHRVVAkAAwz1AVmM5wFZdXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6t
VChIzCzSUSguSSwpLVbQNTE2MOFyHlU7qnaQqQUAUEsDBBQAAgAIAE81m0qPNBpwRAAAAKAJAABa
ABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVL
ZXkvdGVzdF9mYWlsdXJlc19SU0EtT0FFUC1zdGRlcnIudHh0VVQJAANF9QFZw+cBWXV4CwABBPUB
AAAEFAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2
VO2o2lG1o2pH1Y6qHVVLc7UAUEsDBBQAAgAIAFE1m0pUAsmyNgAAAMACAABjABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWls
dXJlc19SU0FTU0EtUEtDUzEtdjFfNS1zdGRlcnIudHh0VVQJAANK9QFZx+cBWXV4CwABBPUBAAAE
FAAAAHPOL81JUcjLL1FIT81LLUosSVVIVMhOrVQoSMws0lEoLkksKS1W0DUxNjDhch5VO6p2kKkF
AFBLAwQKAAAAAACGLZtKAAAAAAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvVVQJAAOb5wFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACALZtKAAAA
AAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VU
CQADkOcBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAhy2bSgAAAAAAAAAAAAAAAC8AHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUCQADnucBWTH4
AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAMDWbSiWyd34EAgAAvQwAAEkAHABpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRl
cnIudHh0VVQJAAML9QFZkOcBWXV4CwABBPUBAAAEFAAAAO3WTWvbQBAG4Ht/hS7Jbez9/giYYlIn
LbR1wO05zO7M2qaKZSyVNv++ckJTHFKa1JS2OEjoIIl5Vw/DrE6n72fTt5Pq3WQ2G59PTqrpZjlf
rqpF161PhsO6yVgvmrY7CUGIatlWq6arsK6bL0xVuq7GOXPbwmmz6jZNDePtE7itMXhxer/4GXd5
UY0v3lQZV9tKdYP0PUsqPxD9IW+yhmX77hDXy+GG2+bzps8Zrjdc6uV80Q3W1y+75hOvRsJYDlZY
MIZif7EEybCBpHyKyiV2yR5f4ddLnPNIHDc3SxttI4/0+Eid9eddcH9nG318832XV9wtGmpH55MP
gz/L8vfMd7LkY82txKi0jlBkCmC0z4BkI2AhKkyJ2MVfmN8F35rLAzLf6fNHmwvtlHQYQbIgMOwJ
oicNhrCgitZIZZ7W5wdj3u6gR2P0Y9FL1CFmncBlmcAIQsCkHTgy7IJkRZ4eRm8fVN9mH5L6j7Cn
qCN5tkE40DExmFA0JEaCTKhIGpb2Z+OlfXC+HJL6b++jNkQn0Ulwqpc3KUlIBR2g1zYJ7Nkp7reP
Xkxnz+j3Or1EydJbCCILMJgzpOg9iOCU9iF6dLwf+uvJ+NXg/3MhnYPVAaQxBkxmB0krDYqYnaLi
C5s9m/Hjcy/umjshScTIgFYqMC74fupygZISUpJRsw//2I/0N1BLAwQUAAIACAAyNZtKhx3gZdkC
AACYEgAAUwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMv
Y29ycy1wcmVmbGlnaHQtc3RhdHVzLmFueS1zdGRlcnIudHh0VVQJAAMQ9QFZlucBWXV4CwABBPUB
AAAEFAAAAM2Yz2okNxCH73mKPvlWHqn0r2Qwy7I4IZBkF/wApkoqrU0mnsE9Jpu3Tw0hew4IguiL
aBqhjyr99Kk/ff7t8fMvD9uvD4+PH396uNt+1Et73j5++Xlr/Pp6umzHE/ft+XI53x0OHsuts8ff
ETl3GNdvD3x+Obzpfnp/a7ofzm86ji9fny+3578+XE6/6+t9CilwHgQRA0NkGsDNJygtJj+EZES+
+YO/PfFXvXc3fDye/nx6Vu76tt9/g3GyieH7vDffR0/7hS/v+31w7nb78u/bzdZyPr3uur3s2xVg
f2+2sH28H3/49D/QEiF2Dh045QBxYAVBX2D0jDURqyDN0fqFaAcrBa8ZMnsHkUoGca6Aoq9VY3U+
5DlaXIg2sh+K7AC1WTu3jECMA7LrUmypUlKYow0L0XpkZmtg6K4JxJoaVHIItdcco3Ls0c3RxoVo
pQ3MNVrrBtu80UIJOFholaTD5+wYtc/RpoVok/gaEQWcBISYagTSXCF0ySEg1d7THG1eiFZTEQmN
ofoc7RgqCpKcAMfWK9UikeIcbVkppUqr3nkCctU6WQMBl46gFlE511KkT+5bWqmTNbGLVkxVa+fI
bUDFOsAOXiLhFGqboo1L2UUznlFat/M2qdkFOahmFVDqGFV8QhGao13JLkwVXYrZQ4lodmGEQMMb
fKjIvlJu5Odol7ILySk5VvDNWW1tCCLNQaOmybp7oGtztCvZRbcCNkcEI5UCsbDZRZYCXqzggatI
lznalewiOSueaSLoEKttN8W4VhtcsWWgVZjL5L5dyS58GA1dFugWS2aOPQF1Mm7tWiL5gDxlF2mp
lOoulKqtAdZgNz6nDqSogr0mF1IcHPwc7UopZfpgMswFEqL+c6WnqycTDq1NNbJM0q6UUq3VYpe+
bAFF7Xrjs05uJUC3eI6WV9I4ztGulFLopOU6vGmUmCfXMK7/LgL4LqgZRXOc3Lf/NaX+BlBLAwQU
AAIACAAzNZtKkBTzZJkBAADeBQAATAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAkAAxL1AVmZ5wFZ
dXgLAAEE9QEAAAQUAAAAzdRLaxsxEADge3+FTr2NV8+VZAhlcbdNIS9qlx7LSBplTbde16vQ+N93
NzkVDMmhBKOLkEZoPkaa1e3N+vaqZdftet18bpfsE5XYsebuC4u42w2F9QMm1pWyX1aVkHbBpyGW
znFe5Tm2wv22OtA4PBwijdX+QLnf3ndlsT9+KMNP2l2Qq00dtQErsgGtrQKfswdBhKiEUFbZ97/w
8Qfe0wVfsGsq3ZDYx/aq3bRsO7I5Dez74Q8lFo6sidNFI6yGXTkMPTTzDjwfGhfvVm8g0tkmUVsP
inQCTRPGWxQgbUARXQ4upBOiu2+bs+Q4nn0KMoBXGkFLiRDQe0ia61oIVNa5U5xms7o8SxA6ycnE
CJgTgQ5KQpDGgVEUpPaKUOcToJv2+3nWR+NUiJoDRe2mD0QenLHTrDaCO4NSiH/q85V+P9BYWEeY
6MDylvrEHqFMa/C8Jl7rvHwKfyMn2cB5nIplatRzo/AQTEKQUmfFveex9i865/xpV2Bz3NNZKp1H
IqcMpCwmpfEanJJxeqa29rr2NuT/1Tz+AlBLAwQUAAIACAA2NZtKuBsuDsgCAAC/EwAAVQAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVj
dC1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAkAAxj1AVme5wFZdXgLAAEE9QEAAAQUAAAA7Zfb
ihs5EIbv8xR9E9+VrfNhwCxmmBwgJ3YeIJRKpdis1z1x95Dk7VOdkHhhjAnEF7s7Ro3UqNVN8fX/
q0rXb9/cvn11072+ub1dPb+56p7xSOtu9e5lR7jb9WO37bF263G8u1ostIlzJU1fpaTUok1rF3i3
Wex56O/3xMPibs9tu/mwHud3X/74Gz+/xw+8VLOx/4t3y2o9Fmc8FO8iOMUBEjkFqAmTVly1NbM9
182eaXw/jDjeD0ur9GzbE46bfrecAnlqV0/NM7l+hiMzU0Ay9S0kGSUo6anfDzLM59L9DFHu/xnk
jPr73bjU8+5P/njPw9itGSvvu7bhbe0+wydL3WboJha43fafuHblS7ci+dQA1/1u3PdbWE1P4MW3
N4f5k+tzY/0BZaL6nWU2NTIVhpRSBleQINnUwCqKMlaDHGeHH/DrVKfZ7bofxt+h+l+jWYMNhbMG
i8qBi6ZBVpHAptJswJaknYOm/h/SPGn5FKynigLWFguu+SxgjQVMiY0v5Csdw2kuln8oUtsImXMF
g1Esb1SBYh1CysG5hKYWVidFai6WP9BENBS1Ycg1eHDBJUhYNCitnQ9N6Wr1OWg+Oss767RKLgAX
liwfvQGcNlRTsASiEpqjIzjtxfIPReqyV7lyElWymyomqZ1sMGC8ELbJ5NROZ3l7sfyBpkdsVBqC
ti2Aq22qP7MDblUHSqijUeeg+egsXylH9ERgMrFYHgMU5WVXNdUacr4a0kdwxovlj4jUB69cIHCZ
RKQoQEsjLRWTlSyf0LpIJ0UaL5Y/0EzNae/ZQJPaU5RZmxyYtAeOTpHyyDmmc9B8dJb3vihXPEIo
UWSqSoFsSwNHHH30aA2GIzjTxfIPRaobUTYcoLoqWd5oBFQmgWeHrGvyKdaTIk0Xyx9oss4pNBNF
mTnJkbNpKFpXUCrorL0cSJU7B81/geW/AlBLAwQKAAAAAACHLZtKAAAAAAAAAAAAAAAALgAcAGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9VVAkAA57nAVkx+AFZ
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIADU1m0rNDyDfmwAAAMYAAABIABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3BhcnNpbmctbm9zbmlmZi1zdGRlcnIu
dHh0VVQJAAMV9QFZm+cBWXV4CwABBPUBAAAEFAAAADWNsQrCMBQAd7/ibZnadCzZpAYRrB3q4BrT
VxMISch7tfj3FrHrcdx1w20crhp6PY7Hs1Zw8hPExBCSmYBs8ZnBMAjHnJWUIVkTXCJWbds0cka2
TsZE0c+zLEhpKRZpJ9WSMxZrCGtDngQ80ZqFcDvEPd5feg38yUhgCv7eJoS04gSrwwjiUXUpMkau
7pul4N8W4Ale/o2xPnwBUEsDBBQAAgAIADU1m0o8sAPHrAAAAOoCAAA/ABwAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3NjcmlwdC1zdGRlcnIudHh0VVQJAAMV
9QFZnecBWXV4CwABBPUBAAAEFAAAANWQsQ6CQBBEe79iOyo4SkJijEFiTEQKLGzPY/HOXO4Iuwj8
vWj0EyioZzLvZbLyUpXnHIq8qvbHPIWDqcF5ButlDaQ60zJIhkAzt6kQ1itptSdOkySORYOstHCe
nGka0SH5vlNI4klRO+14anEbwB2V7AnnWfdfLE5FDp+YQHb4BUpr/YA1DBodBLcw847RcXidWyn8
EAEYgod5oYs22eLqoxhXab/myxdzfwNQSwMEFAACAAgANTWbSlI4H++uAAAA9gIAAEMAHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvc3R5bGVzaGVldC1zdGRl
cnIudHh0VVQJAAMW9QFZnucBWXV4CwABBPUBAAAEFAAAANWQuwrCQBBFe7/idql0LSUgIjGIYEyx
FrbrOnEDy2zITNT8vQ/8BQv7y7mHU9QHW+9LVKW1622ZY9NewEnRuV4IomMkCUQKp8iCapcbE5N3
MSTRfLGYz01D6oPhJNw2jelJ0tB7EuNFZt2Y4UzeDS8YJ0ZhLapdVULHjgSup8+bizHd6YJ7IEZ2
mhaJlVinx9cqxxedoRVc2xvxbFL83Hv1Nlw+/lv/z+ObH+V/AlBLAwQKAAAAAAC9LZtKAAAAAAAA
AAAAAAAALQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvbWVkaWEtc291cmNlL1VU
CQADBegBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAcTWbSrNmUXSbAAAA0AAAAFwAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL21lZGlhLXNvdXJjZS9tZWRpYXNvdXJjZS1l
bmRvZnN0cmVhbS1pbnZhbGlkZXJyb3Itc3RkZXJyLnR4dFVUCQADhfUBWQXoAVl1eAsAAQT1AQAA
BBQAAAB9jbEKgzAURfd+xZsFJcag0U1oh0InKe0gDsE8NdAm7XuR0r9vKc5dL+ecK0VepUKlsgJR
NqpoCpnVWsF+vT869BbpTIi9zLVQTalrXaoBkiSBtG8vLTPGDjmsNOIpGOv83OFzRY4wOe942car
i8uBKFAzwMswMPoIMYDx4DxH40eEMMH/YlxM/NnmRmjse7tAm8Fx9oG+aLb7AFBLAwQKAAAAAACC
LptKAAAAAAAAAAAAAAAAAwAcAGpzL1VUCQADc+kBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMECgAA
AAAACC6bSgAAAAAAAAAAAAAAAAcAHABqcy9kb20vVVQJAAOP6AFZMfgBWXV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACACHNZtKSxuBNacAAADSAAAANQAcAGpzL2RvbS9jYWxsYmFjay1mdW5jdGlvbi13
aXRoLWhhbmRsZS1ldmVudC1zdGRlcnIudHh0VVQJAAOu9QFZM+gBWXV4CwABBPUBAAAEFAAAADXM
zQrCMBAE4LtPscf2oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASe
nOCIlEwAkxMv78blPEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90Paz
tGbC7+QTVi7GYrPdlqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQA
AgAIALc1m0pLG4E1pwAAANIAAAAwABwAanMvZG9tL2V4Y2VwdGlvbnMtdGhyb3duLWluLWNhbGxi
YWNrcy1zdGRlcnIudHh0VVQJAAMJ9gFZj+gBWXV4CwABBPUBAAAEFAAAADXMzQrCMBAE4LtPscf2
oBHESxBBtCeRQov2nKRbCKS7YZv48/ZW0dsMfDNV09SNhisZGxASQ8pCwASenOCIlEwAkxMv78bl
PEKxBuIEhgBFWMqFunHII07qZJJRVdeqDu3ZJ9VyFoefdmRBdeE+h5k90PaztGbC7+QTVi7GYrPd
lqChejqMyTPVsruz7/fwe9D6z7WOKAPLWEekA/U3FD+8CsscysUbUEsDBBQAAgAIABQ2m0o2qq0I
VAEAANIPAAAcABwAanMvcmVnZXhwLXVuaWNvZGUtc3RkZXJyLnR4dFVUCQADuPYBWXPpAVl1eAsA
AQT1AQAABBQAAADtlb1OwzAUhWfyFFbGKq1uXDdxI4gErSqmDrRMVQcncSAS+ZHjSIEqA2/AY/B4
PAJ2Vf6k7niwt3t879Hx/QZj8MMxkDEOEQQRoRGBiU+maNmVzR2vMi62gvMd9imQKKBzGpA9WtSC
b3kvIzQajdB9VbKm4Rly04+391cXXS62q7pSt9CHeYKzKYEkzCA+VKzk6EqNd6LgwkNt8aJrfzqB
4/FQyaQoeqVBr6qMt6koGlkLpZxcl9/aX3+q/JlU00kneXvsX92wtkhvWfv4u5NyQDtd53k4o5AQ
Avv4IJ8bHaXsJEueOMqKVHoorbtK6oCewytlrX1j5wKjSLtvlFI9oJMVhgSH+TnrVKVW4zqTu97o
N6zVHq6/srrDz0qcwYmHwcFnocwsFPOgUAvFOCgzsFDMg2L/FAOh2D/FQCihhWIelLmFYhyUAFso
5kEhFsp/QvkEUEsDBAoAAAAAABIum0oAAAAAAAAAAAAAAAAGABwAbWVkaWEvVVQJAAOj6AFZMfgB
WXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAACsNZtKAAAAAAAAAAAAAAAAHAAcAG1lZGlhL21vZGVy
bi1tZWRpYS1jb250cm9scy9VVAkAA/T1AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAKw1
m0oAAAAAAAAAAAAAAAA2ABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUt
bWVkaWEtY29udHJvbHMvVVQJAAP09QFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACsNZtK
LQXnTaQAAADQAAAAaQAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1l
ZGlhLWNvbnRyb2xzL2lvcy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtYWN0
dWFsLnR4dFVUCQAD9PUBWfT1AVl1eAsAAQT1AQAABBQAAAAdzE0KwjAQhuF9TvHRtXgAd/5UKCgt
NBeI7VQD04x0JpTc3uDmXT2893P3OMHHlWZINuwhWkxvLLIhicWl3CQRTPAiTIGZZudJ/8Y+hK4f
u8Qx0ZPmGK6SbBNWTLJ+s9WnWmHSo3N9guZpItUDimTskRlKhFC7RVLIgmY4j2ODtarwpioXYZa9
fl4FjW9Hj2v/HB6tb5v6dG7gUIaQlS7ZTJJzP1BLAwQUAAIACACsNZtKdYPXsOYBAADvCgAAZwAc
AG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9pb3MtaW5saW5lLW1lZGlhLWNvbnRyb2xzL2lv
cy1pbmxpbmUtbWVkaWEtY29udHJvbHMtYnV0dG9ucy1zdHlsZXMtZGlmZi50eHRVVAkAA/T1AVn0
9QFZdXgLAAEE9QEAAAQUAAAA7ZZPa+MwEMXv/hSDTy2ObGfb7GFP+VsI2xCDw5Y9yvbYEZElI41I
8u1XdnLpaQubwhaCQcby6PnN+2EYxhgkv7R0LdpkyYknq7c8ecPip6Drbe6ErJIlFq5JJD9rR4zQ
EjNonSSbtFgJnrS6QqPY8MBKrchoaROhLRNKCoUffsMKR6SVZZbOEi3DU4clYRXTiYIoiv5zu7wk
x+VgdjoFNh49QTQePcN0GkQvs/XrD9gJrwDeFxy5IKEaqLUBpUnU56VWCKShQCi5lFgFsPPm+yLa
I6y3+Xowsek9LK4WoNRt53xEcPEQBxDAVoF1ZYnWjsCHAEchJVhE4H41Ai3oGsJsluch+DAtb9BX
1lpKffRKxRnC3SrfwWK7yV5Xu1UYD/1MRs8TiL5fGoL+ynzIGXcW50MQAes1oUFaXF3lvamHS0wx
SmxR0WN8xOIgaMPtIdPWx6DVb991yVuEcPytO4VXIdMU/OGvagUvD43RTlULLbV5jA0IC+m/aTQ3
0ChuoMF7jaOgvVCQxmk67tGlHw16j6LZUy8RTtI+VwhYfhDd3H/mhsjSO7LPQ8YCNhOm83/aDYk9
3Yl9KrFMZHdaX4bWi5PSlgZR3aF9EWjDueuQU3t8fgwx1s8uvoSMw57quxHGb/wBUEsDBBQAAgAI
AKw1m0oxs5PxPwEAAA4JAABrABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL2lvcy1pbmxp
bmUtbWVkaWEtY29udHJvbHMvaW9zLWlubGluZS1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxl
cy1leHBlY3RlZC50eHRVVAkAA/T1AVn09QFZdXgLAAEE9QEAAAQUAAAA7ZbBasMwDIbvfgqRUwsj
pBt7gDa0UFhpILns6KRqIuLYwbLJ8vZzul522qAt9JCLL5Y+gT4Ef4HsSNfgGoT9Md9rRRoPeCKZ
Gu2sUQyV6Xrv8ATsRoUcC3HUwL6qkPkFRuNhIKWAEUGG1xIymDNE2TrPI+hClawxVJ6NUmYInHKE
qNjmBaTHQ/axLbZRYAqRKTlm0jNuvHNGi6kfanTpdX4+jV+Ul88YFXao3TIesGzJHSS3mWFyZPQn
lFjJDiFavfZf0Q/H1qVc/AkrZdXW1nh9So0ydhlbIIbkJkR9O6K8HSEnxECuIQ1JnCSrSVHyzx03
SHXjJkL0nkwrFXlL/SbMuJ+qZFb1GFVrsn24rPuZeptNPcZURtls6ekt7bxSXFlEPct6dlmXtmtU
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
LWNvbnRyb2xzL1VUCQADbugBWTH4AVl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmzWbSon8k55T
AQAAxAUAAHUAHABtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1t
ZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5
bGVzLWFjdHVhbC50eHRVVAkAA9b1AVlu6AFZdXgLAAEE9QEAAAQUAAAAvZTRa4MwEMbf81ccedpg
yJSudo9daWHQUpnCnlN7alg0kktw/veLXUf7ttZCXyTgfd/9vku4DMnKpgRbIWxEvk1XTinKDWKz
wb0UC91YoxVBruvWWdwD2V4hBYxtGyCX50j0BL120EmlgBBB+K+RSKAL4Mk8TTnUvkqU6CsLrZTu
vM+uB54t0wwW202yXmZL7j0Z+8BONvs3Z61u2CCGEu3i2Dwdej/sDj8DVFhjYx8Dq1vYYS5qBB7G
7Tdnq/n7+n+dwsICVdopT4MQeWkAn4Lg2R8u9KhQltW5Szj9c3kZXFiiRJ8IRzg+UjREukx3iCQJ
eDy7XHTMMMii6SBjK206YW69hSuRwygexRz+Ms+laf2sxzPPRjGPQ54ckBOZ3Bd3MrllwpkR+Rfd
lzh+vWXAp2V252cRhuOwT82Oq7XwCfz+MOQ3pq+wxqG/iPO1ydgPUEsDBBQAAgAIAJs1m0pJcxDq
DwEAABMDAABzABwAbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4t
bWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0
eWxlcy1kaWZmLnR4dFVUCQAD1vUBWdb1AVl1eAsAAQT1AQAABBQAAADVkUFPg0AQhe/8igknDQ5r
m1g90lpNjB4aSeS8wBRIFpYws7H997LQxCuNJy+7O5m8772ZRURQX9a4lljttWj1kqUqo/y9kcu1
c40p1Z5yVymjz9YJCrHgQOyMsGqpbLRqbUlDh1OBhe1ksGbs6cIyHp0xXAxE1/YxdyK2Y2Q5G2Kk
U0+FUBnLSYIoiv5RdF2I02YKniSAm7sniPyRJAEE8EnfTVfuJkkAh22aQkXybNvejeOmHnEzA2My
1FInt7HYHnIqdEsQrh77UxjgMqGho0DDEK6vUdXUVPWsW228Lnrdvn0sdOPaOlOOccF7xpBphvvx
sRRyMf/F+Agz5sFjxhUexg8+aMf0hy2u/Vw/UEsDBBQAAgAIAJs1m0qxSb2YKgEAAKYFAAB3ABwA
bWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJv
bHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy1idXR0b25zLXN0eWxlcy1leHBlY3Rl
ZC50eHRVVAkAA9b1AVlu6AFZdXgLAAEE9QEAAAQUAAAAvZRBasMwEEX3OsWgVQslYGOadJmEZNUQ
U/sCijK2RWXJaCRc375KE0iXrQLeaKP5M09fw6+RvDIt+A7hIOSx2getSTpEc8CzEltrvLOaQNp+
CB7PQH7SSAvGjgYoSIlELzDZAKPSGggRRDydQgLbAC/XVcWhj1WixVjZWK3tGPucJuD1rqphezyU
77t6x2NPxj5wVOa8Cd5bwy5iaNFvb8Ory+yn08/lAjX2aPzzwtsBTihFj8Cz5fDF/6jT2HhQBDz/
h6hD1XZXWfZ6kbFSi6kUgTAdOk+AXq6SoPMr9N66UbiZfc4eM3qt3BC9TmdeJTGnIRfX3VDlvLhF
8YjDtRPyk+YlXr49YvA9rmZeiyxLw74Pu4VnE18Q88NRzMRY4V3A+BG/g5Gxb1BLAwQUAAIACACb
NZtKvJqgElYIAADuHgAAewAcAG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxs
c2NyZWVuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMtYnV0
dG9ucy1zdHlsZXMtcHJldHR5LWRpZmYuaHRtbFVUCQAD1vUBWW7oAVl1eAsAAQT1AQAABBQAAADF
WWlz3MYR/c5fgSLLZuIigD1Iag9qUxKPiitOShW6rI+pAWawGHGAgTEDcqnE/z09FxbAArurMp1Y
ZS2AuV53v+7XgG5SmbHVyU1KEIafjEjkxSkqBZHvzyuZ+LNzeCzkKyOrkwWj+dOFt3imgkqCvX+f
ePCfJBvpYxLzEknK84WX85ws9VDES0xKP+JS8mzhjYuNh+Ga4OXJbydmO7tJzBkvF97ZaDrXY8ED
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
LsaSUT9i5OEhP/dDAL4o2WFYdRJmjYc9o/wewIqzPXl0BiM0JwLsDKlGmIat/WWOwBqkrA24OT6h
87SdoTjm4sAaEOAe3NEOMrLM6GPpApQFmFP5lFEtTGJmkZmXyIQ6bv/sWGQ10gK3nYB18sg3loGP
GhSFymGfhjQYQ+8Z8c9nildMlbwzVK/7VNf02f8HUEsDBAoAAAAAANo2m0oAAAAAAAAAAAAAAAAI
ABwAcmV0cmllcy9VVAkAAyz4AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAANo2m0oAAAAA
AAAAAAAAAAAOABwAcmV0cmllcy9tZWRpYS9VVAkAAyz4AVkx+AFZdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAANo2m0oAAAAAAAAAAAAAAAAkABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvVVQJAAMs+AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADaNptKAAAAAAAAAAAA
AAAARAAcAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21hY29zLWZ1bGxzY3Jl
ZW4tbWVkaWEtY29udHJvbHMvVVQJAAMs+AFZMfgBWXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADa
NptKOm32PFIBAADFBQAAfQAcAHJldHJpZXMvbWVkaWEvbW9kZXJuLW1lZGlhLWNvbnRyb2xzL21h
Y29zLWZ1bGxzY3JlZW4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250
cm9scy1idXR0b25zLXN0eWxlcy1hY3R1YWwudHh0VVQJAAMs+AFZLPgBWXV4CwABBPUBAAAEFAAA
AL2UUWuDMBSF3/MrLj5tMASLa7vHrrQwaKlMYc+pvWpYTCQ3wfrvF11Z97bOgi8ieE/Od27kZEhW
qBJshbDn+SHdOikpN4hqjyfB11pZoyVBruvGWTwB2U4ihYwdFJDLcyR6gk47aIWUQIjA/dMIJNAF
BMkqTQOo/RQv0U8WWkrd+nOOHQTZJs1gfdgnu022CfyZjL1jK9Tp1VmrFevFUKJdX8zT3vvhOHwM
UWKNyj6GVjdwxJzXCEG0aM7BjTqJhQVBEMwG0Xb1tvtbVKEoKwtUaSd9CIRo3pxD+OAEz/6FsUTy
LuGOcHyG2e04Q4YrzGL5AxP3NLeZXzINq5j33myrTcvNxNcQzf6h+sUcfTOvhGn87sczL0cxj0OO
B+REJNPixvE9G84Mzz9pWuLFyz0LvrbZxL9FFI3DvppdurXwCXyfGPKV6Sescegv4ndvMvYFUEsD
BBQAAgAIANo2m0oqJwmUJQEAAKMDAAB7ABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29u
dHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1l
ZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLWRpZmYudHh0VVQJAAMs+AFZLPgBWXV4CwABBPUB
AAAEFAAAANWRTU/DMAyG7/0V1k6gkkadgHHsxpiE4DBRiZ3T1tsipU0VO9r270mzAddVnLjkQ9Zj
+XkthAD5aY1vkeRSsZIvm1JusHrTfLkWXptGLrHyO2nUyXoWjMTCIXnDJB2y04FusdFKtrZB14n4
EbXt2FkTaqq2JLbeGKod4ti6qDyz7UgQnwySwGOPNWOT8ZGTNE3/oYKq2SsTBYoCxOwuzyGNZ1Ek
8IEH3TWLiCSwnpcl7JCfbdv7oF0OLW7ODTM02GLHtxnbHiqsVYswyWf9cXItaHDLoAkm00iJ66g9
6t3+zOWPA5eu5q/vV3O0t940YWAY6Aw2iuAhPBIIY4cdrZUn/EMA0xEqPwHMnkaIROpXY2AvGvfR
Y3SM0xhj8F9Zd1Due/1fUEsDBBQAAgAIANo2m0qxSb2YKgEAAKYFAAB/ABwAcmV0cmllcy9tZWRp
YS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3MtZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9t
YWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xzLWJ1dHRvbnMtc3R5bGVzLWV4cGVjdGVkLnR4
dFVUCQADLPgBWSz4AVl1eAsAAQT1AQAABBQAAAC9lEFqwzAQRfc6xaBVCyVgY5p0mYRk1RBT+wKK
MrZFZcloJFzfvkoTSJetAt5oo/kzT1/Dr5G8Mi34DuEg5LHaB61JOkRzwLMSW2u8s5pA2n4IHs9A
ftJIC8aOBihIiUQvMNkAo9IaCBFEPJ1CAtsAL9dVxaGPVaLFWNlYre0Y+5wm4PWuqmF7PJTvu3rH
Y0/GPnBU5rwJ3lvDLmJo0W9vw6vL7KfTz+UCNfZo/PPC2wFOKEWPwLPl8MX/qNPYeFAEPP+HqEPV
dldZ9nqRsVKLqRSBMB06T4BerpKg8yv03rpRuJl9zh4zeq3cEL1OZ14lMachF9fdUOW8uEXxiMO1
E/KT5iVevj1i8D2uZl6LLEvDvg+7hWcTXxDzw1HMxFjhXcD4Eb+DkbFvUEsDBBQAAgAIANo2m0oF
dQtNgwgAACUiAACDABwAcmV0cmllcy9tZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvbWFjb3Mt
ZnVsbHNjcmVlbi1tZWRpYS1jb250cm9scy9tYWNvcy1mdWxsc2NyZWVuLW1lZGlhLWNvbnRyb2xz
LWJ1dHRvbnMtc3R5bGVzLXByZXR0eS1kaWZmLmh0bWxVVAkAAyz4AVks+AFZdXgLAAEE9QEAAAQU
AAAA3Vppb9y4Gf7uXyHY6LpdWJrbmcOZIvGBFt0WQb1oPhaURI0YU6KWpOxxdvvf+/LSSBppZhZJ
ttjGiEXxfM/nfSj4JpUZXZ/dpBjF8MiwRF6UIi6wfHtZysSfX0K3kK8Ur8+WlORPV97ymQgicez9
fObBP4m30o9xxDiShOVLL2c5XumhkPEYcz9kUrJs6Y2KrRdDG8ers/+cme3sJhGjjC+9i+FkoceC
B0LxHUkSOx6i6GnDWZnHvpuazNVP/SBzgmCUxN5FHMdmLGG59BOUEfq69DKWM1GgyAqYIb4hIPII
Z97QdBUMlNN6cExBo2esBUpHLUknk0nH/gLlwheYk6Q2KMhnrM+oH+pTnMilNwxmrj8moqAINiE5
WMZK+EJimcLi4fAPVj4UxyTfVCuNbNY1qtX0jhWX5CkIJavpKXvGvKXRbDZb9RkbY2OGQPnkBzhL
2MUJZQjU4GSTyqbn1KxbUB+BLu4oBqYnElQctlSWKKTYjzClDS19vW/DSi8paOdrH6pQe+Go2En2
iCPlu96g0YubIdMOFxuzzu4QUMNia0643xbgXtgfVMNXXqAebQ17xRMkxuGr+u1pUd9TFj19QFwG
oOoyIVxIP0oJjXsNq457hPVXhzbjOAPXXh05z57hzG8Czg/VlEbYzVzUQbRIEiHqI0o2kBuSdajF
sYr0v6A8ptiZw+6jTKjeU2wcuovnqORCuUaJ3c5AFIJ3SucxOLMKHJM8WrxDUjTifD8cNhy/rlqB
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