<?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>160476</bug_id>
          
          <creation_ts>2016-08-02 16:27:11 -0700</creation_ts>
          <short_desc>Freeze the Objective-C DOM Event and CSS bindings</short_desc>
          <delta_ts>2016-08-02 17:32:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1216674</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 16:27:11 -0700</bug_when>
    <thetext>Freeze the Objective-C DOM Event and CSS bindings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216677</commentid>
    <comment_count>1</comment_count>
      <attachid>285159</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 16:30:21 -0700</bug_when>
    <thetext>Created attachment 285159
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216679</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-02 16:32:56 -0700</bug_when>
    <thetext>Attachment 285159 did not pass style-queue:

ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:54:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:57:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.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: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleDeclaration.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleDeclaration.mm: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/WebCore/bindings/objc/DOMEvent.mm:32:  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/WebCore/bindings/objc/DOMCSSRuleList.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRuleList.mm:30:  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/WebCore/bindings/objc/DOMCSSPageRule.mm:29:  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/WebCore/bindings/objc/DOMWheelEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.mm:37:  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/WebCore/bindings/objc/DOMOverflowEvent.h:29:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.h:30:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.mm:29:  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/WebCore/bindings/objc/DOMRGBColor.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMRGBColor.mm:36:  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/WebCore/bindings/objc/DOMCSSFontFaceRule.mm:29:  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/WebCore/bindings/objc/DOMCSSValue.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMTextEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMTextEvent.mm:35:  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/WebCore/bindings/objc/DOMWheelEvent.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleSheet.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleSheet.mm:32:  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/WebCore/bindings/objc/DOMMouseEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMMouseEvent.mm:37:  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/WebCore/bindings/objc/DOMCSSRule.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.mm:30:  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/WebCore/bindings/objc/DOMCSSRule.mm:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCounter.mm:29:  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/WebCore/bindings/objc/DOMProgressEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMProgressEvent.mm:33:  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/WebCore/bindings/objc/DOMKeyboardEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.mm:35:  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/WebCore/bindings/objc/DOMUIEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMUIEvent.mm:36:  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/WebCore/bindings/objc/DOMOverflowEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.mm:33:  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/WebCore/bindings/objc/DOMCSSImportRule.mm:29:  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/WebCore/bindings/objc/DOMCSSValueList.mm:29:  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/WebCore/bindings/objc/DOMMutationEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.mm:33:  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/WebCore/bindings/objc/DOMRect.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMRect.mm:35:  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/WebCore/bindings/objc/DOMCSSUnknownRule.mm:29:  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/WebCore/bindings/objc/DOMCSSStyleRule.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleRule.mm:30:  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/WebCore/bindings/objc/DOMCSSCharsetRule.mm:29:  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/WebCore/bindings/objc/DOMCSSPrimitiveValue.mm:29:  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/WebCore/bindings/objc/DOMCSSMediaRule.mm:29:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 106 in 83 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>1216690</commentid>
    <comment_count>3</comment_count>
      <attachid>285163</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 16:53:28 -0700</bug_when>
    <thetext>Created attachment 285163
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216692</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-02 16:56:05 -0700</bug_when>
    <thetext>Attachment 285163 did not pass style-queue:

ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:54:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:57:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.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: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleDeclaration.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleDeclaration.mm: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/WebCore/bindings/objc/DOMEvent.mm:32:  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/WebCore/bindings/objc/DOMCSSRuleList.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRuleList.mm:30:  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/WebCore/bindings/objc/DOMCSSPageRule.mm:29:  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/WebCore/bindings/objc/DOMWheelEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.mm:37:  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/WebCore/bindings/objc/DOMOverflowEvent.h:29:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.h:30:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.mm:29:  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/WebCore/bindings/objc/DOMRGBColor.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMRGBColor.mm:35:  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/WebCore/bindings/objc/DOMCSSFontFaceRule.mm:29:  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/WebCore/bindings/objc/DOMCSSValue.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMTextEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMTextEvent.mm:35:  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/WebCore/bindings/objc/DOMWheelEvent.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleSheet.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleSheet.mm:32:  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/WebCore/bindings/objc/DOMMouseEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMMouseEvent.mm:37:  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/WebCore/bindings/objc/DOMCSSRule.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.mm:30:  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/WebCore/bindings/objc/DOMCSSRule.mm:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCounter.mm:29:  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/WebCore/bindings/objc/DOMProgressEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMProgressEvent.mm:33:  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/WebCore/bindings/objc/DOMKeyboardEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.mm:35:  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/WebCore/bindings/objc/DOMUIEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMUIEvent.mm:36:  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/WebCore/bindings/objc/DOMOverflowEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.mm:33:  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/WebCore/bindings/objc/DOMCSSImportRule.mm:29:  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/WebCore/bindings/objc/DOMCSSValueList.mm:29:  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/WebCore/bindings/objc/DOMMutationEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.mm:33:  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/WebCore/bindings/objc/DOMRect.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMRect.mm:35:  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/WebCore/bindings/objc/DOMCSSUnknownRule.mm:29:  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/WebCore/bindings/objc/DOMCSSStyleRule.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleRule.mm:30:  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/WebCore/bindings/objc/DOMCSSCharsetRule.mm:29:  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/WebCore/bindings/objc/DOMCSSPrimitiveValue.mm:29:  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/WebCore/bindings/objc/DOMCSSMediaRule.mm:29:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 106 in 83 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>1216699</commentid>
    <comment_count>5</comment_count>
      <attachid>285165</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 17:03:17 -0700</bug_when>
    <thetext>Created attachment 285165
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216700</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-08-02 17:06:26 -0700</bug_when>
    <thetext>Attachment 285165 did not pass style-queue:

ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:46:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:47:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:48:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:49:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:50:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:51:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:52:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:53:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:54:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:55:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:56:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:57:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.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: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:59:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:60:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:61:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:62:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSPrimitiveValue.h:63:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:36:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:37:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:38:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:39:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:40:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:41:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:42:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:43:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:44:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.h:45:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleDeclaration.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleDeclaration.mm: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/WebCore/bindings/objc/DOMEvent.mm:32:  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/WebCore/bindings/objc/DOMCSSRuleList.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRuleList.mm:30:  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/WebCore/bindings/objc/DOMCSSPageRule.mm:29:  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/WebCore/bindings/objc/DOMWheelEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.mm:37:  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/WebCore/bindings/objc/DOMOverflowEvent.h:29:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.h:30:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMEvent.h:35:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.mm:29:  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/WebCore/bindings/objc/DOMRGBColor.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMRGBColor.mm:35:  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/WebCore/bindings/objc/DOMCSSFontFaceRule.mm:29:  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/WebCore/bindings/objc/DOMCSSValue.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSValue.h:34:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMTextEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMTextEvent.mm:35:  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/WebCore/bindings/objc/DOMWheelEvent.h:31:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.h:32:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMWheelEvent.h:33:  enum members should use InterCaps with an initial capital letter or initial &apos;k&apos; for C-style enums.  [readability/enum_casing] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleSheet.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleSheet.mm:32:  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/WebCore/bindings/objc/DOMMouseEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMMouseEvent.mm:37:  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/WebCore/bindings/objc/DOMCSSRule.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSRule.mm:30:  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/WebCore/bindings/objc/DOMCSSRule.mm:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCounter.mm:29:  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/WebCore/bindings/objc/DOMProgressEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMProgressEvent.mm:33:  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/WebCore/bindings/objc/DOMKeyboardEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMKeyboardEvent.mm:35:  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/WebCore/bindings/objc/DOMUIEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMUIEvent.mm:36:  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/WebCore/bindings/objc/DOMOverflowEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMOverflowEvent.mm:33:  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/WebCore/bindings/objc/DOMCSSImportRule.mm:29:  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/WebCore/bindings/objc/DOMCSSValueList.mm:29:  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/WebCore/bindings/objc/DOMMutationEvent.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMMutationEvent.mm:33:  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/WebCore/bindings/objc/DOMRect.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMRect.mm:35:  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/WebCore/bindings/objc/DOMCSSUnknownRule.mm:29:  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/WebCore/bindings/objc/DOMCSSStyleRule.mm:28:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebCore/bindings/objc/DOMCSSStyleRule.mm:30:  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/WebCore/bindings/objc/DOMCSSCharsetRule.mm:29:  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/WebCore/bindings/objc/DOMCSSPrimitiveValue.mm:29:  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/WebCore/bindings/objc/DOMCSSMediaRule.mm:29:  Found header this file implements after other header. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
Total errors found: 106 in 83 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>1216704</commentid>
    <comment_count>7</comment_count>
      <attachid>285165</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2016-08-02 17:24:13 -0700</bug_when>
    <thetext>Comment on attachment 285165
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1216707</commentid>
    <comment_count>8</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-08-02 17:32:43 -0700</bug_when>
    <thetext>Committed r204054: &lt;http://trac.webkit.org/changeset/204054&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285159</attachid>
            <date>2016-08-02 16:30:21 -0700</date>
            <delta_ts>2016-08-02 16:53:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160476-20160802162859.patch</filename>
            <type>text/plain</type>
            <size>301768</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg4Y2Q1ZTZkMGRlMGFk
M2IxODM4MDRmYzBkZDI3MDMwYTY5MjU0YS4uOGM4ZmRkN2RlMjg5MjQwOTBhZmM2NzA2N2YzZGFi
YjZjMjk2ZDdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk3IEBACiAyMDE2LTA4LTAyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgRnJlZXplIHRoZSBP
YmplY3RpdmUtQyBET00gRXZlbnQgYW5kIENTUyBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNDc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU0NoYXJzZXRSdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NQ1NTQ2hhcnNldFJ1bGUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU0ltcG9ydFJ1bGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01DU1NJbXBvcnRSdWxlLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU01lZGlhUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNT
U01lZGlhUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NNZWRp
YVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1Bh
Z2VSdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUGFnZVJ1bGUu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUGFnZVJ1bGVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVl
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWUu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWVJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGUuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlLm1tOiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3QubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24uaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hlZXQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01DU1NTdHlsZVNoZWV0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUNTU1Vua25vd25SdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NQ1NTVW5rbm93blJ1bGUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9N
Q1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTVmFs
dWUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdC5tbTogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNvdW50ZXIuaDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvb2JqYy9ET01Db3VudGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNvdW50ZXJJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnQu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5hbC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FdmVudFRhcmdldC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnQuaDogQWRkZWQuCisgICAgICAgICog
YmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTU1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01Nb3VzZUV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TU1vdXNlRXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TU11dGF0aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01NdXRh
dGlvbkV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9u
RXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01PdmVyZmxvd0V2
ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU92ZXJmbG93RXZlbnRJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZl
bnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50Lm1t
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnRJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IubW06IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NUkdCQ29sb3JJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTVJlY3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01SZWN0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRl
cm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5tbTogQWRkZWQuCisg
ICAgICAgICgtW0RPTVRleHRFdmVudCBkYXRhXSk6CisgICAgICAgICgtW0RPTVRleHRFdmVudCBp
bml0VGV4dEV2ZW50OmNhbkJ1YmJsZUFyZzpjYW5jZWxhYmxlQXJnOnZpZXdBcmc6ZGF0YUFyZzpd
KToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudEludGVybmFsLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVUlFdmVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NVUlFdmVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NV2hlZWxFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVdo
ZWVsRXZlbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVu
dEludGVybmFsLmg6IEFkZGVkLgorCisyMDE2LTA4LTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlIG1vcmUgT2JqZWN0aXZlLUMgYmluZGlu
Z3MgdGhhdCBhcmUgbm90IHVzZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDQ3MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBk
OGFhN2ZlNTY5MmUyZDk0Y2UyNTQwYzBjMmUxZmUwYWRjMzI5YTEwLi4xMzUzNjM3MjkzZGIzODZk
MDg0ODlhZjIzMWE4M2YxZTZkOGI3N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTIzNiwzMCArMjM2LDYgQEAgSlNfQU5EX09CSkNfQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvY3J5cHRvL0NyeXB0b0tleS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL0Ny
eXB0b0tleVBhaXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlw
dG8uaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9j
c3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVs
ZS5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAotICAgICQoV2Vi
Q29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBc
Ci0gICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwgXAotICAgICQoV2ViQ29yZSkv
Y3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWUuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUp
L2Nzcy9Db3VudGVyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlk
bCBcCi0gICAgJChXZWJDb3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nz
cy9Gb250RmFjZVNldC5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0Lmlk
bCBcCi0gICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvUmVjdC5p
ZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9BdHRyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKQEAgLTI4NywxNiArMjYz
LDEwIEBAIEpTX0FORF9PQkpDX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9F
bnRpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9FcnJvckV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vRXZl
bnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9FdmVudExpc3RlbmVyLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9kb20vRXZlbnRUYXJnZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Gb2N1c0V2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkv
ZG9tL0tleWJvYXJkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlQ2hhbm5l
bC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlkbCBcCkBAIC0zMDQsMjIgKzI3NCwxNiBA
QCBKU19BTkRfT0JKQ19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vTm9kZUxp
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvZG9tL092ZXJmbG93RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9QYXJl
bnROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAotICAgICQoV2ViQ29y
ZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vU2hhZG93Um9vdC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL1Nsb3RhYmxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vU3RyaW5nQ2FsbGJhY2su
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9UZXh0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20v
VGV4dEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9XaGVlbEV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vWE1MRG9jdW1lbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2ZpbGVhcGkvRmlsZUV4Y2VwdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZmlsZWFw
aS9GaWxlUmVhZGVyLmlkbCBcCkBAIC00NTUsMTQgKzQxOSwzOCBAQCBKU19BTkRfT0JKQ19CSU5E
SU5HX0lETFMgPSBcCiAjCiAKIEpTX09OTFlfQklORElOR19JRExTID0gXAorCSQoV2ViQ29yZSkv
Y3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VMb2Fk
RXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKKwkkKFdl
YkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJh
bWVSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAorCSQo
V2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VS
dWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIFwKKwkkKFdl
YkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRs
IFwKKwkkKFdlYkNvcmUpL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBcCisJJChXZWJDb3Jl
KS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVTaGVldC5p
ZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwgXAorCSQoV2ViQ29yZSkv
Y3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWUuaWRsIFwK
KwkkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9Db3Vu
dGVyLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBcCisJJChXZWJD
b3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9Gb250RmFjZVNldC5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL01lZGlh
UXVlcnlMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5p
ZGwgXAorCSQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvUmVj
dC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKIAkkKFdlYkNvcmUpL2Nz
cy9TdHlsZVNoZWV0LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKICAgICAkKFdlYkNvcmUp
L2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL1dlYktp
dENTU01hdHJpeC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwgXApAQCAtNDgwLDYg
KzQ2OCwxOCBAQCBKU19PTkxZX0JJTkRJTkdfSURMUyA9IFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdE5hbWVkRmxvdy5p
ZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvZG9tL0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vRXZlbnRMaXN0ZW5l
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL0V2ZW50VGFyZ2V0LmlkbCBcCisgICAgJChXZWJD
b3JlKS9kb20vS2V5Ym9hcmRFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZl
bnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9kb20vT3ZlcmZsb3dFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1Byb2dy
ZXNzRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9kb20vVGV4dEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vVUlF
dmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1doZWVsRXZlbnQuaWRsIFwKIAkkKFdlYkNv
cmUpL2ZpbGVhcGkvQmxvYi5pZGwgXAogCSQoV2ViQ29yZSkvZmlsZWFwaS9GaWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9maWxlYXBpL0ZpbGVFcnJvci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4NTM2NTdlOTU4Y2M0MWM3
OGVhYzk2ZTAyMmEwM2RmMGY3ZTQyOTguLmZlZDVhM2M5MDI4ZDdhNjkwZjgxYWRiOGUyOWM3MGI3
NDkwN2JlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTEwNjAsNiArMTA2MCw3IEBACiAJCTFBRjhFMTFBMTI1NjU5MjYwMDIz
MEZGNyAvKiBQcm94eVNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFGOEUxMTkxMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFGOEUxMzMx
MjU2NUE0NDAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRjhFMTMyMTI1NjVBNDQwMDIzMEZGNyAvKiBQcm94
eVNlcnZlci5jcHAgKi87IH07CiAJCTFBRjhFMUMzMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNl
cnZlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNlcnZlckNGTmV0LmNwcCAqLzsg
fTsKKwkJMUFGQzZEMkExRDUxNjA5ODAwQTQyRkExIC8qIERPTVRleHRFdmVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI5QUIwNzBD
Qjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMUFGRTEx
OTkwQ0JGRkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5NzBDQkZGQ0M0MDAz
MDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCAqLzsgfTsKIAkJMUFGRTExOUEwQ0JG
RkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRTExOTgwQ0JGRkNDNDAwMzAxN0ZBIC8q
IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oICovOyB9OwogCQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RG
QjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4QzFEMzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVB
VkZPYmpDLmggKi87IH07CkBAIC0zMTEyLDI1ICszMTEzLDI1IEBACiAJCTg1MDMxQjRGMEE0NEVG
QzcwMEY5OTJFMCAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIzOTBBNDRFRkM3MDBGOTkyRTAgLyogVUlF
dmVudFdpdGhLZXlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg1MDMxQjUwMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjNBMEE0
NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCAqLzsgfTsKIAkJODUwMzFCNTEwQTQ0RUZD
NzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODUwMzJE
RDcwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTQ2hhcnNldFJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERDcwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NTAzMkREODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDNDBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUubW0gKi87IH07Ci0JCTg1MDMyREQ5MEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREM1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NG
b250RmFjZVJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERDkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzJEQzUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1MDMyRERB
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NGb250RmFjZVJ1bGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDNjBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTRm9udEZhY2VSdWxlLm1tICovOyB9OwotCQk4NTAzMkREQjBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUwMzJEQzcwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1
bGUuaCAqLzsgfTsKKwkJODUwMzJEREIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMy
REM3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzJEREMwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0ltcG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0
UnVsZS5tbSAqLzsgfTsKLQkJODUwMzJEREQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlh
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUw
MzJEQzkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5oICovOyB9OworCQk4NTAz
MkRERDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDOTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTTWVkaWFSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODUwMzJEREUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVs
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMy
RENBMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUubW0gKi87IH07Ci0JCTg1MDMy
RERGMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJEQ0IwQUE4QzlCRTAwN0QzQjdEIC8q
IERPTUNTU1BhZ2VSdWxlLmggKi87IH07CisJCTg1MDMyRERGMEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzJEQ0IwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzJERTAwQUE4
QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJEQ0MwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U1BhZ2VSdWxlLm1tICovOyB9OwotCQk4NTAzMkRFMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUw
MzJEQ0QwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCAqLzsgfTsKKwkJODUwMzJERTEw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODUwMzJERTIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDRTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTUnVsZS5tbSAqLzsgfTsKLQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTAzMkRDRjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLzsgfTsK
KwkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDRjBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NTAzMkRFNDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVs
ZUxpc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTAzMkREMDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gKi87IH07Ci0JCTg1
MDMyREU1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkREMTBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICovOyB9OworCQk4NTAzMkRFNTBB
QThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJERDEwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTAzMkRFNjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1MDMyREQyMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0
aW9uLm1tICovOyB9OwotCQk4NTAzMkRFNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVS
dWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAz
MkREMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggKi87IH07CisJCTg1MDMy
REU3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQzMEFBOEM5QkUwMDdEM0I3RCAv
KiBET01DU1NTdHlsZVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4NTAzMkRFODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJE
RDQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLzsgfTsKLQkJODUwMzJE
RTkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERTkwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NTAzMkRFQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENjBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUubW0gKi87IH07CiAJCTg1MDY1NkZFMEFBQjQ3NjMw
MDJEMTVDMCAvKiBET01NZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDY1NkY4MEFBQjQ3NjMwMDJEMTVDMCAvKiBET01NZWRpYUxpc3Qu
aCAqLzsgfTsKIAkJODUwNjU2RkYwQUFCNDc2MzAwMkQxNUMwIC8qIERPTU1lZGlhTGlzdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDY1NkY5MEFB
QjQ3NjMwMDJEMTVDMCAvKiBET01NZWRpYUxpc3QubW0gKi87IH07CkBAIC0zMTc4LDcgKzMxNzks
NyBAQAogCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQkY0RDkwQUJCNkI1NTAwODY0
N0JCIC8qIERPTU5vZGUuaCAqLzsgfTsKIAkJODUzQkY0REMwQUJCNkI1NTAwODY0N0JCIC8qIERP
TU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTNCRjREQTBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSAqLzsgfTsKIAkJODUzQkY0RUMw
QUJCNkVCOTAwODY0N0JCIC8qIERPTU5vZGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1M0JGNEQ5MEFCQjZCNTUwMDg2NDdC
QiAvKiBET01Ob2RlLmggKi87IH07Ci0JCTg1NDA3NTIwMEFENkM1RkIwMDYyMEM1NyAvKiBET01F
dmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODU0MDc1MUYwQUQ2QzVGQjAwNjIwQzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IH07CisJ
CTg1NDA3NTIwMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1MUYwQUQ2QzVGQjAwNjIw
QzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODU0MDc1MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3
NTI1MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggKi87IH07CiAJCTg1NDA3NTNF
MEFENkM2REMwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1MUYwQUQ2QzVG
QjAwNjIwQzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTg1NDA3NTNGMEFENkM2REMw
MDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcg
LyogRE9NTm9kZUZpbHRlci5oICovOyB9OwpAQCAtMzIwOCwyNSArMzIwOSwyNSBAQAogCQk4NTUy
NkNEMjBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1MjZDRDAwQUIwQjdEOTAwMDMwMkVBIC8q
IERPTVRyZWVXYWxrZXIuaCAqLzsgfTsKIAkJODU1MjZDRDMwQUIwQjdEQTAwMDMwMkVBIC8qIERP
TVRyZWVXYWxrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTUyNkNEMTBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5tbSAqLzsgfTsK
IAkJODU1MjZEMDUwQUIwQjk3OTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2
Q0QwMEFCMEI3RDkwMDAzMDJFQSAvKiBET01UcmVlV2Fsa2VyLmggKi87IH07Ci0JCTg1NUQzNThB
MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1RDM1ODkwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJH
QkNvbG9yLmggKi87IH07CisJCTg1NUQzNThBMEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1RDM1
ODkwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU1RDM1OEQwQUQ3MDdDQzAwMTlBQUM3IC8q
IERPTVJHQkNvbG9yLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29s
b3IuaCAqLzsgfTsKIAkJODU2QzhBRTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2QzhBRTIwQTkx
MjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTg1NkM4QUU1MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmpl
Y3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZD
OEFFMzBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tICovOyB9OwotCQk4NTdFMEIyNTBB
QjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1v
dXNlRXZlbnQuaCAqLzsgfTsKKwkJODU3RTBCMjUwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNl
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU3RTBCMjYwQUIwNDM0NjAwMzZF
NDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5t
bSAqLzsgfTsKIAkJODU3RTBCMzEwQUIwNDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi87IH07CiAJ
CTg1ODAxNUNFMEFCQ0E3NUQwMDgwNTg4RCAvKiBET01YUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4MDE1Q0QwQUJDQTc1RDAw
ODA1ODhEIC8qIERPTVhQYXRoRXhjZXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODU4QzM4MUMwQUE4RTI5NjAwQjE4N0E0IC8qIERPTUNT
U1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLzsgfTsKKwkJODU4QzM4
MUMwQUE4RTI5NjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9N
Q1NTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NThDMzgxRDBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQjBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi87IH07Ci0JCTg1OEMzODJDMEFBOEU0MDUwMEIxODdB
NCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLmggKi87IH07CisJCTg1OEMzODJDMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQ
cmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU4QzM4
MkQwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkIwQUE4RTQwNTAwQjE4
N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tICovOyB9OwotCQk4NThDMzgzQzBBQThFRDgy
MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgzQTBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFs
dWVMaXN0LmggKi87IH07CisJCTg1OEMzODNDMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
OEMzODNBMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1ZUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NThDMzgzRDBBQThFRDgyMDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4M0IwQUE4RUQ4MjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVl
TGlzdC5tbSAqLzsgfTsKLQkJODU4QzM4QTUwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OEMzOEEx
MEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLmggKi87IH07CisJCTg1OEMzOEE1MEFBOEYy
MDQwMEIxODdBNCAvKiBET01Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NThDMzhBMTBBQThGMjA0MDBCMTg3QTQgLyogRE9NQ291bnRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1OEMz
OEE2MEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4QTIwQUE4RjIwNDAwQjE4N0E0IC8qIERP
TUNvdW50ZXIubW0gKi87IH07Ci0JCTg1OEMzOEE3MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzhB
MzBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVjdC5oICovOyB9OworCQk4NThDMzhBNzBBQThGMjA0
MDBCMTg3QTQgLyogRE9NUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NThDMzhBODBBQThG
MjA0MDBCMTg3QTQgLyogRE9NUmVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1OEMzOEE0MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tICov
OyB9OwotCQk4NThDMzkyODBBQThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM5MjYwQUE4
RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAqLzsgfTsKKwkJODU4QzM5MjgwQUE4
RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBET01D
U1NTdHlsZVNoZWV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODU4QzM5MjkwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzkyNzBB
QThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5tbSAqLzsgfTsKIAkJODU4QzM5Qjgw
QUE5MDVFRjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQTBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLzsgfTsKIAkJODU4QzM5QjkwQUE5MDVFRjAwQjE4N0E0
IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgyQTBBQThFNDA1MDBCMTg3QTQg
LyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLzsgfTsKQEAgLTMyNzMsNyArMzI3NCw3IEBACiAJ
CTg1QUNBQThFMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQThBMEE5Qjc1OUMwMDY3MUU5
MCAvKiBET01Ob2RlTGlzdC5tbSAqLzsgfTsKIAkJODVBQ0FCQjAwQTlDQUY4MDAwNjcxRTkwIC8q
IERPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUFDQUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUFDQUJCMTBBOUNBRjgwMDA2NzFFOTAg
LyogRE9NRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUFDQUJBRjBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQubW0gKi87IH07
Ci0JCTg1QUZBODIyMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1
IC8qIERPTUV2ZW50LmggKi87IH07CisJCTg1QUZBODIyMEFBRjUyOEEwMEU4NDMwNSAvKiBET01F
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVB
RkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVBRkE4MjMwQUFGNTI4QTAwRTg0MzA1IC8q
IERPTUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVBRkE4MjEwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovOyB9OwogCQk4NUI0
OThFRDBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThFQzBBREIzMkZCMDA5MjVD
QkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi87IH07CiAJCTg1QjQ5OEYzMEFEQjMzNkEwMDky
NUNCQiAvKiBET01DU1NWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThGMjBBREIzMzZBMDA5MjVDQkIgLyogRE9NQ1NTVmFs
dWVJbnRlcm5hbC5oICovOyB9OwpAQCAtMzMwNiwyMCArMzMwNywyMCBAQAogCQk4NUMwNTBCQjBB
RDg0RjVFMDA1NTMyRTcgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzA1MEI5MEFEODRGNUUwMDU1MzJFNyAv
KiBET01IVE1MRW1iZWRFbGVtZW50Lm1tICovOyB9OwogCQk4NUM3OEE2ODBBQkRFMUI0MDA0NEZD
MTYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUM3OEE2NzBBQkRFMUI0MDA0NEZDMTYgLyogRE9NRXhjZXB0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVDN0YzRTYw
QUFGNUQ1RTAwNDAxNEREIC8qIERPTUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFGQTgyMDBBQUY1MjhBMDBFODQz
MDUgLyogRE9NRXZlbnQuaCAqLzsgfTsKLQkJODVDN0Y0OTEwQUFGNzlEQzAwNDAxNEREIC8qIERP
TVVJRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi87IH07CisJCTg1QzdG
NDkxMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9N
VUlFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg1QzdGNDkyMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y0OTAwQUFGNzlEQzAwNDAx
NEREIC8qIERPTVVJRXZlbnQubW0gKi87IH07CiAJCTg1QzdGNEQwMEFBRjgzRjYwMDQwMTRERCAv
KiBET01VSUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVu
dC5oICovOyB9OwotCQk4NUM3RjVCRjBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1
QkMwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJODVDN0Y1
QkYwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAv
KiBET01NdXRhdGlvbkV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODVDN0Y1QzAwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZl
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3
RjVCRDBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5tbSAqLzsgfTsKLQkJODVD
N0Y1RDAwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUNFMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi87IH07CisJCTg1QzdGNUQwMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUM3RjVDRTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1
QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1Q0YwQUFGQjhEOTAwNDAx
NEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi87IH07Ci0JCTg1QzdGNUU3MEFBRkJBRkIwMDQw
MTRERCAvKiBET01XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUM3RjVFNTBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5o
ICovOyB9OworCQk4NUM3RjVFNzBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1RTUwQUFG
QkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9N
V2hlZWxFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tICovOyB9Owog
CQk4NUNBOTZCODBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50aXR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0Yg
LyogRE9NRW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJ
ODVDQTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1Q0E5NkI3MEE5NjIxQTYwMDY5MENDRiAv
KiBET01FbnRpdHkubW0gKi87IH07CiAJCTg1Q0E5NzVDMEE5NjJFNTQwMDY5MENDRiAvKiBET01E
b2N1bWVudFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1Q0E5NzVBMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUNBOTc1RDBBOTYyRTU0MDA2OTBD
Q0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODVDQTk3NUIwQTk2MkU1NDAwNjkwQ0NGIC8qIERPTURvY3VtZW50VHlw
ZS5tbSAqLzsgfTsKLQkJODVEMkFENjgwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDJB
RDY3MEFCMUE0MEEwMEMzMTNFQSAvKiBET01FdmVudExpc3RlbmVyLmggKi87IH07CisJCTg1RDJB
RDY4MEFCMUE0MEEwMEMzMTNFQSAvKiBET01FdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEg
LyogRE9NRXZlbnRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg1RDJBRDZEMEFCMUE0ODIwMEMzMTNFQSAvKiBET01FdmVudExpc3Rl
bmVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
ICovOyB9OwogCQk4NUQzODlCMjBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVEMzg5QjAwQTk5MUE3RjAw
MjgyMTQ1IC8qIERPTUF0dHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9
OwogCQk4NUQzODlCMzBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDM4OUIxMEE5OTFBN0YwMDI4MjE0
NSAvKiBET01BdHRyLm1tICovOyB9OwpAQCAtMzQwOCw3ICszNDA5LDcgQEAKIAkJODVGNzRFMDgw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQx
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggKi87IH07CiAJCTg1
Rjc0RTA5MEFBOERGOEMwMDBEQzI4NCAvKiBET01DU1NTdHlsZVJ1bGUuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQz
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCAqLzsgfTsKIAkJODVGNzRFMEEw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKLQkJODVGRjMxNUEwQUFG
QkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggKi87IH07CisJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1RkYzMTVCMEFB
RkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERP
TUtleWJvYXJkRXZlbnQubW0gKi87IH07CiAJCTg2MUMyRUE0MTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5jcHAgKi87IH07CiAJCTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFj
dGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NjY0LDcgKzU2NjUs
NyBAQAogCQlCQ0MwRTg3NTFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODcz
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQ0Mw
RTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwRTg3NDFCRkU3MEU5MDA4RjdG
NTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi87IH07CiAJCUJDQzQzODc4MEU4ODZDQzcwMDUz
M0RENSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpT
SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07Ci0JCUJDQzU3MzM1MEQ2OTVCQkUwMDZF
RjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NF
dmVudC5oICovOyB9OworCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkND
NTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0M1NzMzNjBENjk1QkJFMDA2
RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVz
c0V2ZW50Lm1tICovOyB9OwogCQlCQ0M1NzMzODBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jl
c3NFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudEludGVy
bmFsLmggKi87IH07CiAJCUJDQzU3MzREMEQ2OTVDMDYwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5o
ICovOyB9OwpAQCAtNjI3Nyw3ICs2Mjc4LDcgQEAKIAkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZF
IC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRy
YXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlE
RDc2M0JCMjA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERENzYzQkIxMDk5MkMyQzkwMDc0MEI4
RSAvKiBsaWJ4bWwyLmR5bGliICovOyB9OwogCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyog
Q1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NVbmtub3duUnVsZS5oICovOyB9
OwotCQlEREU2M0VENTBCN0Q0NUE4MDAyMjY5OTggLyogRE9NVGV4dEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTQ3NTBCN0QxQkFGMDBB
NTNGRkQgLyogRE9NVGV4dEV2ZW50LmggKi87IH07CisJCURERTYzRUQ1MEI3RDQ1QTgwMDIyNjk5
OCAvKiBET01UZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzM0ExNDc1MEI3RDFCQUYwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlERTQ5QjMwOTE2
NUYyRkUxMDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDcxNjVGMkZFMTAw
MTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKIAkJREVCQ0NE
RDIxNjY0NkU4MjAwQTQ1MkUxIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERTQ5QjMwODE2NUYyRkUx
MDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLzsgfTsKIAkJREVCQ0NE
RDQxNjY0NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDAxNjVGMkZDNjAw
MTAzMzhEIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oICovOyB9OwpAQCAtOTEwNSw3ICs5
MTA2LDcgQEAKIAkJNDNGNkZEOTUxM0JDRDBCMTAwMjI0MDUyIC8qIFNWR0FuaW1hdGVkSW50ZWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZElu
dGVnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEw
MDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0MTUyOTJEMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NDI5QUIw
NzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVRleHRFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0MjlBQjA3MENCODRGODEwMDc2NDdDNSAvKiBET01UZXh0RXZl
bnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IERPTVRleHRFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owog
CQk0NDJBQkNENTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5l
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c0xv
YWRlckNsaWVudENGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyQUY3
QTcxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWlja0xvb2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQy
QUY3QTgxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrTG9vay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwNTc4LDI1ICsxMDU3OSwyNSBAQAogCQk4NTAzMUIzOTBBNDRFRkM3MDBGOTky
RTAgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVUlFdmVudFdpdGhLZXlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTAzMUIzQTBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2hlZWxFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaGVlbEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1ND
aGFyc2V0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTQ2hh
cnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQzQwQUE4QzlC
RTAwN0QzQjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VS
dWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NGb250RmFjZVJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQzYwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1MDMyREM3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbXBvcnRSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NJbXBvcnRSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTUNTU0ltcG9ydFJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1
MDMyREM5MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTAzMkRDQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU01lZGlh
UnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQ0IwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01DU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAz
MkRDQzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUGFnZVJ1bGUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NSdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01D
U1NSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNT
U1J1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENGMEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUw
MzJERDAwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU1J1bGVMaXN0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkREMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkRE
MjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZURlY2xhcmF0aW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkREMzBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJERDQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg1MDMyREQ1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3du
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTVW5rbm93blJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUwMzJEQzMwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTQ2hhcnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CisJCTg1MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NQ1NTQ2hhcnNldFJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTRm9udEZhY2VS
dWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTAzMkRDNjBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTAzMkRDNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
SW1wb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IERPTUNTU0ltcG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1
MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NJbXBv
cnRSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlv
bklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJEQzkwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBs
aW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODUwMzJEQ0EwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NQ1NTTWVkaWFSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJE
Q0IwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyRENDMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQ
YWdlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owor
CQk4NTAzMkRDRDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1J1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyRENFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBET01DU1NSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJE
Q0YwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUnVsZUxpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyREQwMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTUnVsZUxpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owor
CQk4NTAzMkREMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1N0
eWxlRGVjbGFyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNp
ZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyREQyMEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NTdHlsZURl
Y2xhcmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJERDMwQUE4QzlC
RTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1N0eWxlUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5n
Lm9iamNwcDsgfTsKKwkJODUwMzJERDQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NQ1NTU3R5bGVSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1
YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUw
MzJERDUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1Vua25vd25SdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTVW5rbm93blJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1MDMyREQ2MEFBOEM5QkUwMDdEM0I3RCAv
KiBET01DU1NVbmtub3duUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01DU1NVbmtub3duUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODUwNjU2REMwQUFCNDREOTAwMkQxNUMwIC8qIFN0eWxlU2hlZXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODUwNjU2REYwQUFCNDU0RjAwMkQxNUMwIC8qIFN0eWxlU2hlZXRMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3R5bGVTaGVldExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA2NDYsNyArMTA2NDcsNyBAQAogCQk4NTM4RjA4NDBBRDcyQ0I2MDA2QTgx
RDEgLyogRE9NUmFuZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJh
bmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTNCRjREOTBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTNCRjREQTBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTQwNzUxRjBB
RDZDNUZCMDA2MjBDNTcgLyogRE9NRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcg
LyogRE9NTm9kZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NDBBRDZD
QkY5MDA2MjBDNTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQXBwbGV0RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU0MDc1NjUwQUQ2Q0JGOTAwNjIwQzU3IC8qIERP
TUhUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01IVE1MRW1iZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OwpAQCAtMTA2OTAsNDAgKzEwNjkxLDQwIEBACiAJCTg1NzREMUY2MEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEpT
U1ZHUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjcwQURFNjEy
MjAwNENCQTExIC8qIEpTU1ZHUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTVkdSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3
NEQxRjgwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmg7IHBhdGggPSBKU1NWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODU3RTBCMjQwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTW91c2VFdmVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU3RTBCMjMwQUIwNDM0NjAwMzZF
NDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVu
ZGluZyA9IDA7IHBhdGggPSBET01Nb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NTW91
c2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRp
b25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1ODAxNUNEMEFCQ0E3NUQw
MDgwNTg4RCAvKiBET01YUGF0aEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01YUGF0aEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk4NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NThDMzgxQjBBQThFMjk2MDBCMTg3QTQg
LyogRE9NQ1NTVmFsdWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NQ1NTVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OEMzODJB
MEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4MkIwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUNTU1ByaW1pdGl2ZVZhbHVlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NThD
MzgzQTBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NWYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFn
ZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1OEMz
ODJCMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUHJp
bWl0aXZlVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NThDMzgzQTBBQThF
RDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTVmFsdWVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NThDMzgzQjBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVM
aXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU1Zh
bHVlTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4QTEwQUE4RjIw
NDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4QTIw
QUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NQ291bnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODU4QzM4QTEwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01Db3VudGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9
IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NThDMzhBMjBBQThGMjA0MDBCMTg3QTQgLyogRE9N
Q291bnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ291bnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1
OEMzOEEzMEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01SZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
OEMzOEE0MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVJlY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg1OEMzOEVGMEFBOEZERDEwMEIxODdBNCAvKiBSR0JDb2xvci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJHQkNvbG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODU4QzM5MTAwQUE4RkYwMDAwQjE4N0E0IC8qIENTU1N0eWxlU2hlZXQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDU1NTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJODU4QzM5MjYwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlU2hlZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERP
TUNTU1N0eWxlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NQ1NTU3R5bGVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5
MDlDRDMwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5MDlDRDQwQUNDN0E3RTAwREYwMUYx
IC8qIERPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTkwOUNENTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTSW1wb3J0UnVs
ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbXBv
cnRSdWxlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5MDlDRDYw
QUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU01lZGlhUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk4NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
UGFnZVJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Q1NTUGFnZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTkw
OUNEOTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlUnVsZUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBE
T01DU1NTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4
Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsK
KwkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNT
U1N0eWxlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNEMzBBQ0M3
QTdFMDBERjAxRjEgLyogRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1OTA5Q0Q0MEFDQzdBN0UwMERG
MDFGMSAvKiBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNENTBBQ0M3QTdFMDBERjAxRjEg
LyogRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNENjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
TWVkaWFSdWxlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODU5MDlDRDcwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU1BhZ2VSdWxlSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGgg
PSBET01DU1NQYWdlUnVsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NTkwOUNEOTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NTdHls
ZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU5MDlDREEwQUND
N0E3RTAwREYwMUYxIC8qIERPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1OTA5Q0RCMEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NV
bmtub3duUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NVbmtub3duUnVsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1OTA5RDI2MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NQcmltaXRpdmVWYWx1
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTA5RDI2MEFDQzdE
NTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUHJpbWl0aXZlVmFs
dWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU5MDlEMjgwQUNDN0Q1
NTAwREYwMUYxIC8qIERPTUNTU1ZhbHVlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUgLyogSFRNTEVtYmVkRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxFbWJlZEVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyog
RE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01LZXlib2FyZEV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODU5ODlEQzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTW91c2VFdmVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OTg5REM3MEFDQzhCQkQwMEEwQkM1
MSAvKiBET01NdXRhdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NT3ZlcmZsb3dFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01PdmVyZmxvd0V2
ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5ODlEQzkwQUND
OEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NVUlFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdoZWVsRXZlbnRJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTk4OURDNTBBQ0M4QkJEMDBB
MEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmll
ciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4OURDNjBBQ0M4QkJEMDBBMEJDNTEgLyog
RE9NTW91c2VFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVF
bmRpbmcgPSAwOyBwYXRoID0gRE9NTW91c2VFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
b2JqY3BwOyB9OworCQk4NTk4OURDNzBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NTXV0YXRpb25FdmVu
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NTXV0YXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NT3ZlcmZsb3dFdmVudEludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
T3ZlcmZsb3dFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4
OURDOTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NVUlFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVUlFdmVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEg
LyogRE9NV2hlZWxFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NV2hlZWxFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NSFRNTEhlYWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NTk5
MkVCMzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxIZWFkRWxlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU5OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERP
TUhUTUxIdG1sRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
SFRNTEh0bWxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1NSwx
MSArMTA3NTYsMTEgQEAKIAkJODVBQ0FCQUYwQTlDQUY4MDAwNjcxRTkwIC8qIERPTURvY3VtZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFGQTc0MTBBQUYyOTg0MDBFODQz
MDUgLyogRXZlbnRMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50TGlz
dGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFGQTc0MjBBQUYyOTg0
MDBFODQzMDUgLyogRXZlbnRUYXJnZXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVu
dFRhcmdldC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QUZBODIwMEFBRjUy
OEEwMEU4NDMwNSAvKiBET01FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVBRkE4MjEwQUFG
NTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERPTUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NUI0OThFQzBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NSdWxlSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1QUZBODIxMEFBRjUyOEEwMEU4
NDMwNSAvKiBET01FdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NUI0OThFQzBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUnVs
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0
aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUI0OThGMjBBREIzMzZB
MDA5MjVDQkIgLyogRE9NQ1NTVmFsdWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NQ1NTVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk4NUI0OThGNDBBREIzMzdBMDA5MjVDQkIgLyogRE9NRXZlbnRJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXZlbnRJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUI0OThGNDBBREIzMzdBMDA5MjVDQkIgLyogRE9N
RXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0g
MDsgcGF0aCA9IERPTUV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJ
CTg1QjQ5OEZBMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5vZGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUI0OThGRTBBREIzNDgxMDA5MjVDQkIgLyogRE9NU3R5bGVTaGVl
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHlsZVNo
ZWV0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVCQTRDRDUwQUE2
ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5vYmpjcHA7IH07CkBAIC0xMDc5NywxOSArMTA3OTgsMTkgQEAKIAkJODVD
NTZDQUMwQUE4OUY4RTAwRDk1NzU1IC8qIENTU0NoYXJzZXRSdWxlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ1NTQ2hhcnNldFJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDU1NVbmtub3duUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1Qzc4QTY3MEFCREUxQjQwMDQ0RkMxNiAvKiBET01FeGNlcHRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXhjZXB0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01VSUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBE
T01VSUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TVVJRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUJDMEFBRkI3
Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg1QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAv
KiBET01PdmVyZmxvd0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01PdmVyZmxvd0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUNG
MEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU92ZXJmbG93RXZlbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XaGVlbEV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAv
KiBET01XaGVlbEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTVdoZWVsRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1QzdG
NDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVUlFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5n
Lm9iamNwcDsgfTsKKwkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9
IERPTVVJRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUM3RjVCQzBBQUZC
N0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5vYmpjcHA7IH07CisJCTg1QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlv
bkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9
IDA7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4
Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsK
KwkJODVDN0Y1Q0UwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01PdmVyZmxvd0V2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUM3RjVDRjBBQUZCOEQ5MDA0MDE0
REQgLyogRE9NT3ZlcmZsb3dFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NT3ZlcmZsb3dFdmVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5vYmpjcHA7IH07CisJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVDN0Y1RTYwQUFG
QkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVdoZWVsRXZlbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50
aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FbnRpdHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVDQTk2QjcwQTk2MjFBNjAwNjkwQ0NGIC8qIERP
TUVudGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01F
bnRpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1Q0E5NzVBMEE5NjJFNTQw
MDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTURvY3VtZW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NUNBOTc1QjBBOTYyRTU0MDA2OTBDQ0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50VHlwZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2
ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVEMkFENjcwQUIxQTQw
QTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01FdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NUQzODlCMDBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQXR0ci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUQzODlCMTBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01BdHRyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkMxMDBBQTM0MUY2MDBBRDY0QzUgLyogRE9N
SFRNTEZvcm1FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NSFRNTEZvcm1FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OwpAQCAtMTA4NTIsOSArMTA4NTMsOSBAQAogCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyog
RE9NQ0RBVEFTZWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNEQVRBU2VjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1RTcxMTQwMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DaGFyYWN0ZXJEYXRhSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNoYXJhY3RlckRhdGFJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE0MTBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ29tbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01Db21tZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODVFNzExNDIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvdW50ZXJJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ291bnRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RTcxMTQzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
U1NSdWxlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NSdWxlTGlzdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1
RTcxMTQ0MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlRGVjbGFyYXRp
b25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUU3MTE0MjBBQzVE
NTM0MDA1MzI3MEYgLyogRE9NQ291bnRlckludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ291bnRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUU3MTE0MzBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ1NT
UnVsZUxpc3RJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5n
ID0gMDsgcGF0aCA9IERPTUNTU1J1bGVMaXN0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpj
cHA7IH07CisJCTg1RTcxMTQ0MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NTdHlsZURlY2xhcmF0
aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CiAJCTg1RTcxMTQ1MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Eb2N1bWVudEZyYWdt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3Vt
ZW50RnJhZ21lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3
MTE0NjBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE0NzBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1l
bnRUeXBlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURv
Y3VtZW50VHlwZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk0
OCw4ICsxMDk0OSw4IEBACiAJCTg1RjMyQUU5MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2Vs
ZWN0RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01IVE1MU2VsZWN0RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVG
NTZBNzgwQTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RjU2QTc5MEE5OENFMzcwMEFEQjYwQSAv
KiBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRG
MzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUtleWJvYXJk
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3
NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29k
ZS5sYW5nLm9iamNwcDsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50
TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1
bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5
RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0
aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTEzNiw4ICsxMTEzNyw4IEBA
CiAJCTkzM0ExNDJCMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMzQTE0MkMwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMzQTE0MkQwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTMzQTE0NzUwQjdEMUJBRjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01UZXh0RXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMzQTE0QTkwQjdEMUQwOTAwQTUzRkZEIC8qIERPTVRl
eHRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVRl
eHRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMzQTE0NzUwQjdEMUJB
RjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OworCQk5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVRl
eHRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRp
b25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTkzM0ExNEI2MEI3RDFENTIw
MEE1M0ZGRCAvKiBKU1RleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1RleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
M0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1RleHRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzNDN0E3NDFDMEZCQzQ0MDAzNEZCOTcgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNTcGVsbENoZWNrZXJTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNTQwLDkgKzEzNTQxLDkgQEAKIAkJQkNDMEU4NzMx
QkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1
cmVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJl
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M0Mzg3NzBFODg2Q0M3
MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Q
cm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDNTczMzQwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dyZXNzRXZl
bnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0M1NzMzMzBENjk1
QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5s
YW5nLm9iamNwcDsgfTsKKwkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNz
RXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAw
OyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJ
CUJDQzU3MzM3MEQ2OTVCRDcwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3Bl
Y2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJQkNDNUJERkUw
QzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NTdHlsZVNoZWV0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNDNUJERkYwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NTdHlsZVNoZWV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzhDRkNBMDk4NkNEMjQwMDE0MEJGMiAv
KiBDb2xvckRhdGEuZ3BlcmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENvbG9yRGF0YS5ncGVy
Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDc1LDYgKzE2NDc2LDEwMCBAQAog
CQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFBRkM2
RDI4MUQ1MTVENjcwMEE0MkZBMSAvKiBDU1MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTg1OEMzOEExMEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVy
LmggKi8sCisJCQkJODU4QzM4QTIwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIubW0gKi8s
CisJCQkJODVFNzExNDIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvdW50ZXJJbnRlcm5hbC5oICov
LAorCQkJCTg1MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5oICov
LAorCQkJCTg1MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5tbSAq
LywKKwkJCQk4NTkwOUNEMzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTQ2hhcnNldFJ1bGVJbnRl
cm5hbC5oICovLAorCQkJCTg1MDMyREM1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NGb250RmFj
ZVJ1bGUuaCAqLywKKwkJCQk4NTAzMkRDNjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZh
Y2VSdWxlLm1tICovLAorCQkJCTg1OTA5Q0Q0MEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NGb250
RmFjZVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREM3MEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NJbXBvcnRSdWxlLmggKi8sCisJCQkJODUwMzJEQzgwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU0ltcG9ydFJ1bGUubW0gKi8sCisJCQkJODU5MDlDRDUwQUNDN0E3RTAwREYwMUYxIC8qIERP
TUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREM5MEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLywKKwkJCQk4NTAzMkRDQTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTTWVkaWFSdWxlLm1tICovLAorCQkJCTg1OTA5Q0Q2MEFDQzdBN0UwMERGMDFGMSAv
KiBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyRENCMEFBOEM5QkUwMDdE
M0I3RCAvKiBET01DU1NQYWdlUnVsZS5oICovLAorCQkJCTg1MDMyRENDMEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NQYWdlUnVsZS5tbSAqLywKKwkJCQk4NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEg
LyogRE9NQ1NTUGFnZVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzODJBMEFBOEU0MDUwMEIx
ODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oICovLAorCQkJCTg1OEMzODJCMEFBOEU0MDUw
MEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSAqLywKKwkJCQk4NTkwOUQyNjBBQ0M3
RDU1MDBERjAxRjEgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oICovLAorCQkJCTg1
MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlLmggKi8sCisJCQkJODUwMzJEQ0Uw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gKi8sCisJCQkJODVCNDk4RUMwQURCMzJG
QjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyRENGMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5oICovLAorCQkJCTg1MDMyREQwMEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5tbSAqLywKKwkJCQk4NUU3MTE0MzBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREQxMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggKi8sCisJCQkJODUwMzJERDIw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0gKi8sCisJCQkJODVF
NzExNDQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5o
ICovLAorCQkJCTg1MDMyREQzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCAq
LywKKwkJCQk4NTAzMkRENDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLm1tICov
LAorCQkJCTg1OTA5Q0Q5MEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NTdHlsZVJ1bGVJbnRlcm5h
bC5oICovLAorCQkJCTg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBET01DU1NTdHlsZVNoZWV0
LmggKi8sCisJCQkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQu
bW0gKi8sCisJCQkJODU5MDlDREEwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU1N0eWxlU2hlZXRJ
bnRlcm5hbC5oICovLAorCQkJCTg1MDMyREQ1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtu
b3duUnVsZS5oICovLAorCQkJCTg1MDMyREQ2MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtu
b3duUnVsZS5tbSAqLywKKwkJCQk4NTkwOUNEQjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTVW5r
bm93blJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBE
T01DU1NWYWx1ZS5oICovLAorCQkJCTg1OEMzODFCMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NW
YWx1ZS5tbSAqLywKKwkJCQk4NUI0OThGMjBBREIzMzZBMDA5MjVDQkIgLyogRE9NQ1NTVmFsdWVJ
bnRlcm5hbC5oICovLAorCQkJCTg1OEMzODNBMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1
ZUxpc3QuaCAqLywKKwkJCQk4NThDMzgzQjBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVM
aXN0Lm1tICovLAorCQkJCTg1OTA5RDI4MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NWYWx1ZUxp
c3RJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzOEEzMEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0
LmggKi8sCisJCQkJODU4QzM4QTQwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QubW0gKi8sCisJ
CQkJODVFNzExODcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTVJlY3RJbnRlcm5hbC5oICovLAorCQkJ
CTg1NUQzNTg5MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oICovLAorCQkJCUJDQUVG
Q0FEMTAxNkNFNEEwMDQwRDM0RSAvKiBET01SR0JDb2xvci5tbSAqLywKKwkJCQlCQ0QwRkM0RTBE
QkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSBDU1M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkxQUZDNkQyOTFE
NTE1RkM5MDBBNDJGQTEgLyogRXZlbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk4NUFGQTgyMDBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQuaCAq
LywKKwkJCQk4NUFGQTgyMTBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQubW0gKi8sCisJCQkJ
ODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKKwkJCQk4
NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5oICovLAorCQkJCTg1
NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICovLAorCQkJCTg1RkYz
MTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8sCisJCQkJODVGRjMx
NTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8sCisJCQkJODU5ODlE
QzUwQUNDOEJCRDAwQTBCQzUxIC8qIERPTUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oICovLAorCQkJ
CTg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi8sCisJCQkJODU3
RTBCMjQwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gKi8sCisJCQkJODU5ODlE
QzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTg1
QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8sCisJCQkJODVD
N0Y1QkQwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0gKi8sCisJCQkJODU5
ODlEQzcwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oICovLAor
CQkJCTg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi8sCisJ
CQkJODVDN0Y1Q0YwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi8sCisJ
CQkJODU5ODlEQzgwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5o
ICovLAorCQkJCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lmgg
Ki8sCisJCQkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0g
Ki8sCisJCQkJQkNDNTczMzcwRDY5NUJENzAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnRJbnRl
cm5hbC5oICovLAorCQkJCTkzM0ExNDc1MEI3RDFCQUYwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQu
aCAqLywKKwkJCQk5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICov
LAorCQkJCTQ0MjlBQjA3MENCODRGODEwMDc2NDdDNSAvKiBET01UZXh0RXZlbnRJbnRlcm5hbC5o
ICovLAorCQkJCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8sCisJ
CQkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0gKi8sCisJCQkJODU5
ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTg1
QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCisJCQkJODVDN0Y1
RTYwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCisJCQkJODU5ODlEQ0Ew
QUNDOEJCRDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBFdmVudHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxQzVG
QUVDQTBEQ0ZEOEM5MDBENThGNzggLyogSW5zcGVjdG9yICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE4NTAzLDgwICsxODU5OCwxMCBAQAogCQkJbmFtZSA9
IENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk4NTk2N0RDQTBBQThC
RjBGMDA1RkVERUUgLyogQ1NTICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCQk4NThDMzhBMTBBQThGMjA0MDBCMTg3QTQgLyogRE9NQ291bnRlci5oICovLAot
CQkJCTg1OEMzOEEyMEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLm1tICovLAotCQkJCTg1
MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5oICovLAotCQkJCTg1
MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5tbSAqLywKLQkJCQk4
NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLmggKi8sCi0JCQkJ
ODUwMzJEQzYwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5tbSAqLywKLQkJ
CQk4NTAzMkRDNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5oICovLAotCQkJ
CTg1MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLm1tICovLAotCQkJ
CTg1MDMyREM5MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLywKLQkJCQk4
NTAzMkRDQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLm1tICovLAotCQkJCTg1
MDMyRENCMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5oICovLAotCQkJCTg1MDMy
RENDMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5tbSAqLywKLQkJCQk4NThDMzgy
QTBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLywKLQkJCQk4NThD
MzgyQjBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0gKi8sCi0JCQkJ
ODUwMzJEQ0QwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCAqLywKLQkJCQk4NTAzMkRD
RTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5tbSAqLywKLQkJCQk4NTAzMkRDRjBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLywKLQkJCQk4NTAzMkREMDBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gKi8sCi0JCQkJODUwMzJERDEwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLywKLQkJCQk4NTAzMkREMjBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbSAqLywKLQkJCQk4NTAzMkRE
MzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggKi8sCi0JCQkJODUwMzJERDQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLywKLQkJCQk4NThDMzkyNjBB
QThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5oICovLAotCQkJCTg1OEMzOTI3MEFB
OEZGOUQwMEIxODdBNCAvKiBET01DU1NTdHlsZVNoZWV0Lm1tICovLAotCQkJCTg1MDMyREQ1MEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3duUnVsZS5oICovLAotCQkJCTg1MDMyREQ2MEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3duUnVsZS5tbSAqLywKLQkJCQk4NThDMzgxQTBB
QThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLywKLQkJCQk4NThDMzgxQjBBQThFMjk2
MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi8sCi0JCQkJODU4QzM4M0EwQUE4RUQ4MjAwQjE4
N0E0IC8qIERPTUNTU1ZhbHVlTGlzdC5oICovLAotCQkJCTg1OEMzODNCMEFBOEVEODIwMEIxODdB
NCAvKiBET01DU1NWYWx1ZUxpc3QubW0gKi8sCi0JCQkJODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0
IC8qIERPTVJlY3QuaCAqLywKLQkJCQk4NThDMzhBNDBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVj
dC5tbSAqLywKLQkJCQk4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29sb3IuaCAq
LywKLQkJCQlCQ0FFRkNBRDEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gKi8sCi0J
CQkpOwotCQkJbmFtZSA9IENTUzsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CTg1QUZBN0FCMEFBRjNCQjAwMEU4NDMwNSAvKiBFdmVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTg1QUZBODIwMEFBRjUyOEEwMEU4NDMwNSAvKiBE
T01FdmVudC5oICovLAotCQkJCTg1QUZBODIxMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5t
bSAqLywKLQkJCQk4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
ICovLAotCQkJCTg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICov
LAotCQkJCTg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8s
Ci0JCQkJODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8s
Ci0JCQkJODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLywKLQkJ
CQk4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLywKLQkJCQk4
NUM3RjVCQzBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oICovLAotCQkJCTg1
QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50Lm1tICovLAotCQkJCTg1
QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi8sCi0JCQkJODVD
N0Y1Q0YwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi8sCi0JCQkJQkND
NTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLywKLQkJCQlCQ0M1
NzMzNDBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSAqLywKLQkJCQk5MzNB
MTQ3NTBCN0QxQkFGMDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50LmggKi8sCi0JCQkJOTMzQTE0QTkw
QjdEMUQwOTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSAqLywKLQkJCQk4NUM3RjQ4RjBBQUY3
OURDMDA0MDE0REQgLyogRE9NVUlFdmVudC5oICovLAotCQkJCTg1QzdGNDkwMEFBRjc5REMwMDQw
MTRERCAvKiBET01VSUV2ZW50Lm1tICovLAotCQkJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAv
KiBET01XaGVlbEV2ZW50LmggKi8sCi0JCQkJODVDN0Y1RTYwQUFGQkFGQjAwNDAxNEREIC8qIERP
TVdoZWVsRXZlbnQubW0gKi8sCi0JCQkpOwotCQkJbmFtZSA9IEV2ZW50czsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTg1OTY3RDlGMEFBOEJCNTkwMDVGRURFRSAvKiBDb3JlICovLAotCQkJCTg1OTY3RENBMEFB
OEJGMEYwMDVGRURFRSAvKiBDU1MgKi8sCi0JCQkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1IC8q
IEV2ZW50cyAqLywKIAkJCQk4NUU3MTEzRDBBQzVENEExMDA1MzI3MEYgLyogSW50ZXJuYWwgKi8s
CiAJCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOwpAQCAtMTg1OTAsMjEgKzE4NjE1
LDYgQEAKIAkJCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ0RBVEFTZWN0aW9uSW50
ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE0MDBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ2hhcmFjdGVy
RGF0YUludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNv
bW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTQyMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
b3VudGVySW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNEMzBBQ0M3QTdFMDBERjAxRjEgLyogRE9N
Q1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q0MEFDQzdBN0UwMERGMDFG
MSAvKiBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q1MEFDQzdB
N0UwMERGMDFGMSAvKiBET01DU1NJbXBvcnRSdWxlSW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNE
NjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTTWVkaWFSdWxlSW50ZXJuYWwuaCAqLywKLQkJCQk4
NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTUGFnZVJ1bGVJbnRlcm5hbC5oICovLAot
CQkJCTg1OTA5RDI2MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVy
bmFsLmggKi8sCi0JCQkJODVCNDk4RUMwQURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRl
cm5hbC5oICovLAotCQkJCTg1RTcxMTQzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NSdWxlTGlz
dEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNDQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNTU1N0
eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q5MEFDQzdBN0UwMERGMDFG
MSAvKiBET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0RBMEFDQzdBN0Uw
MERGMDFGMSAvKiBET01DU1NTdHlsZVNoZWV0SW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNEQjBB
Q0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1
QjQ5OEYyMEFEQjMzNkEwMDkyNUNCQiAvKiBET01DU1NWYWx1ZUludGVybmFsLmggKi8sCi0JCQkJ
ODU5MDlEMjgwQUNDN0Q1NTAwREYwMUYxIC8qIERPTUNTU1ZhbHVlTGlzdEludGVybmFsLmggKi8s
CiAJCQkJODVFNzExNDUwQUM1RDUzNDAwNTMyNzBGIC8qIERPTURvY3VtZW50RnJhZ21lbnRJbnRl
cm5hbC5oICovLAogCQkJCTg1RTcxMTQ2MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Eb2N1bWVudElu
dGVybmFsLmggKi8sCiAJCQkJODVFNzExNDcwQUM1RDUzNDAwNTMyNzBGIC8qIERPTURvY3VtZW50
VHlwZUludGVybmFsLmggKi8sCkBAIC0xODYxMiwyMyArMTg2MjIsMTIgQEAKIAkJCQk4NUU3MTE0
OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzEx
NEEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eUludGVybmFsLmggKi8sCiAJCQkJODVFNzEx
NEIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eVJlZmVyZW5jZUludGVybmFsLmggKi8sCi0J
CQkJODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKLQkJ
CQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgg
Ki8sCi0JCQkJODU5ODlEQzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5h
bC5oICovLAotCQkJCTg1OTg5REM3MEFDQzhCQkQwMEEwQkM1MSAvKiBET01NdXRhdGlvbkV2ZW50
SW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE4MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NTmFtZWRO
b2RlTWFwSW50ZXJuYWwuaCAqLywKIAkJCQk4NUI0OThGQTBBREIzNDAyMDA5MjVDQkIgLyogRE9N
Tm9kZUludGVybmFsLmggKi8sCiAJCQkJODVFNzExODQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5v
ZGVMaXN0SW50ZXJuYWwuaCAqLywKLQkJCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9N
T3ZlcmZsb3dFdmVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExODYwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbkludGVybmFsLmggKi8sCi0JCQkJQkNDNTczMzcw
RDY5NUJENzAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnRJbnRlcm5hbC5oICovLAotCQkJCTg1
RTcxMTg3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01SZWN0SW50ZXJuYWwuaCAqLywKLQkJCQlCQ0Qw
RkM0RTBEQkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oICovLAogCQkJCTBG
RjUwMjYyMTAyQkE5MkIwMDY2RjM5QSAvKiBET01TdHlsZU1lZGlhSW50ZXJuYWwuaCAqLywKLQkJ
CQk0NDI5QUIwNzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLywK
IAkJCQk4NUU3MTE4QTBBQzVENTM1MDA1MzI3MEYgLyogRE9NVGV4dEludGVybmFsLmggKi8sCi0J
CQkJODU5ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovLAot
CQkJCTg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gSW50ZXJuYWw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMjIyMjEsNiArMjIyMjAsOCBAQAogCQlCQzFBMzc5NDA5N0M2RkM0MDAxOUYzRDggLyog
b2JqYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUFG
QzZEMjkxRDUxNUZDOTAwQTQyRkExIC8qIEV2ZW50cyAqLywKKwkJCQkxQUZDNkQyODFENTE1RDY3
MDBBNDJGQTEgLyogQ1NTICovLAogCQkJCTFBQ0YzRkM1MUQ1MDEzQjAwMDYzQUVGQiAvKiBSYW5n
ZXMgKi8sCiAJCQkJMUFDRjNGQzQxRDUwMTNBOTAwNjNBRUZCIC8qIFRyYXZlcnNhbCAqLywKIAkJ
CQkxQUNGM0ZDMzFENTAxM0EwMDA2M0FFRkIgLyogU3R5bGUgU2hlZXRzICovLApAQCAtMjYzMTYs
NiArMjYzMTcsNyBAQAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOUI2RTEwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFGQzZEMkExRDUxNjA5
ODAwQTQyRkExIC8qIERPTVRleHRFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVCRTEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2ZXJOb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTZGRDQ4RTBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGlu
YXRlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU0NoYXJzZXRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0NoYXJzZXRSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBiODUyZDhhMjc1OWU2OWIzZDRlZDlj
NDkxMjc4ZTE2Y2M1OTAxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NQ1NTQ2hhcnNldFJ1bGUuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3Jl
L0RPTUNTU1J1bGUuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxB
QkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01DU1NDaGFyc2V0UnVs
ZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICplbmNv
ZGluZzsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTQ2hhcnNldFJ1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0No
YXJzZXRSdWxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMGE0MDFiNmM2OGRlMGFkMTEyZTEzMTZjMzEzMjlk
M2QyNWE5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0NoYXJzZXRSdWxlLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NDaGFyc2V0
UnVsZS5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2Rl
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJV
UkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9H
ZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU0NoYXJzZXRS
dWxlKj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4oX2ludGVybmFsKSkKKwor
QGltcGxlbWVudGF0aW9uIERPTUNTU0NoYXJzZXRSdWxlCisKKy0gKE5TU3RyaW5nICopZW5jb2Rp
bmcKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmVuY29kaW5nKCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTQ2hhcnNldFJ1
bGUqIGNvcmUoRE9NQ1NTQ2hhcnNldFJ1bGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBw
ZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU0NoYXJzZXRSdWxlKj4od3JhcHBlci0+
X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU0NoYXJzZXRSdWxlICpraXQoV2ViQ29yZTo6Q1NT
Q2hhcnNldFJ1bGUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1Jv
dW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU0NoYXJzZXRSdWxlKj4oa2l0
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NDaGFyc2V0UnVsZUludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjVkMmVhMzNiMTdhYzE4ZTk5MmMxYTQ1NzFlN2M4ZjYzY2MwMGQxNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTQ2hh
cnNldFJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTQ2hh
cnNldFJ1bGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTQ2hhcnNldFJ1bGU7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU0NoYXJzZXRSdWxlKiBjb3JlKERPTUNT
U0NoYXJzZXRSdWxlICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTQ2hhcnNldFJ1bGUgKmtpdChX
ZWJDb3JlOjpDU1NDaGFyc2V0UnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTRm9udEZhY2VSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM4YzM0Njk1ZGNlODgwM2Rh
YTI5MTBlMjA2OWI5ZWYwNDU5NDNmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NQ1NTRm9udEZhY2VSdWxlLmgKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01DU1NSdWxlLmg+CisKK0BjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOwor
CitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBET01DU1NGb250RmFjZVJ1bGUgOiBET01DU1NSdWxlCitAcHJvcGVydHkgKHJlYWRvbmx5
LCBzdHJvbmcpIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKnN0eWxlOworQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMGFhYzA1N2JjMzQzM2I0NWMzZjUzZTYwOTJlNGMwNGIyZDI2Yzg1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUu
bW0KQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01DU1NGb250RmFj
ZVJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbXBvcnQg
IkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgor
I2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01O
b2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlN0eWxlUHJvcGVydGllcy5oIgorI2lt
cG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNv
cmU6OkNTU0ZvbnRGYWNlUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NGb250RmFjZVJ1bGUKKworLSAo
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKXN0eWxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+c3R5
bGUoKSkpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSogY29yZShET01D
U1NGb250RmFjZVJ1bGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSo+KHdyYXBwZXItPl9pbnRlcm5hbCkg
OiAwOworfQorCitET01DU1NGb250RmFjZVJ1bGUgKmtpdChXZWJDb3JlOjpDU1NGb250RmFjZVJ1
bGUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU0ZvbnRGYWNlUnVsZSo+KGtpdChzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTQyODg5NDkxMDVlMmQ2NjkwMGRmZjk5MTU3NGM5N2ExMGI1MGQ3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTRm9udEZhY2VS
dWxlSW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU0ZvbnRGYWNl
UnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NGb250RmFjZVJ1bGU7Cit9
CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSogY29yZShET01DU1NG
b250RmFjZVJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NGb250RmFjZVJ1bGUgKmtpdChX
ZWJDb3JlOjpDU1NGb250RmFjZVJ1bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1NJbXBvcnRSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY3ZjAxNzY3YjgwMDk2YjY1MTNi
ZDhlMWU3YjZiMjU3ZDY3Mjg2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NQ1NTUnVsZS5oPgorCitAY2xhc3MgRE9NQ1NTU3R5bGVTaGVldDsKK0BjbGFzcyBET01N
ZWRpYUxpc3Q7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFD
KDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUNTU0ltcG9ydFJ1bGUgOiBET01D
U1NSdWxlCitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqaHJlZjsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NTWVkaWFMaXN0ICptZWRpYTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHksIHN0cm9uZykgRE9NQ1NTU3R5bGVTaGVldCAqc3R5bGVTaGVldDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMWE5ZmQzYTA3OWJlNTFiZmE3M2FjNjIzNWRiYjA4YzczNzc5Y2RhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NJbXBvcnRSdWxl
Lm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ1NTSW1wb3J0
UnVsZUludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbXBvcnQgIkNT
U1N0eWxlU2hlZXQuaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NQ1NTU3R5bGVTaGVldEludGVybmFsLmgiCisjaW1wb3J0ICJET01NZWRpYUxpc3RJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJNZWRp
YUxpc3QuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBv
cnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKwor
I2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGUqPihyZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRp
b24gRE9NQ1NTSW1wb3J0UnVsZQorCistIChOU1N0cmluZyAqKWhyZWYKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhyZWYoKTsK
K30KKworLSAoRE9NTWVkaWFMaXN0ICopbWVkaWEKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5tZWRp
YSgpKSk7Cit9CisKKy0gKERPTUNTU1N0eWxlU2hlZXQgKilzdHlsZVNoZWV0Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpn
ZXRQdHIoSU1QTC0+c3R5bGVTaGVldCgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTSW1w
b3J0UnVsZSogY29yZShET01DU1NJbXBvcnRSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NJbXBvcnRSdWxlKj4od3JhcHBl
ci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU0ltcG9ydFJ1bGUgKmtpdChXZWJDb3JlOjpD
U1NJbXBvcnRSdWxlKiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NJbXBvcnRSdWxlKj4oa2l0
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcwMjhhMTc3YmJmYzQxNTlmNmQ5ODkzZjFlYTFiMWM5NDY5MDdiZTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ltcG9y
dFJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTSW1wb3J0
UnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NJbXBvcnRSdWxlOworfQor
CitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpDU1NJbXBvcnRSdWxlKiBjb3JlKERPTUNTU0ltcG9y
dFJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NJbXBvcnRSdWxlICpraXQoV2ViQ29yZTo6
Q1NTSW1wb3J0UnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NNZWRpYVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
TWVkaWFSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ4NDUzYTIzZjM4YTE5MjU0ZmRkMjFiMzhjMGIxZGVl
ZDRiZjQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTTWVkaWFSdWxlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01DU1NSdWxl
Lmg+CisKK0BjbGFzcyBET01DU1NSdWxlTGlzdDsKK0BjbGFzcyBET01NZWRpYUxpc3Q7CitAY2xh
c3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIERPTUNTU01lZGlhUnVsZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0
eSAocmVhZG9ubHksIHN0cm9uZykgRE9NTWVkaWFMaXN0ICptZWRpYTsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIHN0cm9uZykgRE9NQ1NTUnVsZUxpc3QgKmNzc1J1bGVzOworCistICh1bnNpZ25lZClp
bnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9B
VkFJTEFCTEVfTUFDKDEwXzUpOworLSAodm9pZClkZWxldGVSdWxlOih1bnNpZ25lZClpbmRleDsK
K0BlbmQKKworQGludGVyZmFjZSBET01DU1NNZWRpYVJ1bGUgKERPTUNTU01lZGlhUnVsZURlcHJl
Y2F0ZWQpCistICh1bnNpZ25lZClpbnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgOih1bnNpZ25l
ZClpbmRleCBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU01lZGlhUnVsZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVkaWFSdWxlLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5MmIxM2NiMTQxZGYyODZlZjVjNzI0MDVjZjI4YmM4MTU3YTFmYjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU01lZGlhUnVsZS5tbQpAQCAt
MCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU01lZGlhUnVsZUludGVy
bmFsLmgiCisKKyNpbXBvcnQgIkNTU01lZGlhUnVsZS5oIgorI2ltcG9ydCAiQ1NTUnVsZUxpc3Qu
aCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUxp
c3RJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTWVkaWFMaXN0SW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBv
cnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiTWVkaWFMaXN0LmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRP
YmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NNZWRpYVJ1bGUqPihyZWludGVycHJldF9jYXN0PFdlYkNv
cmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NQ1NTTWVkaWFS
dWxlCisKKy0gKERPTU1lZGlhTGlzdCAqKW1lZGlhCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bWVk
aWEoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAqKWNzc1J1bGVzCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQ
dHIoSU1QTC0+Y3NzUnVsZXMoKSkpOworfQorCistICh1bnNpZ25lZClpbnNlcnRSdWxlOihOU1N0
cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVj
KTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5nICopcnVsZSA6KHVuc2lnbmVk
KWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElN
UEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9N
RXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHZvaWQpZGVsZXRlUnVsZToo
dW5zaWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+ZGVsZXRl
UnVsZShpbmRleCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisK
K0BlbmQKKworV2ViQ29yZTo6Q1NTTWVkaWFSdWxlKiBjb3JlKERPTUNTU01lZGlhUnVsZSAqd3Jh
cHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
Q1NTTWVkaWFSdWxlKj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU01lZGlh
UnVsZSAqa2l0KFdlYkNvcmU6OkNTU01lZGlhUnVsZSogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
Q1NTTWVkaWFSdWxlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkp
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVk
aWFSdWxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVk
aWFSdWxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzRkZDU0YjA2MzU3YmFlNWQwZDhhNWVhNzIw
NzA5NTBjNDkxZmM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NQ1NTTWVkaWFSdWxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENTU01l
ZGlhUnVsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTTWVkaWFSdWxlKiBjb3Jl
KERPTUNTU01lZGlhUnVsZSAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU01lZGlhUnVsZSAqa2l0
KFdlYkNvcmU6OkNTU01lZGlhUnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NQYWdlUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NmQ5ZTA5ZjY0MmFkNzk1ZjkxYmNiZmU3
ZGU4NWQ2MWIwYTIzMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1BhZ2VSdWxlLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01D
U1NSdWxlLmg+CisKK0BjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOworQGNsYXNzIE5TU3Ry
aW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBET01DU1NQYWdlUnVsZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0eSAoY29weSkg
TlNTdHJpbmcgKnNlbGVjdG9yVGV4dDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1BhZ2VSdWxlLm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDcyOWZmODQ4NGQ2Y2Zm
YzNlZTFhZmQ2YjQyMDY0MDE1Y2NjODQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5tbQpAQCAtMCwwICsxLDc1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU1BhZ2VSdWxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCAi
Q1NTUGFnZVJ1bGUuaCIKKyNpbXBvcnQgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbXBvcnQg
IkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbklu
dGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlv
bkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQg
IlN0eWxlUHJvcGVydGllcy5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVS
TC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dl
dFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUGFnZVJ1bGUq
PihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1w
bGVtZW50YXRpb24gRE9NQ1NTUGFnZVJ1bGUKKworLSAoTlNTdHJpbmcgKilzZWxlY3RvclRleHQK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPnNlbGVjdG9yVGV4dCgpOworfQorCistICh2b2lkKXNldFNlbGVjdG9yVGV4dDooTlNT
dHJpbmcgKiluZXdTZWxlY3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0b3JUZXh0KG5ld1NlbGVjdG9yVGV4dCk7
Cit9CisKKy0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPnN0eWxlKCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpDU1NQYWdlUnVsZSogY29y
ZShET01DU1NQYWdlUnVsZSAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUGFnZVJ1bGUqPih3cmFwcGVyLT5faW50ZXJuYWwpIDog
MDsKK30KKworRE9NQ1NTUGFnZVJ1bGUgKmtpdChXZWJDb3JlOjpDU1NQYWdlUnVsZSogdmFsdWUp
Cit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTUGFnZVJ1bGUqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Q1NTUnVsZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01DU1NQYWdlUnVsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1BhZ2VSdWxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjZhZmY5YjM2OTBl
MzQ1YmViYmM0OTFhYzQ1NDg2YmJlYTYwM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZUludGVybmFsLmgKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01DU1NQYWdlUnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDU1NQYWdlUnVsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTUGFn
ZVJ1bGUqIGNvcmUoRE9NQ1NTUGFnZVJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NQYWdl
UnVsZSAqa2l0KFdlYkNvcmU6OkNTU1BhZ2VSdWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc1ODY4
MGNkYWU4YWQxN2QxYzM5NmE2ZGJkNWE1MDEwODA3NzgyMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMCww
ICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK0BjbGFzcyBET01Db3VudGVy
OworQGNsYXNzIERPTVJHQkNvbG9yOworQGNsYXNzIERPTVJlY3Q7CitAY2xhc3MgTlNTdHJpbmc7
CisKK2VudW0geworICAgIERPTV9DU1NfVU5LTk9XTiA9IDAsCisgICAgRE9NX0NTU19OVU1CRVIg
PSAxLAorICAgIERPTV9DU1NfUEVSQ0VOVEFHRSA9IDIsCisgICAgRE9NX0NTU19FTVMgPSAzLAor
ICAgIERPTV9DU1NfRVhTID0gNCwKKyAgICBET01fQ1NTX1BYID0gNSwKKyAgICBET01fQ1NTX0NN
ID0gNiwKKyAgICBET01fQ1NTX01NID0gNywKKyAgICBET01fQ1NTX0lOID0gOCwKKyAgICBET01f
Q1NTX1BUID0gOSwKKyAgICBET01fQ1NTX1BDID0gMTAsCisgICAgRE9NX0NTU19ERUcgPSAxMSwK
KyAgICBET01fQ1NTX1JBRCA9IDEyLAorICAgIERPTV9DU1NfR1JBRCA9IDEzLAorICAgIERPTV9D
U1NfTVMgPSAxNCwKKyAgICBET01fQ1NTX1MgPSAxNSwKKyAgICBET01fQ1NTX0haID0gMTYsCisg
ICAgRE9NX0NTU19LSFogPSAxNywKKyAgICBET01fQ1NTX0RJTUVOU0lPTiA9IDE4LAorICAgIERP
TV9DU1NfU1RSSU5HID0gMTksCisgICAgRE9NX0NTU19VUkkgPSAyMCwKKyAgICBET01fQ1NTX0lE
RU5UID0gMjEsCisgICAgRE9NX0NTU19BVFRSID0gMjIsCisgICAgRE9NX0NTU19DT1VOVEVSID0g
MjMsCisgICAgRE9NX0NTU19SRUNUID0gMjQsCisgICAgRE9NX0NTU19SR0JDT0xPUiA9IDI1LAor
ICAgIERPTV9DU1NfVlcgPSAyNiwKKyAgICBET01fQ1NTX1ZIID0gMjcsCisgICAgRE9NX0NTU19W
TUlOID0gMjgsCisgICAgRE9NX0NTU19WTUFYID0gMjkKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxF
X01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTUHJpbWl0aXZlVmFsdWUgOiBET01DU1NWYWx1ZQorQHBy
b3BlcnR5IChyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKKworLSAodm9p
ZClzZXRGbG9hdFZhbHVlOih1bnNpZ25lZCBzaG9ydCl1bml0VHlwZSBmbG9hdFZhbHVlOihmbG9h
dClmbG9hdFZhbHVlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworLSAoZmxvYXQpZ2V0Rmxv
YXRWYWx1ZToodW5zaWduZWQgc2hvcnQpdW5pdFR5cGU7CistICh2b2lkKXNldFN0cmluZ1ZhbHVl
Oih1bnNpZ25lZCBzaG9ydClzdHJpbmdUeXBlIHN0cmluZ1ZhbHVlOihOU1N0cmluZyAqKXN0cmlu
Z1ZhbHVlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworLSAoTlNTdHJpbmcgKilnZXRTdHJp
bmdWYWx1ZTsKKy0gKERPTUNvdW50ZXIgKilnZXRDb3VudGVyVmFsdWU7CistIChET01SZWN0ICop
Z2V0UmVjdFZhbHVlOworLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlOworQGVuZAor
CitAaW50ZXJmYWNlIERPTUNTU1ByaW1pdGl2ZVZhbHVlIChET01DU1NQcmltaXRpdmVWYWx1ZURl
cHJlY2F0ZWQpCistICh2b2lkKXNldEZsb2F0VmFsdWU6KHVuc2lnbmVkIHNob3J0KXVuaXRUeXBl
IDooZmxvYXQpZmxvYXRWYWx1ZSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7Cist
ICh2b2lkKXNldFN0cmluZ1ZhbHVlOih1bnNpZ25lZCBzaG9ydClzdHJpbmdUeXBlIDooTlNTdHJp
bmcgKilzdHJpbmdWYWx1ZSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2
ZVZhbHVlLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQcmltaXRpdmVW
YWx1ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYjg0MmRiYWU3ZjZjNDgxMzdlM2IwNTNhOTIwYTc0MmJhMTkw
YTdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
U1NQcmltaXRpdmVWYWx1ZS5tbQpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU1ByaW1p
dGl2ZVZhbHVlLmgiCisjaW1wb3J0ICJDb3VudGVyLmgiCisjaW1wb3J0ICJET01DU1NWYWx1ZUlu
dGVybmFsLmgiCisjaW1wb3J0ICJET01Db3VudGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NUkdCQ29sb3JJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NUmVjdEludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9y
dCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJSR0JDb2xvci5oIgorI2ltcG9y
dCAiUmVjdC5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2lt
cG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgor
CisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqPihy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFsKSkKKworQGltcGxl
bWVudGF0aW9uIERPTUNTU1ByaW1pdGl2ZVZhbHVlCisKKy0gKHVuc2lnbmVkIHNob3J0KXByaW1p
dGl2ZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnByaW1pdGl2ZVR5cGUoKTsKK30KKworLSAodm9pZClzZXRGbG9hdFZh
bHVlOih1bnNpZ25lZCBzaG9ydCl1bml0VHlwZSBmbG9hdFZhbHVlOihmbG9hdClmbG9hdFZhbHVl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldEZsb2F0VmFsdWUodW5pdFR5
cGUsIGZsb2F0VmFsdWUsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
fQorCistICh2b2lkKXNldEZsb2F0VmFsdWU6KHVuc2lnbmVkIHNob3J0KXVuaXRUeXBlIDooZmxv
YXQpZmxvYXRWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRGbG9h
dFZhbHVlKHVuaXRUeXBlLCBmbG9hdFZhbHVlLCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRP
TUVycm9yKGVjKTsKK30KKworLSAoZmxvYXQpZ2V0RmxvYXRWYWx1ZToodW5zaWduZWQgc2hvcnQp
dW5pdFR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZmxvYXQgcmVzdWx0ID0gSU1Q
TC0+Z2V0RmxvYXRWYWx1ZSh1bml0VHlwZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAodm9pZClzZXRTdHJpbmdWYWx1
ZToodW5zaWduZWQgc2hvcnQpc3RyaW5nVHlwZSBzdHJpbmdWYWx1ZTooTlNTdHJpbmcgKilzdHJp
bmdWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRTdHJpbmdWYWx1
ZShzdHJpbmdUeXBlLCBzdHJpbmdWYWx1ZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7Cit9CisKKy0gKHZvaWQpc2V0U3RyaW5nVmFsdWU6KHVuc2lnbmVkIHNob3J0KXN0
cmluZ1R5cGUgOihOU1N0cmluZyAqKXN0cmluZ1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIElNUEwtPnNldFN0cmluZ1ZhbHVlKHN0cmluZ1R5cGUsIHN0cmluZ1ZhbHVlLCBlYyk7
CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKworLSAoTlNTdHJpbmcgKiln
ZXRTdHJpbmdWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBOU1N0cmluZyAqcmVz
dWx0ID0gSU1QTC0+Z2V0U3RyaW5nVmFsdWUoZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAoRE9NQ291bnRlciAqKWdldENv
dW50ZXJWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01Db3VudGVyICpyZXN1
bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0Q291bnRlclZhbHVlKGVjKSkpOworICAgIFdl
YkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAo
RE9NUmVjdCAqKWdldFJlY3RWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01S
ZWN0ICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0UmVjdFZhbHVlKGVjKSkpOwor
ICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIERPTVJHQkNvbG9yICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0
UkdCQ29sb3JWYWx1ZShlYykpKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWUqIGNvcmUoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdy
YXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKj4od3Jh
cHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9s
YXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU1ByaW1p
dGl2ZVZhbHVlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1p
dGl2ZVZhbHVlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
UHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NGEwNmJkZmFjMDJhNTFlOWMx
MjdiNTZlOTk4NjYyN2I5OTI4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZSogY29yZShET01DU1NQcmltaXRpdmVWYWx1ZSAqKTsKK1dF
QkNPUkVfRVhQT1JUIERPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWRlYTI3NmVjMjNiMTE0NTVmMTk2YTJjYWEyMjM5YmQ1OGM5YWRjMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZS5oCkBA
IC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01DU1NS
dWxlOworQGNsYXNzIERPTUNTU1N0eWxlU2hlZXQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK2VudW0g
eworICAgIERPTV9VTktOT1dOX1JVTEUgPSAwLAorICAgIERPTV9TVFlMRV9SVUxFID0gMSwKKyAg
ICBET01fQ0hBUlNFVF9SVUxFID0gMiwKKyAgICBET01fSU1QT1JUX1JVTEUgPSAzLAorICAgIERP
TV9NRURJQV9SVUxFID0gNCwKKyAgICBET01fRk9OVF9GQUNFX1JVTEUgPSA1LAorICAgIERPTV9Q
QUdFX1JVTEUgPSA2LAorICAgIERPTV9LRVlGUkFNRVNfUlVMRSA9IDcsCisgICAgRE9NX0tFWUZS
QU1FX1JVTEUgPSA4LAorICAgIERPTV9TVVBQT1JUU19SVUxFID0gMTIsCisgICAgRE9NX1dFQktJ
VF9SRUdJT05fUlVMRSA9IDE2LAorICAgIERPTV9XRUJLSVRfS0VZRlJBTUVTX1JVTEUgPSA3LAor
ICAgIERPTV9XRUJLSVRfS0VZRlJBTUVfUlVMRSA9IDgKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxF
X01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTUnVsZSA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFk
b25seSkgdW5zaWduZWQgc2hvcnQgdHlwZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNz
c1RleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1N0eWxlU2hlZXQgKnBh
cmVudFN0eWxlU2hlZXQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1J1bGUg
KnBhcmVudFJ1bGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUNTU1J1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1
bGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGMwM2RiMDk1NzAxZjk1ZGNmN2EzYWQxNzI5YjdlMGY4NGJlNzM3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
UnVsZS5tbQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01DU1NS
dWxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTSW1wb3J0UnVsZS5oIgorI2ltcG9ydCAiQ1NT
UnVsZS5oIgorI2ltcG9ydCAiQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAiRE9NSW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkRPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
VVJMLmgiCisjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0
T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwg
cmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4oX2ludGVybmFsKQorCitAaW1wbGVt
ZW50YXRpb24gRE9NQ1NTUnVsZQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29y
ZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTUNTU1J1bGUgY2xhc3NdLCBz
ZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKF9pbnRlcm5hbCkKKyAgICAgICAgSU1Q
TC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0
KXR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPnR5cGUoKTsKK30KKworLSAoTlNTdHJpbmcgKiljc3NUZXh0Cit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5j
c3NUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0Q3NzVGV4dDooTlNTdHJpbmcgKiluZXdDc3NUZXh0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldENzc1RleHQobmV3Q3NzVGV4
dCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKERPTUNT
U1N0eWxlU2hlZXQgKilwYXJlbnRTdHlsZVNoZWV0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cGFy
ZW50U3R5bGVTaGVldCgpKSk7Cit9CisKKy0gKERPTUNTU1J1bGUgKilwYXJlbnRSdWxlCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+cGFyZW50UnVsZSgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6
Q1NTUnVsZSogY29yZShET01DU1NSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVy
ID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4od3JhcHBlci0+X2ludGVybmFs
KSA6IDA7Cit9CisKK0RPTUNTU1J1bGUgKmtpdChXZWJDb3JlOjpDU1NSdWxlKiB2YWx1ZSkKK3sK
KyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIGlmICghdmFs
dWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYgKERPTUNTU1J1bGUgKndyYXBwZXIgPSBn
ZXRET01XcmFwcGVyKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKKyAgICBET01DU1NSdWxlICp3cmFwcGVyID0gW1traXRDbGFzcyh2YWx1ZSkg
YWxsb2NdIF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5h
bCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVy
LCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgyOWRiMTFkMzYyYjhlOGI3MTY4ZDllYWM2OTQzN2JhYzA2ODZmZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5o
CkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTUnVsZS5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDU1NSdWxlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpD
U1NSdWxlKiBjb3JlKERPTUNTU1J1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NSdWxlICpr
aXQoV2ViQ29yZTo6Q1NTUnVsZSopOworQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6Q1NTUnVsZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk5M2E0ZTc2OGZhYmQzYzhlMDE3ZmQ0ZTI4MDFhZTA5MTE0YWM4OGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVMaXN0LmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4KKworQGNsYXNzIERPTUNT
U1J1bGU7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTUNTU1J1bGVMaXN0IDogRE9NT2JqZWN0CitAcHJvcGVydHkgKHJlYWRv
bmx5KSB1bnNpZ25lZCBsZW5ndGg7CisKKy0gKERPTUNTU1J1bGUgKilpdGVtOih1bnNpZ25lZClp
bmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTUnVsZUxpc3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVM
aXN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFlMDg4OTBmMmY0NTI5NjFmODY3MDc0OWRhODk5NWYyMGQ1YzVi
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNT
U1J1bGVMaXN0Lm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9N
Q1NTUnVsZUxpc3RJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NJbXBvcnRSdWxlLmgiCisjaW1w
b3J0ICJDU1NSdWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NT
UnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
V2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTUnVsZUxpc3QqPihfaW50ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01D
U1NSdWxlTGlzdAorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hl
ZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTUNTU1J1bGVMaXN0IGNsYXNzXSwgc2VsZikp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElNUEwtPmRl
cmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh1bnNpZ25lZClsZW5ndGgKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmxlbmd0aCgpOworfQorCistIChET01DU1NSdWxlICopaXRlbToodW5zaWduZWQpaW5kZXgK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IGtpdChXVEY6OmdldFB0cihJTVBMLT5pdGVtKGluZGV4KSkpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkNTU1J1bGVMaXN0KiBjb3JlKERPTUNTU1J1bGVMaXN0ICp3cmFwcGVyKQoreworICAgIHJl
dHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlTGlzdCo+KHdy
YXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01DU1NSdWxlTGlzdCAqa2l0KFdlYkNvcmU6
OkNTU1J1bGVMaXN0KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYg
KERPTUNTU1J1bGVMaXN0ICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAg
IHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ1NTUnVsZUxp
c3QgKndyYXBwZXIgPSBbW0RPTUNTU1J1bGVMaXN0IGFsbG9jXSBfaW5pdF07CisgICAgd3JhcHBl
ci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZhbHVl
KTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVyLCB2YWx1ZSk7
CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlzdEludGVybmFsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWRjMWY1Njk4YTA5YmY0MzIzMjU0MWNmMjI4YzEzODdmNTQwNTA0YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTUnVsZUxpc3QuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTUnVsZUxpc3Q7Cit9CisKK1dFQkNPUkVfRVhQT1JU
IFdlYkNvcmU6OkNTU1J1bGVMaXN0KiBjb3JlKERPTUNTU1J1bGVMaXN0ICopOworV0VCQ09SRV9F
WFBPUlQgRE9NQ1NTUnVsZUxpc3QgKmtpdChXZWJDb3JlOjpDU1NSdWxlTGlzdCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMmE0MjM5Zjg3YjQ2MzcyOTFhMGIzMGFiZTRhNzVlYmQ1OGJjOGNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHls
ZURlY2xhcmF0aW9uLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4K
KworQGNsYXNzIERPTUNTU1J1bGU7CitAY2xhc3MgRE9NQ1NTVmFsdWU7CitAY2xhc3MgTlNTdHJp
bmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBA
aW50ZXJmYWNlIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmNzc1RleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1bnNpZ25lZCBs
ZW5ndGg7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1J1bGUgKnBhcmVudFJ1
bGU7CisKKy0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlWYWx1ZTooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWU7CistIChET01DU1NWYWx1ZSAqKWdldFByb3BlcnR5Q1NTVmFsdWU6KE5TU3RyaW5nICop
cHJvcGVydHlOYW1lOworLSAoTlNTdHJpbmcgKilyZW1vdmVQcm9wZXJ0eTooTlNTdHJpbmcgKilw
cm9wZXJ0eU5hbWU7CistIChOU1N0cmluZyAqKWdldFByb3BlcnR5UHJpb3JpdHk6KE5TU3RyaW5n
ICopcHJvcGVydHlOYW1lOworLSAodm9pZClzZXRQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWUgcHJpb3JpdHk6KE5TU3RyaW5nICopcHJpb3Jp
dHkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistIChOU1N0cmluZyAqKWl0ZW06KHVuc2ln
bmVkKWluZGV4OworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVNob3J0aGFuZDooTlNTdHJpbmcg
Kilwcm9wZXJ0eU5hbWUgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworLSAoQk9P
TClpc1Byb3BlcnR5SW1wbGljaXQ6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lIFdFQktJVF9BVkFJ
TEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNlIERPTUNTU1N0eWxlRGVjbGFyYXRp
b24gKERPTUNTU1N0eWxlRGVjbGFyYXRpb25EZXByZWNhdGVkKQorLSAodm9pZClzZXRQcm9wZXJ0
eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUgOihOU1N0cmluZyAqKXZhbHVlIDooTlNTdHJpbmcg
Kilwcmlvcml0eSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRp
b24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRp
b24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTZmZmMyMzk5MGNlOWFiZmRiYjAwYWY1MDQ3NjE3ZThkZTlhMDdk
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTSW1w
b3J0UnVsZS5oIgorI2ltcG9ydCAiQ1NTUnVsZS5oIgorI2ltcG9ydCAiQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oIgorI2ltcG9ydCAiQ1NTVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFu
ZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhy
ZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMu
aCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQ
dHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVE
ZWNsYXJhdGlvbio+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUNTU1N0eWxlRGVj
bGFyYXRpb24KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1
bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01DU1NTdHlsZURlY2xhcmF0aW9uIGNsYXNzXSwg
c2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElN
UEwtPmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChOU1N0cmluZyAqKWNz
c1RleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmNzc1RleHQoKTsKK30KKworLSAodm9pZClzZXRDc3NUZXh0OihOU1N0cmlu
ZyAqKW5ld0Nzc1RleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0Q3Nz
VGV4dChuZXdDc3NUZXh0LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsK
K30KKworLSAodW5zaWduZWQpbGVuZ3RoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5sZW5ndGgoKTsKK30KKworLSAoRE9NQ1NT
UnVsZSAqKXBhcmVudFJ1bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5wYXJlbnRSdWxlKCkpKTsK
K30KKworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVZhbHVlOihOU1N0cmluZyAqKXByb3BlcnR5
TmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworfQorCistIChET01D
U1NWYWx1ZSAqKWdldFByb3BlcnR5Q1NTVmFsdWU6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBr
aXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eU5hbWUpKSk7
Cit9CisKKy0gKE5TU3RyaW5nICopcmVtb3ZlUHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHlO
YW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIE5TU3RyaW5nICpyZXN1bHQgPSBJTVBM
LT5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9u
RE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKE5TU3RyaW5nICopZ2V0
UHJvcGVydHlQcmlvcml0eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFByb3Bl
cnR5UHJpb3JpdHkocHJvcGVydHlOYW1lKTsKK30KKworLSAodm9pZClzZXRQcm9wZXJ0eTooTlNT
dHJpbmcgKilwcm9wZXJ0eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWUgcHJpb3JpdHk6KE5T
U3RyaW5nICopcHJpb3JpdHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0
UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSwgcHJpb3JpdHksIGVjKTsKKyAgICBXZWJDb3Jl
OjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistICh2b2lkKXNldFByb3BlcnR5OihOU1N0cmlu
ZyAqKXByb3BlcnR5TmFtZSA6KE5TU3RyaW5nICopdmFsdWUgOihOU1N0cmluZyAqKXByaW9yaXR5
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldFByb3BlcnR5KHByb3BlcnR5
TmFtZSwgdmFsdWUsIHByaW9yaXR5LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9y
KGVjKTsKK30KKworLSAoTlNTdHJpbmcgKilpdGVtOih1bnNpZ25lZClpbmRleAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aXRl
bShpbmRleCk7Cit9CisKKy0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlTaG9ydGhhbmQ6KE5TU3Ry
aW5nICopcHJvcGVydHlOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRQcm9wZXJ0eVNob3J0aGFuZChwcm9wZXJ0eU5h
bWUpOworfQorCistIChCT09MKWlzUHJvcGVydHlJbXBsaWNpdDooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmlzUHJvcGVydHlJbXBsaWNpdChwcm9wZXJ0eU5hbWUpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIGNvcmUoRE9NQ1NTU3R5bGVEZWNsYXJh
dGlvbiAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbio+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01DU1NTdHlsZURlY2xhcmF0aW9uICpraXQoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbiogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01DU1NT
dHlsZURlY2xhcmF0aW9uICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAg
IHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbiAqd3JhcHBlciA9IFtbRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBhbGxvY10gX2lu
aXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0
SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIo
d3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFy
YXRpb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHls
ZURlY2xhcmF0aW9uSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDRhMmNiOWQ3MTQ0NjY2YzJmOWUw
ODZlOWIxNTdmMDZhYTE5ODlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24uaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK30KKworV0VCQ09SRV9FWFBPUlQg
V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiogY29yZShET01DU1NTdHlsZURlY2xhcmF0aW9u
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqa2l0KFdlYkNvcmU6
OkNTU1N0eWxlRGVjbGFyYXRpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU1N0eWxlUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NWI0NWY1ZjgxNmFjODYxNjUwMzFlZTY0
OGYyMjE2MWE4ZjgwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9N
Q1NTUnVsZS5oPgorCitAY2xhc3MgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK0BjbGFzcyBOU1N0
cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JU
IEBpbnRlcmZhY2UgRE9NQ1NTU3R5bGVSdWxlIDogRE9NQ1NTUnVsZQorQHByb3BlcnR5IChjb3B5
KSBOU1N0cmluZyAqc2VsZWN0b3JUZXh0OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBE
T01DU1NTdHlsZURlY2xhcmF0aW9uICpzdHlsZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLm1tIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjZjliNWVjMDQy
N2EwN2QwYjZlNmQ4ZTg3YTE0MzBkOTU1Yzg0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLm1tCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2ltcG9ydCAiQ1NTU3R5bGVSdWxlLmgiCisj
aW1wb3J0ICJET01DU1NSdWxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUNTU1N0eWxlRGVjbGFy
YXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisj
aW1wb3J0ICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1w
b3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQg
PHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1N0
eWxlUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NTdHlsZVJ1bGUKKworLSAoTlNTdHJpbmcgKilzZWxl
Y3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnNlbGVjdG9yVGV4dCgpOworfQorCistICh2b2lkKXNldFNlbGVjdG9y
VGV4dDooTlNTdHJpbmcgKiluZXdTZWxlY3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0b3JUZXh0KG5ld1NlbGVj
dG9yVGV4dCk7Cit9CisKKy0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdU
Rjo6Z2V0UHRyKElNUEwtPnN0eWxlKCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpDU1NTdHls
ZVJ1bGUqIGNvcmUoRE9NQ1NTU3R5bGVSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFw
cGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NTdHlsZVJ1bGUqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NQ1NTU3R5bGVSdWxlICpraXQoV2ViQ29yZTo6Q1NTU3R5
bGVSdWxlKiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9u
ZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NTdHlsZVJ1bGUqPihraXQoc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0NzE2NTljOTQ5MTlkNWJlMjYzYmQxZWMzZDJhODJiYmJjYjI2ZWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZUludGVy
bmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01DU1NTdHlsZVJ1bGUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTU3R5bGVSdWxlOworfQorCitXRUJDT1JFX0VY
UE9SVCBXZWJDb3JlOjpDU1NTdHlsZVJ1bGUqIGNvcmUoRE9NQ1NTU3R5bGVSdWxlICopOworV0VC
Q09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVSdWxlICpraXQoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVTaGVldC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM1NWFhNDI5MDY4ZGEwNDhiOTg2ZTZiZTJmMzJjZDE1OGQzYjA3NzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hl
ZXQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVN0eWxlU2hlZXQuaD4KKworQGNs
YXNzIERPTUNTU1J1bGU7CitAY2xhc3MgRE9NQ1NTUnVsZUxpc3Q7CitAY2xhc3MgTlNTdHJpbmc7
CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIERPTUNTU1N0eWxlU2hlZXQgOiBET01TdHlsZVNoZWV0CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBzdHJvbmcpIERPTUNTU1J1bGUgKm93bmVyUnVsZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHks
IHN0cm9uZykgRE9NQ1NTUnVsZUxpc3QgKmNzc1J1bGVzOworQHByb3BlcnR5IChyZWFkb25seSwg
c3Ryb25nKSBET01DU1NSdWxlTGlzdCAqcnVsZXMgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNik7
CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5nICopcnVsZSBpbmRleDoodW5zaWdu
ZWQpaW5kZXggV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistICh2b2lkKWRlbGV0ZVJ1bGU6
KHVuc2lnbmVkKWluZGV4OworLSAoaW50KWFkZFJ1bGU6KE5TU3RyaW5nICopc2VsZWN0b3Igc3R5
bGU6KE5TU3RyaW5nICopc3R5bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9BVkFJTEFC
TEVfTUFDKDEwXzYpOworLSAodm9pZClyZW1vdmVSdWxlOih1bnNpZ25lZClpbmRleCBXRUJLSVRf
QVZBSUxBQkxFX01BQygxMF82KTsKK0BlbmQKKworQGludGVyZmFjZSBET01DU1NTdHlsZVNoZWV0
IChET01DU1NTdHlsZVNoZWV0RGVwcmVjYXRlZCkKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5T
U3RyaW5nICopcnVsZSA6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80
LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTU3R5bGVTaGVldC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
U3R5bGVTaGVldC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDE2OGEwMTAyOTllMTg2ZWZiOTBhMzQ2ZWU1ZmVj
MTRmNzg0OWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NTdHlsZVNoZWV0Lm1tCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkRPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NJbXBvcnRS
dWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlTGlzdC5oIgorI2lt
cG9ydCAiQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisj
aW1wb3J0ICJET01DU1NSdWxlTGlzdEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTVN0eWxlU2hlZXRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9y
dCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29y
ZTo6U3R5bGVTaGVldCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NTdHls
ZVNoZWV0CisKKy0gKERPTUNTU1J1bGUgKilvd25lclJ1bGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBM
LT5vd25lclJ1bGUoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAqKWNzc1J1bGVzCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+Y3NzUnVsZXMoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAq
KXJ1bGVzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cnVsZXMoKSkpOworfQorCistICh1bnNpZ25l
ZClpbnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1
bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5n
ICopcnVsZSA6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVu
c2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBX
ZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0g
KHZvaWQpZGVsZXRlUnVsZToodW5zaWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgSU1QTC0+ZGVsZXRlUnVsZShpbmRleCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25E
T01FcnJvcihlYyk7Cit9CisKKy0gKGludClhZGRSdWxlOihOU1N0cmluZyAqKXNlbGVjdG9yIHN0
eWxlOihOU1N0cmluZyAqKXN0eWxlIGluZGV4Oih1bnNpZ25lZClpbmRleAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICBpbnQgcmVzdWx0ID0gSU1QTC0+YWRkUnVsZShzZWxlY3Rvciwgc3R5
bGUsIGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCistICh2b2lkKXJlbW92ZVJ1bGU6KHVuc2lnbmVkKWluZGV4Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnJlbW92ZVJ1bGUoaW5kZXgsIGVjKTsK
KyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCitAZW5kCisKK1dlYkNvcmU6
OkNTU1N0eWxlU2hlZXQqIGNvcmUoRE9NQ1NTU3R5bGVTaGVldCAqd3JhcHBlcikKK3sKKyAgICBy
ZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCo+
KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01DU1NTdHlsZVNoZWV0ICpraXQoV2Vi
Q29yZTo6Q1NTU3R5bGVTaGVldCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlv
bkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTU3R5bGVTaGVl
dCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpTdHlsZVNoZWV0Kj4odmFsdWUpKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hlZXRJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVNoZWV0
SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjFmMWM3Njk4M2FkNzhlOTZhNmRiNDU5NGI2YzBhYTNi
YTMzYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DU1NTdHlsZVNoZWV0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TUNTU1N0eWxlU2hlZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTU3R5bGVT
aGVldDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTU3R5bGVTaGVldCogY29yZShE
T01DU1NTdHlsZVNoZWV0ICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVTaGVldCAqa2l0
KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTVW5rbm93blJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVW5rbm93blJ1bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmZmMDY0NjAzOGMwZWMxMzUw
ZmM0YjdhMzQyMmQ4MGJiYzYzMjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01DU1NVbmtub3duUnVsZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdl
YkNvcmUvRE9NQ1NTUnVsZS5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQor
V0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01DU1NVbmtub3duUnVsZSA6IERPTUNTU1J1bGUK
K0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVW5r
bm93blJ1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25S
dWxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwMDAyZjgwZjJhNzZhMjMyZmQyZWE0OTkyYmMxN2M5NzgzMjcz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNT
U1Vua25vd25SdWxlLm1tCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NVbmtub3duUnVsZS5o
IgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3Jp
cHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1Q
TCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NVbmtub3duUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTUnVsZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NV
bmtub3duUnVsZQorCitAZW5kCisKK1dlYkNvcmU6OkNTU1Vua25vd25SdWxlKiBjb3JlKERPTUNT
U1Vua25vd25SdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpDU1NVbmtub3duUnVsZSo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAw
OworfQorCitET01DU1NVbmtub3duUnVsZSAqa2l0KFdlYkNvcmU6OkNTU1Vua25vd25SdWxlKiB2
YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NVbmtub3duUnVsZSo+KGtpdChzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpDU1NSdWxlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25SdWxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4OGMwMmI5OWIxMGIzMmFlZmQ3ZjU0ZmU3MDE0ZWYxZjJiYjlmZDcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25SdWxlSW50ZXJu
YWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1Vua25vd25SdWxlLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENTU1Vua25vd25SdWxlOworfQorCitXRUJDT1JF
X0VYUE9SVCBXZWJDb3JlOjpDU1NVbmtub3duUnVsZSogY29yZShET01DU1NVbmtub3duUnVsZSAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU1Vua25vd25SdWxlICpraXQoV2ViQ29yZTo6Q1NTVW5r
bm93blJ1bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YmFmNWFlODEzMmMwZjY1N2VkNjA2ZWYxMDAyNTk5ZTcxOTY2ODg0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5o
CkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBOU1N0
cmluZzsKKworZW51bSB7CisgICAgRE9NX0NTU19JTkhFUklUID0gMCwKKyAgICBET01fQ1NTX1BS
SU1JVElWRV9WQUxVRSA9IDEsCisgICAgRE9NX0NTU19WQUxVRV9MSVNUID0gMiwKKyAgICBET01f
Q1NTX0NVU1RPTSA9IDMKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxFX01BQygxMF80KTsKKworV0VC
S0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2Ug
RE9NQ1NTVmFsdWUgOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNzc1Rl
eHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5cGU7CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVl
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iODg2ZjEzYmE4YmE3OWRiMTQzMTk3NTM1NTE3NDllZjk1NTE5Mjk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5tbQpAQCAt
MCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwu
aCIKKworI2ltcG9ydCAiQ1NTVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1w
b3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisj
aW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgi
CisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFs
KQorCitAaW1wbGVtZW50YXRpb24gRE9NQ1NTVmFsdWUKKworLSAodm9pZClkZWFsbG9jCit7Cisg
ICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01DU1NW
YWx1ZSBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFs
KQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
TlNTdHJpbmcgKiljc3NUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jc3NUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0Q3Nz
VGV4dDooTlNTdHJpbmcgKiluZXdDc3NUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IElNUEwtPnNldENzc1RleHQobmV3Q3NzVGV4dCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25E
T01FcnJvcihlYyk7Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0KWNzc1ZhbHVlVHlwZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Y3NzVmFsdWVUeXBlKCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTVmFsdWUqIGNvcmUoRE9N
Q1NTVmFsdWUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9j
YXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RP
TUNTU1ZhbHVlICpraXQoV2ViQ29yZTo6Q1NTVmFsdWUqIHZhbHVlKQoreworICAgIFdlYkNvcmVU
aHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICBpZiAoRE9NQ1NTVmFsdWUgKndyYXBwZXIgPSBnZXRET01XcmFwcGVy
KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsK
KyAgICBET01DU1NWYWx1ZSAqd3JhcHBlciA9IFtba2l0Q2xhc3ModmFsdWUpIGFsbG9jXSBfaW5p
dF07CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHdyYXBwZXIt
Pl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7
CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOwor
ICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzNmI1
MjkxMzE4NDM5YWVjNWE4OGUyM2U4OGJmMTliM2JkM2NiOTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaApAQCAtMCww
ICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIENTU1ZhbHVlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpDU1NWYWx1
ZSogY29yZShET01DU1NWYWx1ZSAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU1ZhbHVlICpraXQo
V2ViQ29yZTo6Q1NTVmFsdWUqKTsKK0NsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNTU1ZhbHVlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MmVjODU4MzU2YTQ3ZjI1M2Y4ZTI3MjBkM2FkMDhkMTQzNGU0MmU2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3Qu
aApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK0BjbGFzcyBE
T01DU1NWYWx1ZTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTVmFsdWVMaXN0IDogRE9NQ1NTVmFsdWUKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIHVuc2lnbmVkIGxlbmd0aDsKKworLSAoRE9NQ1NTVmFsdWUgKilpdGVtOih1
bnNpZ25lZClpbmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVmFsdWVMaXN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DU1NWYWx1ZUxpc3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA1N2RmMWY5MDQxYjJkM2EwZGZmZWQ5NzNm
YzM1Y2I0YTgzODRiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVmFsdWVMaXN0Lm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRE9NQ1NTVmFsdWVMaXN0SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTVmFsdWUu
aCIKKyNpbXBvcnQgIkNTU1ZhbHVlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJl
YWRDaGVjay5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8
d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTVmFs
dWVMaXN0Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NWYWx1ZSo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NWYWx1ZUxpc3QKKworLSAodW5zaWduZWQpbGVuZ3Ro
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5sZW5ndGgoKTsKK30KKworLSAoRE9NQ1NTVmFsdWUgKilpdGVtOih1bnNpZ25lZClp
bmRleAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPml0ZW0oaW5kZXgpKSk7Cit9CisKK0BlbmQKKwor
V2ViQ29yZTo6Q1NTVmFsdWVMaXN0KiBjb3JlKERPTUNTU1ZhbHVlTGlzdCAqd3JhcHBlcikKK3sK
KyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWVM
aXN0Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU1ZhbHVlTGlzdCAqa2l0
KFdlYkNvcmU6OkNTU1ZhbHVlTGlzdCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xh
dGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTVmFsdWVM
aXN0Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdElu
dGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdElu
dGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI4ODg1MDY2OTdmYWFjNWYyM2E2NmQ3OTU0MjlmMmVhMzRj
OTEzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTVmFsdWVMaXN0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNT
U1ZhbHVlTGlzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NWYWx1ZUxpc3Q7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU1ZhbHVlTGlzdCogY29yZShET01DU1NW
YWx1ZUxpc3QgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NWYWx1ZUxpc3QgKmtpdChXZWJDb3Jl
OjpDU1NWYWx1ZUxpc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NQ291bnRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Db3VudGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjNiYTY5MmEwODg4YmE5YWM2ZTA3MzVmNThmMjI5N2EyYjg3NTJlZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ291bnRl
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBO
U1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NQ291bnRlciA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFkb25s
eSwgY29weSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5
KSBOU1N0cmluZyAqbGlzdFN0eWxlOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJp
bmcgKnNlcGFyYXRvcjsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ291bnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ291
bnRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNjc2Zjc2NWQzOGY1YzhkMGI1N2IzMmNlNzJjNzE4ZmI3NzY4
MTBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
b3VudGVyLm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ291
bnRlckludGVybmFsLmgiCisKKyNpbXBvcnQgIkNvdW50ZXIuaCIKKyNpbXBvcnQgIkRPTUludGVy
bmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhh
bmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFz
LmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0
UHRyLmg+CisKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNvdW50ZXIq
PihfaW50ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01Db3VudGVyCisKKy0gKHZvaWQpZGVh
bGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVh
ZChbRE9NQ291bnRlciBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
X2ludGVybmFsKQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsK
K30KKworLSAoTlNTdHJpbmcgKilpZGVudGlmaWVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pZGVudGlmaWVyKCk7Cit9CisK
Ky0gKE5TU3RyaW5nICopbGlzdFN0eWxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5saXN0U3R5bGUoKTsKK30KKworLSAoTlNT
dHJpbmcgKilzZXBhcmF0b3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnNlcGFyYXRvcigpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkNvdW50ZXIqIGNvcmUoRE9NQ291bnRlciAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3Jh
cHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q291bnRlcio+KHdyYXBwZXItPl9pbnRl
cm5hbCkgOiAwOworfQorCitET01Db3VudGVyICpraXQoV2ViQ29yZTo6Q291bnRlciogdmFsdWUp
Cit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAo
IXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01Db3VudGVyICp3cmFwcGVy
ID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWlu
XSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ291bnRlciAqd3JhcHBlciA9IFtbRE9NQ291bnRlciBh
bGxvY10gX2luaXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERP
TVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFz
ZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNvdW50
ZXJJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Db3VudGVySW50
ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xODBjOWM5NjEyZDk2M2FkMjc5YmU3ZTZjMjgzOTllNjMzNmNi
ZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
b3VudGVySW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNvdW50ZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ291bnRlcjsKK30KKworV0VCQ09SRV9F
WFBPUlQgV2ViQ29yZTo6Q291bnRlciogY29yZShET01Db3VudGVyICopOworV0VCQ09SRV9FWFBP
UlQgRE9NQ291bnRlciAqa2l0KFdlYkNvcmU6OkNvdW50ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmUzMjE0ZmQ3OGYxZDkwYmFiYmFiOTc2
MDJhMzRkMjQ0MjVkNjNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01FdmVudC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0
Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKK0Bwcm90b2NvbCBET01FdmVudFRhcmdldDsKKworZW51
bSB7CisgICAgRE9NX05PTkUgPSAwLAorICAgIERPTV9DQVBUVVJJTkdfUEhBU0UgPSAxLAorICAg
IERPTV9BVF9UQVJHRVQgPSAyLAorICAgIERPTV9CVUJCTElOR19QSEFTRSA9IDMKK30gV0VCS0lU
X0VOVU1fQVZBSUxBQkxFX01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NRXZlbnQgOiBET01PYmplY3QKK0Bw
cm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0eXBlOworQHByb3BlcnR5IChyZWFk
b25seSwgc3Ryb25nKSBpZCA8RE9NRXZlbnRUYXJnZXQ+IHRhcmdldDsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIHN0cm9uZykgaWQgPERPTUV2ZW50VGFyZ2V0PiBjdXJyZW50VGFyZ2V0OworQHByb3Bl
cnR5IChyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgZXZlbnRQaGFzZTsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHkpIEJPT0wgYnViYmxlczsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgY2FuY2VsYWJs
ZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIERPTVRpbWVTdGFtcCB0aW1lU3RhbXA7CitAcHJvcGVy
dHkgKHJlYWRvbmx5LCBzdHJvbmcpIGlkIDxET01FdmVudFRhcmdldD4gc3JjRWxlbWVudCBXRUJL
SVRfQVZBSUxBQkxFX01BQygxMF82KTsKK0Bwcm9wZXJ0eSBCT09MIHJldHVyblZhbHVlIFdFQktJ
VF9BVkFJTEFCTEVfTUFDKDEwXzYpOworQHByb3BlcnR5IEJPT0wgY2FuY2VsQnViYmxlIFdFQktJ
VF9BVkFJTEFCTEVfTUFDKDEwXzYpOworCistICh2b2lkKXN0b3BQcm9wYWdhdGlvbjsKKy0gKHZv
aWQpcHJldmVudERlZmF1bHQ7CistICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVudFR5
cGVBcmcgY2FuQnViYmxlQXJnOihCT09MKWNhbkJ1YmJsZUFyZyBjYW5jZWxhYmxlQXJnOihCT09M
KWNhbmNlbGFibGVBcmcgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCisKK0BpbnRl
cmZhY2UgRE9NRXZlbnQgKERPTUV2ZW50RGVwcmVjYXRlZCkKKy0gKHZvaWQpaW5pdEV2ZW50OihO
U1N0cmluZyAqKWV2ZW50VHlwZUFyZyA6KEJPT0wpY2FuQnViYmxlQXJnIDooQk9PTCljYW5jZWxh
YmxlQXJnIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGZlYzk4ZjVlM2Yw
MTU4YzJhNmY4NzlkMzdiNzhjZjljODY2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRXZlbnRU
YXJnZXQuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkV2ZW50LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgor
I2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJDb3JlT2Jq
Q0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8
d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpF
dmVudCo+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUV2ZW50CisKKy0gKHZvaWQp
ZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRo
cmVhZChbRE9NRXZlbnQgY2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KF9pbnRlcm5hbCkKKyAgICAgICAgSU1QTC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107
Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+dHlwZSgpOworfQorCistIChpZCA8RE9N
RXZlbnRUYXJnZXQ+KXRhcmdldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRhcmdldCgpKSk7Cit9
CisKKy0gKGlkIDxET01FdmVudFRhcmdldD4pY3VycmVudFRhcmdldAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPmN1cnJlbnRUYXJnZXQoKSkpOworfQorCistICh1bnNpZ25lZCBzaG9ydClldmVudFBo
YXNlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5ldmVudFBoYXNlKCk7Cit9CisKKy0gKEJPT0wpYnViYmxlcworeworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+YnVi
YmxlcygpOworfQorCistIChCT09MKWNhbmNlbGFibGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNhbmNlbGFibGUoKTsKK30K
KworLSAoQk9PTCljb21wb3NlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y29tcG9zZWQoKTsKK30KKworLSAoRE9NVGltZVN0
YW1wKXRpbWVTdGFtcAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCk7Cit9CisKKy0gKEJPT0wpZGVmYXVsdFBy
ZXZlbnRlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCistIChCT09MKWlzVHJ1c3Rl
ZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aXNUcnVzdGVkKCk7Cit9CisKKy0gKGlkIDxET01FdmVudFRhcmdldD4pc3JjRWxl
bWVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnNyY0VsZW1lbnQoKSkpOworfQorCistIChCT09M
KXJldHVyblZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sZWdhY3lSZXR1cm5WYWx1ZSgpOworfQorCistICh2b2lkKXNl
dFJldHVyblZhbHVlOihCT09MKW5ld1JldHVyblZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldExlZ2FjeVJldHVyblZhbHVlKG5l
d1JldHVyblZhbHVlKTsKK30KKworLSAoQk9PTCljYW5jZWxCdWJibGUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNhbmNlbEJ1
YmJsZSgpOworfQorCistICh2b2lkKXNldENhbmNlbEJ1YmJsZTooQk9PTCluZXdDYW5jZWxCdWJi
bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0Q2FuY2VsQnViYmxlKG5ld0NhbmNlbEJ1YmJsZSk7Cit9CisKKy0gKHZvaWQpc3RvcFBy
b3BhZ2F0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnN0b3BQcm9wYWdhdGlvbigpOworfQorCistICh2b2lkKXByZXZlbnREZWZhdWx0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnByZXZlbnREZWZhdWx0KCk7Cit9CisKKy0gKHZvaWQpaW5pdEV2ZW50OihOU1N0cmluZyAqKWV2
ZW50VHlwZUFyZyBjYW5CdWJibGVBcmc6KEJPT0wpY2FuQnViYmxlQXJnIGNhbmNlbGFibGVBcmc6
KEJPT0wpY2FuY2VsYWJsZUFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0RXZlbnQoZXZlbnRUeXBlQXJnLCBjYW5CdWJibGVBcmcs
IGNhbmNlbGFibGVBcmcpOworfQorCistICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVu
dFR5cGVBcmcgOihCT09MKWNhbkJ1YmJsZUFyZyA6KEJPT0wpY2FuY2VsYWJsZUFyZworeworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0RXZl
bnQoZXZlbnRUeXBlQXJnLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpOworfQorCistICh2
b2lkKXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsK
K30KKworQGVuZAorCitXZWJDb3JlOjpFdmVudCogY29yZShET01FdmVudCAqd3JhcHBlcikKK3sK
KyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPih3
cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NRXZlbnQgKmtpdChXZWJDb3JlOjpFdmVu
dCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsK
KyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01FdmVudCAq
d3JhcHBlciA9IGdldERPTVdyYXBwZXIodmFsdWUpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVy
IHJldGFpbl0gYXV0b3JlbGVhc2VdOworICAgIERPTUV2ZW50ICp3cmFwcGVyID0gW1traXRDbGFz
cyh2YWx1ZSkgYWxsb2NdIF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVy
biBuaWw7CisgICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmpl
Y3RJbnRlcm5hbCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBl
cih3cmFwcGVyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudEludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODQ4MDdmNzcwZDM5Mzk2MDRkMmUzZWFmOTY4MmNkMDU2NDUwZjA3NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6
RXZlbnQqIGNvcmUoRE9NRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01FdmVudCAqa2l0KFdl
YkNvcmU6OkV2ZW50Kik7CitDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpFdmVudCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudExpc3RlbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzBmMmFjN2FlMWUxOWNlMjAwY2RiMTZjYzRkNmEyMWFkNTY2NDRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudExpc3RlbmVyLmgKQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9XZWJLaXRBdmFpbGFiaWxpdHkuaD4KKworQGNsYXNz
IERPTUV2ZW50OworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorQHByb3RvY29s
IERPTUV2ZW50TGlzdGVuZXIgPE5TT2JqZWN0PgorLSAodm9pZCloYW5kbGVFdmVudDooRE9NRXZl
bnQgKilldmVudDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZl
bnRUYXJnZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODRlODQwMGY3NjZmMzJkOTljZjE5MGNiN2VlOTJlM2Rm
ZGUzODU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01FdmVudFRhcmdldC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvV2ViS2l0QXZhaWxh
YmlsaXR5Lmg+CisKK0BjbGFzcyBET01FdmVudDsKK0BjbGFzcyBOU1N0cmluZzsKK0Bwcm90b2Nv
bCBET01FdmVudExpc3RlbmVyOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQor
QHByb3RvY29sIERPTUV2ZW50VGFyZ2V0IDxOU09iamVjdCwgTlNDb3B5aW5nPgorLSAodm9pZClh
ZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExp
c3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUgV0VCS0lUX0FWQUlM
QUJMRV9NQUMoMTBfNSk7CistICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICop
dHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6
KEJPT0wpdXNlQ2FwdHVyZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKKy0gKEJPT0wpZGlz
cGF0Y2hFdmVudDooRE9NRXZlbnQgKilldmVudDsKKy0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjoo
TlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIDooQk9PTCl1
c2VDYXB0dXJlIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKKy0gKHZvaWQpcmVt
b3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+
KWxpc3RlbmVyIDooQk9PTCl1c2VDYXB0dXJlIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAx
MF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
S2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2Fy
ZEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q5ZGQzODk1ZmYyMGI1NjViYzQxNWEyY2Q2MDQ5MzMwYmY2
MzJjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
S2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NVUlFdmVudC5o
PgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIE5TU3RyaW5nOworCitlbnVtIHsK
KyAgICBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEID0gMHgwMCwKKyAgICBET01fS0VZX0xPQ0FU
SU9OX0xFRlQgPSAweDAxLAorICAgIERPTV9LRVlfTE9DQVRJT05fUklHSFQgPSAweDAyLAorICAg
IERPTV9LRVlfTE9DQVRJT05fTlVNUEFEID0gMHgwMworfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVf
TUFDKDEwXzUpOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9F
WFBPUlQgQGludGVyZmFjZSBET01LZXlib2FyZEV2ZW50IDogRE9NVUlFdmVudAorQHByb3BlcnR5
IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtleUlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSB1bnNpZ25lZCBsb2NhdGlvbiBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF84KTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIGtleUxvY2F0aW9uIFdFQktJVF9ERVBSRUNBVEVE
X01BQygxMF81LCAxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgY3RybEtleTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgc2hpZnRLZXk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIGFsdEtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgbWV0YUtleTsKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIEJPT0wgYWx0R3JhcGhLZXkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7
CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQga2V5Q29kZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkp
IGludCBjaGFyQ29kZTsKKworLSAoQk9PTClnZXRNb2RpZmllclN0YXRlOihOU1N0cmluZyAqKWtl
eUlkZW50aWZpZXJBcmc7CistICh2b2lkKWluaXRLZXlib2FyZEV2ZW50OihOU1N0cmluZyAqKXR5
cGUgY2FuQnViYmxlOihCT09MKWNhbkJ1YmJsZSBjYW5jZWxhYmxlOihCT09MKWNhbmNlbGFibGUg
dmlldzooRE9NQWJzdHJhY3RWaWV3ICopdmlldyBrZXlJZGVudGlmaWVyOihOU1N0cmluZyAqKWtl
eUlkZW50aWZpZXIgbG9jYXRpb246KHVuc2lnbmVkKWxvY2F0aW9uIGN0cmxLZXk6KEJPT0wpY3Ry
bEtleSBhbHRLZXk6KEJPT0wpYWx0S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6
KEJPT0wpbWV0YUtleSBhbHRHcmFwaEtleTooQk9PTClhbHRHcmFwaEtleSBXRUJLSVRfQVZBSUxB
QkxFX01BQygxMF84KTsKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlw
ZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2
aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZpZXI6KE5TU3RyaW5nICopa2V5
SWRlbnRpZmllciBsb2NhdGlvbjoodW5zaWduZWQpbG9jYXRpb24gY3RybEtleTooQk9PTCljdHJs
S2V5IGFsdEtleTooQk9PTClhbHRLZXkgc2hpZnRLZXk6KEJPT0wpc2hpZnRLZXkgbWV0YUtleToo
Qk9PTCltZXRhS2V5IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzgpOworLSAodm9pZClpbml0S2V5
Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2Fu
Y2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcga2V5
SWRlbnRpZmllcjooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25l
ZClrZXlMb2NhdGlvbiBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09MKWFsdEtleSBz
aGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgYWx0R3JhcGhLZXk6
KEJPT0wpYWx0R3JhcGhLZXkgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworLSAo
dm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTClj
YW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0Vmll
dyAqKXZpZXcga2V5SWRlbnRpZmllcjooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyIGtleUxvY2F0
aW9uOih1bnNpZ25lZClrZXlMb2NhdGlvbiBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihC
T09MKWFsdEtleSBzaGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkg
V0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ODY0
YjMwOGVmNGU1ZDg3ZTlhMjRlNmJkNTNmMmFkMWM0NTU2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnQubW0KQEAgLTAsMCAr
MSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NS2V5Ym9hcmRFdmVudEludGVybmFs
LmgiCisKKyNpbXBvcnQgIkRPTUFic3RyYWN0Vmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJET01F
dmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRP
TVdpbmRvdy5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAi
VGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0
UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
RXZlbnQqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NS2V5Ym9hcmRFdmVudAor
CistIChOU1N0cmluZyAqKWtleUlkZW50aWZpZXIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUlkZW50aWZpZXIoKTsKK30K
KworLSAodW5zaWduZWQpbG9jYXRpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmxvY2F0aW9uKCk7Cit9CisKKy0gKHVuc2ln
bmVkKWtleUxvY2F0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5sb2NhdGlvbigpOworfQorCistIChCT09MKWN0cmxLZXkK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmN0cmxLZXkoKTsKK30KKworLSAoQk9PTClzaGlmdEtleQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2hpZnRLZXko
KTsKK30KKworLSAoQk9PTClhbHRLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmFsdEtleSgpOworfQorCistIChCT09MKW1l
dGFLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPm1ldGFLZXkoKTsKK30KKworLSAoQk9PTClhbHRHcmFwaEtleQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
YWx0R3JhcGhLZXkoKTsKK30KKworLSAoaW50KWtleUNvZGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUNvZGUoKTsKK30K
KworLSAoaW50KWNoYXJDb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jaGFyQ29kZSgpOworfQorCistIChCT09MKWdldE1v
ZGlmaWVyU3RhdGU6KE5TU3RyaW5nICopa2V5SWRlbnRpZmllckFyZworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TW9kaWZp
ZXJTdGF0ZShrZXlJZGVudGlmaWVyQXJnKTsKK30KKworLSAodm9pZClpbml0S2V5Ym9hcmRFdmVu
dDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2FuY2VsYWJsZToo
Qk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcga2V5SWRlbnRpZmll
cjooTlNTdHJpbmcgKilpbktleUlkZW50aWZpZXIgbG9jYXRpb246KHVuc2lnbmVkKWluTG9jYXRp
b24gY3RybEtleTooQk9PTClpbkN0cmxLZXkgYWx0S2V5OihCT09MKWluQWx0S2V5IHNoaWZ0S2V5
OihCT09MKWluU2hpZnRLZXkgbWV0YUtleTooQk9PTClpbk1ldGFLZXkgYWx0R3JhcGhLZXk6KEJP
T0wpaW5BbHRHcmFwaEtleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBJTVBMLT5pbml0S2V5Ym9hcmRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGNvcmUodmlldyksIGluS2V5SWRlbnRpZmllciwgaW5Mb2NhdGlvbiwgaW5DdHJsS2V5
LCBpbkFsdEtleSwgaW5TaGlmdEtleSwgaW5NZXRhS2V5LCBpbkFsdEdyYXBoS2V5KTsKK30KKwor
LSAodm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9P
TCljYW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0
VmlldyAqKXZpZXcga2V5SWRlbnRpZmllcjooTlNTdHJpbmcgKilpbktleUlkZW50aWZpZXIgbG9j
YXRpb246KHVuc2lnbmVkKWluTG9jYXRpb24gY3RybEtleTooQk9PTClpbkN0cmxLZXkgYWx0S2V5
OihCT09MKWluQWx0S2V5IHNoaWZ0S2V5OihCT09MKWluU2hpZnRLZXkgbWV0YUtleTooQk9PTClp
bk1ldGFLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+aW5pdEtleWJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBj
b3JlKHZpZXcpLCBpbktleUlkZW50aWZpZXIsIGluTG9jYXRpb24sIGluQ3RybEtleSwgaW5BbHRL
ZXksIGluU2hpZnRLZXksIGluTWV0YUtleSk7Cit9CisKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZl
bnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6
KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZp
ZXI6KE5TU3RyaW5nICopaW5LZXlJZGVudGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25lZClpbktl
eUxvY2F0aW9uIGN0cmxLZXk6KEJPT0wpaW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBz
aGlmdEtleTooQk9PTClpblNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5IGFsdEdyYXBo
S2V5OihCT09MKWluQWx0R3JhcGhLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdEtleWJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCBjb3JlKHZpZXcpLCBpbktleUlkZW50aWZpZXIsIGluS2V5TG9jYXRpb24s
IGluQ3RybEtleSwgaW5BbHRLZXksIGluU2hpZnRLZXksIGluTWV0YUtleSwgaW5BbHRHcmFwaEtl
eSk7Cit9CisKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5C
dWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihE
T01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZpZXI6KE5TU3RyaW5nICopaW5LZXlJZGVu
dGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25lZClpbktleUxvY2F0aW9uIGN0cmxLZXk6KEJPT0wp
aW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBzaGlmdEtleTooQk9PTClpblNoaWZ0S2V5
IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRLZXlib2FyZEV2ZW50KHR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSwgY29yZSh2aWV3KSwgaW5LZXlJZGVudGlmaWVyLCBpbktleUxvY2F0aW9u
LCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXkpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OktleWJvYXJkRXZlbnQqIGNvcmUoRE9NS2V5Ym9hcmRFdmVudCAqd3JhcHBl
cikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6S2V5
Ym9hcmRFdmVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01LZXlib2FyZEV2
ZW50ICpraXQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
S2V5Ym9hcmRFdmVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2Fy
ZEV2ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NS2V5Ym9h
cmRFdmVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVhZTIzZmY4MmQyMzQ3YmVjZjZlNzQ4MDQ3
NTQ4NzU4ODMyZGUxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxX
ZWJDb3JlL0RPTUtleWJvYXJkRXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
S2V5Ym9hcmRFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dCogY29yZShET01LZXlib2FyZEV2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NS2V5Ym9hcmRF
dmVudCAqa2l0KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Nb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IwNGZiNmFlNDVkMGM5NDMz
NDE5YThkNDczNmViYzJjNTljNzQ4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NVUlFdmVudC5oPgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIERPTU5v
ZGU7CitAY2xhc3MgTlNTdHJpbmc7CitAcHJvdG9jb2wgRE9NRXZlbnRUYXJnZXQ7CisKK1dFQktJ
VF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERP
TU1vdXNlRXZlbnQgOiBET01VSUV2ZW50CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgc2NyZWVu
WDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBzY3JlZW5ZOworQHByb3BlcnR5IChyZWFkb25s
eSkgaW50IGNsaWVudFg7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgY2xpZW50WTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIEJPT0wgY3RybEtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
c2hpZnRLZXk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGFsdEtleTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHkpIEJPT0wgbWV0YUtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgaWQgPERPTUV2ZW50VGFy
Z2V0PiByZWxhdGVkVGFyZ2V0OworQHByb3BlcnR5IChyZWFkb25seSkgaW50IG9mZnNldFggV0VC
S0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgb2Zmc2V0
WSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB4
IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHkg
V0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IERPTU5vZGUgKmZyb21FbGVtZW50IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3Bl
cnR5IChyZWFkb25seSwgc3Ryb25nKSBET01Ob2RlICp0b0VsZW1lbnQgV0VCS0lUX0FWQUlMQUJM
RV9NQUMoMTBfNSk7CisKKy0gKHZvaWQpaW5pdE1vdXNlRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBj
YW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3
OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGRldGFpbDooaW50KWRldGFpbCBzY3JlZW5YOihpbnQp
c2NyZWVuWCBzY3JlZW5ZOihpbnQpc2NyZWVuWSBjbGllbnRYOihpbnQpY2xpZW50WCBjbGllbnRZ
OihpbnQpY2xpZW50WSBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09MKWFsdEtleSBz
aGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgYnV0dG9uOih1bnNp
Z25lZCBzaG9ydClidXR0b24gcmVsYXRlZFRhcmdldDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxh
dGVkVGFyZ2V0IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNl
IERPTU1vdXNlRXZlbnQgKERPTU1vdXNlRXZlbnREZXByZWNhdGVkKQorLSAodm9pZClpbml0TW91
c2VFdmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFi
bGUgOihET01BYnN0cmFjdFZpZXcgKil2aWV3IDooaW50KWRldGFpbCA6KGludClzY3JlZW5YIDoo
aW50KXNjcmVlblkgOihpbnQpY2xpZW50WCA6KGludCljbGllbnRZIDooQk9PTCljdHJsS2V5IDoo
Qk9PTClhbHRLZXkgOihCT09MKXNoaWZ0S2V5IDooQk9PTCltZXRhS2V5IDoodW5zaWduZWQgc2hv
cnQpYnV0dG9uIDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxhdGVkVGFyZ2V0IFdFQktJVF9ERVBS
RUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NTW91c2VFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjljNmYwNzQ2ZWYxN2IwNzRmMzdk
ZjZlNjljY2I4YzYzZTlkOWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Nb3VzZUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTU1vdXNlRXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01BYnN0
cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NRXZlbnRUYXJnZXQuaCIKKyNpbXBvcnQgIkRPTU5vZGUuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NV2luZG93LmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJN
b3VzZUV2ZW50LmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgor
I2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1w
b3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpN
b3VzZUV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01Nb3VzZUV2ZW50CisKKy0gKGludClzY3JlZW5YCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5zY3JlZW5YKCk7Cit9CisKKy0gKGludClzY3JlZW5ZCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zY3JlZW5ZKCk7Cit9CisK
Ky0gKGludCljbGllbnRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5jbGllbnRYKCk7Cit9CisKKy0gKGludCljbGllbnRZCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5jbGllbnRZKCk7Cit9CisKKy0gKEJPT0wpY3RybEtleQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y3RybEtleSgpOwor
fQorCistIChCT09MKXNoaWZ0S2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zaGlmdEtleSgpOworfQorCistIChCT09MKWFs
dEtleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+YWx0S2V5KCk7Cit9CisKKy0gKEJPT0wpbWV0YUtleQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bWV0YUtl
eSgpOworfQorCistICh1bnNpZ25lZCBzaG9ydClidXR0b24KK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmJ1dHRvbigpOworfQor
CistIChpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJ
TVBMLT5yZWxhdGVkVGFyZ2V0KCkpKTsKK30KKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCist
IChpbnQpbW92ZW1lbnRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5tb3ZlbWVudFgoKTsKK30KKyNlbmRpZgorCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKy0gKGludCltb3ZlbWVudFkKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPm1vdmVtZW50WSgpOwor
fQorI2VuZGlmCisKKy0gKGludClvZmZzZXRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5vZmZzZXRYKCk7Cit9CisKKy0gKGlu
dClvZmZzZXRZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5vZmZzZXRZKCk7Cit9CisKKy0gKGludCl4Cit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT54KCk7Cit9
CisKKy0gKGludCl5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT55KCk7Cit9CisKKy0gKERPTU5vZGUgKilmcm9tRWxlbWVudAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPmZyb21FbGVtZW50KCkpKTsKK30KKworLSAoRE9NTm9kZSAq
KXRvRWxlbWVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRvRWxlbWVudCgpKSk7Cit9CisKKy0g
KHZvaWQpaW5pdE1vdXNlRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2Fu
QnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcg
Kil2aWV3IGRldGFpbDooaW50KWRldGFpbCBzY3JlZW5YOihpbnQpaW5TY3JlZW5YIHNjcmVlblk6
KGludClpblNjcmVlblkgY2xpZW50WDooaW50KWluQ2xpZW50WCBjbGllbnRZOihpbnQpaW5DbGll
bnRZIGN0cmxLZXk6KEJPT0wpaW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBzaGlmdEtl
eTooQk9PTClpblNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5IGJ1dHRvbjoodW5zaWdu
ZWQgc2hvcnQpaW5CdXR0b24gcmVsYXRlZFRhcmdldDooaWQgPERPTUV2ZW50VGFyZ2V0PilpblJl
bGF0ZWRUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgRE9NTm9kZSogaW5SZWxhdGVkVGFyZ2V0T2JqQyA9IGluUmVsYXRlZFRhcmdldDsKKyAg
ICBXZWJDb3JlOjpOb2RlKiBpblJlbGF0ZWRUYXJnZXROb2RlID0gY29yZShpblJlbGF0ZWRUYXJn
ZXRPYmpDKTsKKyAgICBJTVBMLT5pbml0TW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGNvcmUodmlldyksIGRldGFpbCwgaW5TY3JlZW5YLCBpblNjcmVlblksIGluQ2xpZW50
WCwgaW5DbGllbnRZLCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXks
IGluQnV0dG9uLCBpblJlbGF0ZWRUYXJnZXROb2RlKTsKK30KKworLSAodm9pZClpbml0TW91c2VF
dmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUg
OihET01BYnN0cmFjdFZpZXcgKil2aWV3IDooaW50KWRldGFpbCA6KGludClpblNjcmVlblggOihp
bnQpaW5TY3JlZW5ZIDooaW50KWluQ2xpZW50WCA6KGludClpbkNsaWVudFkgOihCT09MKWluQ3Ry
bEtleSA6KEJPT0wpaW5BbHRLZXkgOihCT09MKWluU2hpZnRLZXkgOihCT09MKWluTWV0YUtleSA6
KHVuc2lnbmVkIHNob3J0KWluQnV0dG9uIDooaWQgPERPTUV2ZW50VGFyZ2V0PilpblJlbGF0ZWRU
YXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
RE9NTm9kZSogaW5SZWxhdGVkVGFyZ2V0T2JqQyA9IGluUmVsYXRlZFRhcmdldDsKKyAgICBXZWJD
b3JlOjpOb2RlKiBpblJlbGF0ZWRUYXJnZXROb2RlID0gY29yZShpblJlbGF0ZWRUYXJnZXRPYmpD
KTsKKyAgICBJTVBMLT5pbml0TW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IGNvcmUodmlldyksIGRldGFpbCwgaW5TY3JlZW5YLCBpblNjcmVlblksIGluQ2xpZW50WCwgaW5D
bGllbnRZLCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXksIGluQnV0
dG9uLCBpblJlbGF0ZWRUYXJnZXROb2RlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNb3VzZUV2
ZW50KiBjb3JlKERPTU1vdXNlRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIg
PyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok1vdXNlRXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NTW91c2VFdmVudCAqa2l0KFdlYkNvcmU6Ok1vdXNlRXZlbnQqIHZh
bHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PERPTU1vdXNlRXZlbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NTW91c2VFdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU1vdXNlRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYmQ5ZDE1MmIxMzQ0
NzQwYjk5MGFhNmVjNjMyMGMzZjhiZTgzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU1vdXNlRXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01Nb3VzZUV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIE1vdXNlRXZlbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6Ok1vdXNlRXZl
bnQqIGNvcmUoRE9NTW91c2VFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTU1vdXNlRXZlbnQg
KmtpdChXZWJDb3JlOjpNb3VzZUV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NTXV0YXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1YmFkZjhmMWE2MzM5OWRhMmQx
Y2M0NGJlYTExYjY0ZmQ0N2JlNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJD
b3JlL0RPTUV2ZW50Lmg+CisKK0BjbGFzcyBET01Ob2RlOworQGNsYXNzIE5TU3RyaW5nOworCitl
bnVtIHsKKyAgICBET01fTU9ESUZJQ0FUSU9OID0gMSwKKyAgICBET01fQURESVRJT04gPSAyLAor
ICAgIERPTV9SRU1PVkFMID0gMworfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzQpOwor
CitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBET01NdXRhdGlvbkV2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0
cm9uZykgRE9NTm9kZSAqcmVsYXRlZE5vZGU7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqcHJldlZhbHVlOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcg
Km5ld1ZhbHVlOworLSAoTlNTdHJpbmcgKiluZXdWYWx1ZSBOU19SRVRVUk5TX05PVF9SRVRBSU5F
RDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICphdHRyTmFtZTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNob3J0IGF0dHJDaGFuZ2U7CisKKy0gKHZvaWQpaW5p
dE11dGF0aW9uRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxl
IGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSByZWxhdGVkTm9kZTooRE9NTm9kZSAqKXJlbGF0
ZWROb2RlIHByZXZWYWx1ZTooTlNTdHJpbmcgKilwcmV2VmFsdWUgbmV3VmFsdWU6KE5TU3RyaW5n
ICopbmV3VmFsdWUgYXR0ck5hbWU6KE5TU3RyaW5nICopYXR0ck5hbWUgYXR0ckNoYW5nZToodW5z
aWduZWQgc2hvcnQpYXR0ckNoYW5nZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0BlbmQK
KworQGludGVyZmFjZSBET01NdXRhdGlvbkV2ZW50IChET01NdXRhdGlvbkV2ZW50RGVwcmVjYXRl
ZCkKKy0gKHZvaWQpaW5pdE11dGF0aW9uRXZlbnQ6KE5TU3RyaW5nICopdHlwZSA6KEJPT0wpY2Fu
QnViYmxlIDooQk9PTCljYW5jZWxhYmxlIDooRE9NTm9kZSAqKXJlbGF0ZWROb2RlIDooTlNTdHJp
bmcgKilwcmV2VmFsdWUgOihOU1N0cmluZyAqKW5ld1ZhbHVlIDooTlNTdHJpbmcgKilhdHRyTmFt
ZSA6KHVuc2lnbmVkIHNob3J0KWF0dHJDaGFuZ2UgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzQs
IDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01NdXRhdGlvbkV2ZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01NdXRh
dGlvbkV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOTFlOWYwNjE1Zjc5MTcyNzhlZTI1NzZlOGE2NzA5
MmQyYjdlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTU11dGF0aW9uRXZlbnQubW0KQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01NdXRhdGlvbkV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRXZlbnRJbnRl
cm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJN
dXRhdGlvbkV2ZW50LmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5o
IgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisj
aW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpNdXRhdGlvbkV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRl
cm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01NdXRhdGlvbkV2ZW50CisKKy0gKERPTU5vZGUg
KilyZWxhdGVkTm9kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnJlbGF0ZWROb2RlKCkpKTsKK30K
KworLSAoTlNTdHJpbmcgKilwcmV2VmFsdWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnByZXZWYWx1ZSgpOworfQorCistIChO
U1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5uZXdWYWx1ZSgpOworfQorCistIChOU1N0cmluZyAq
KWF0dHJOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5hdHRyTmFtZSgpOworfQorCistICh1bnNpZ25lZCBzaG9ydClhdHRy
Q2hhbmdlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5hdHRyQ2hhbmdlKCk7Cit9CisKKy0gKHZvaWQpaW5pdE11dGF0aW9uRXZl
bnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6
KEJPT0wpY2FuY2VsYWJsZSByZWxhdGVkTm9kZTooRE9NTm9kZSAqKWluUmVsYXRlZE5vZGUgcHJl
dlZhbHVlOihOU1N0cmluZyAqKWluUHJldlZhbHVlIG5ld1ZhbHVlOihOU1N0cmluZyAqKWluTmV3
VmFsdWUgYXR0ck5hbWU6KE5TU3RyaW5nICopaW5BdHRyTmFtZSBhdHRyQ2hhbmdlOih1bnNpZ25l
ZCBzaG9ydClpbkF0dHJDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBj
YW5jZWxhYmxlLCBjb3JlKGluUmVsYXRlZE5vZGUpLCBpblByZXZWYWx1ZSwgaW5OZXdWYWx1ZSwg
aW5BdHRyTmFtZSwgaW5BdHRyQ2hhbmdlKTsKK30KKworLSAodm9pZClpbml0TXV0YXRpb25FdmVu
dDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUgOihE
T01Ob2RlICopaW5SZWxhdGVkTm9kZSA6KE5TU3RyaW5nICopaW5QcmV2VmFsdWUgOihOU1N0cmlu
ZyAqKWluTmV3VmFsdWUgOihOU1N0cmluZyAqKWluQXR0ck5hbWUgOih1bnNpZ25lZCBzaG9ydClp
bkF0dHJDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+aW5pdE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxl
LCBjb3JlKGluUmVsYXRlZE5vZGUpLCBpblByZXZWYWx1ZSwgaW5OZXdWYWx1ZSwgaW5BdHRyTmFt
ZSwgaW5BdHRyQ2hhbmdlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNdXRhdGlvbkV2ZW50KiBj
b3JlKERPTU11dGF0aW9uRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok11dGF0aW9uRXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NTXV0YXRpb25FdmVudCAqa2l0KFdlYkNvcmU6Ok11dGF0aW9uRXZl
bnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTU11dGF0aW9uRXZlbnQqPihraXQoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NTXV0YXRpb25FdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiZjRkOTY0Yjg5ZmE2Zjg0ZjRlNGFlMGVhY2U4OTg1NDdjZTAxMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnRJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01NdXRhdGlvbkV2ZW50Lmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE11dGF0aW9uRXZlbnQ7Cit9CisKK1dFQkNPUkVf
RVhQT1JUIFdlYkNvcmU6Ok11dGF0aW9uRXZlbnQqIGNvcmUoRE9NTXV0YXRpb25FdmVudCAqKTsK
K1dFQkNPUkVfRVhQT1JUIERPTU11dGF0aW9uRXZlbnQgKmtpdChXZWJDb3JlOjpNdXRhdGlvbkV2
ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NT3ZlcmZsb3dFdmVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU2YWVkNDlmMDQwOWYwYzBlMzkyYmU1YjI5M2ZmMmQwMTAyN2YwMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50Lmg+CisKK2Vu
dW0geworICAgIERPTV9IT1JJWk9OVEFMID0gMCwKKyAgICBET01fVkVSVElDQUwgPSAxLAorICAg
IERPTV9CT1RIID0gMgorfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzUpOworCitXRUJL
SVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBE
T01PdmVyZmxvd0V2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVk
IHNob3J0IG9yaWVudDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgaG9yaXpvbnRhbE92ZXJm
bG93OworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB2ZXJ0aWNhbE92ZXJmbG93OworCistICh2
b2lkKWluaXRPdmVyZmxvd0V2ZW50Oih1bnNpZ25lZCBzaG9ydClvcmllbnQgaG9yaXpvbnRhbE92
ZXJmbG93OihCT09MKWhvcml6b250YWxPdmVyZmxvdyB2ZXJ0aWNhbE92ZXJmbG93OihCT09MKXZl
cnRpY2FsT3ZlcmZsb3c7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU92ZXJmbG93RXZlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTU92ZXJmbG93RXZlbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRjN2EwM2NiNDVlMjYxNWNlNzFkYTYw
MDc2NmM0ODdiNGQ0ODM2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NT3ZlcmZsb3dFdmVudC5tbQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01F
dmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4
Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNp
bXBvcnQgIk92ZXJmbG93RXZlbnQuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpPdmVyZmxvd0V2ZW50Kj4ocmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBE
T01PdmVyZmxvd0V2ZW50CisKKy0gKHVuc2lnbmVkIHNob3J0KW9yaWVudAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+b3JpZW50
KCk7Cit9CisKKy0gKEJPT0wpaG9yaXpvbnRhbE92ZXJmbG93Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5ob3Jpem9udGFsT3Zl
cmZsb3coKTsKK30KKworLSAoQk9PTCl2ZXJ0aWNhbE92ZXJmbG93Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52ZXJ0aWNhbE92
ZXJmbG93KCk7Cit9CisKKy0gKHZvaWQpaW5pdE92ZXJmbG93RXZlbnQ6KHVuc2lnbmVkIHNob3J0
KWluT3JpZW50IGhvcml6b250YWxPdmVyZmxvdzooQk9PTClpbkhvcml6b250YWxPdmVyZmxvdyB2
ZXJ0aWNhbE92ZXJmbG93OihCT09MKWluVmVydGljYWxPdmVyZmxvdworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0T3ZlcmZsb3dFdmVu
dChpbk9yaWVudCwgaW5Ib3Jpem9udGFsT3ZlcmZsb3csIGluVmVydGljYWxPdmVyZmxvdyk7Cit9
CisKK0BlbmQKKworV2ViQ29yZTo6T3ZlcmZsb3dFdmVudCogY29yZShET01PdmVyZmxvd0V2ZW50
ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpPdmVyZmxvd0V2ZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTU92
ZXJmbG93RXZlbnQgKmtpdChXZWJDb3JlOjpPdmVyZmxvd0V2ZW50KiB2YWx1ZSkKK3sKKyAgICBX
ZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxET01PdmVyZmxvd0V2ZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50Kj4o
dmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTcwNWE5MDk0Y2RiYTU5MmMy
MDdkNGQzNTQ1YWJjNWY3ZWY3YmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNp
bXBvcnQgPFdlYkNvcmUvRE9NT3ZlcmZsb3dFdmVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBPdmVyZmxvd0V2ZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpPdmVy
Zmxvd0V2ZW50KiBjb3JlKERPTU92ZXJmbG93RXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01P
dmVyZmxvd0V2ZW50ICpraXQoV2ViQ29yZTo6T3ZlcmZsb3dFdmVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2I2
OTc2OGUzNTgyYzE0MWUxOTEwY2VkMzVkYjk4OGRmNTQ1ZGEzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50LmgKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxF
X01BQygxMF82KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01Qcm9ncmVzc0V2ZW50IDog
RE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgbGVuZ3RoQ29tcHV0YWJsZTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQ7CitAcHJvcGVydHkg
KHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWw7CitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Ri
N2Y1Njk4MzI3YWZlZTE3NmUzZDcyMGFlYmEyOTg5NDk4YjY1NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudC5tbQpAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVByb2dyZXNzRXZlbnRJbnRlcm5h
bC5oIgorCisjaW1wb3J0ICJET01FdmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlByb2dyZXNzRXZlbnQuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0
IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpQcm9n
cmVzc0V2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01Qcm9ncmVzc0V2ZW50CisKKy0gKEJPT0wpbGVuZ3RoQ29t
cHV0YWJsZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+bGVuZ3RoQ29tcHV0YWJsZSgpOworfQorCistICh1bnNpZ25lZCBsb25n
IGxvbmcpbG9hZGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sb2FkZWQoKTsKK30KKworLSAodW5zaWduZWQgbG9uZyBsb25n
KXRvdGFsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT50b3RhbCgpOworfQorCitAZW5kCisKK1dlYkNvcmU6OlByb2dyZXNzRXZl
bnQqIGNvcmUoRE9NUHJvZ3Jlc3NFdmVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBl
ciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UHJvZ3Jlc3NFdmVudCo+KHdyYXBwZXItPl9p
bnRlcm5hbCkgOiAwOworfQorCitET01Qcm9ncmVzc0V2ZW50ICpraXQoV2ViQ29yZTo6UHJvZ3Jl
c3NFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRP
bmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NUHJvZ3Jlc3NFdmVudCo+KGtpdChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudEludGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDY2MGVkOTNhODFjODEyMDVmOGE0MDg5NTVlZTkxNDc5NzIwMjYzNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudElu
dGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVByb2dyZXNzRXZlbnQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvZ3Jlc3NFdmVudDsKK30KKworV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6UHJvZ3Jlc3NFdmVudCogY29yZShET01Qcm9ncmVzc0V2ZW50
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NUHJvZ3Jlc3NFdmVudCAqa2l0KFdlYkNvcmU6OlByb2dy
ZXNzRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
UkdCQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mNzg5YjRmYjZhM2MyZTczMjljMjJjOTdmN2RjMTUxYThjNmM1NWQ4Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SR0JDb2xvci5o
CkBAIC0wLDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01D
U1NQcmltaXRpdmVWYWx1ZTsKK0BjbGFzcyBOU0NvbG9yOworCitXRUJLSVRfQ0xBU1NfQVZBSUxB
QkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01SR0JDb2xvciA6IERP
TU9iamVjdAorQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRpdmVWYWx1
ZSAqcmVkOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRpdmVWYWx1
ZSAqZ3JlZW47CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1ByaW1pdGl2ZVZh
bHVlICpibHVlOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRpdmVW
YWx1ZSAqYWxwaGE7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU0NvbG9yICpjb2xvciBX
RUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTVJHQkNvbG9yLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5NzEzN2FlMWJkYzE1ZGQyNWEwOTM2
MDY3MzhmNzNkNWY2ZDY2MDUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tCkBAIC0wLDAgKzEsMTA1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIkRPTVJHQkNvbG9ySW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTUHJpbWl0aXZl
VmFsdWUuaCIKKyNpbXBvcnQgIkNvbG9yTWFjLmgiCisjaW1wb3J0ICJET01DU1NQcmltaXRpdmVW
YWx1ZUludGVybmFsLmgiCisjaW1wb3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJSR0JDb2xvci5oIgorI2ltcG9ydCAiVGhy
ZWFkQ2hlY2suaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCisjaW1wb3J0ICJXZWJT
Y3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUg
SU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJHQkNvbG9yKj4oX2ludGVybmFsKQorCitA
aW1wbGVtZW50YXRpb24gRE9NUkdCQ29sb3IKKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYg
KFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01SR0JDb2xvciBj
bGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFsKQorICAg
ICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoRE9NQ1NT
UHJpbWl0aXZlVmFsdWUgKilyZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5yZWQoKSkpOworfQor
CistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWdyZWVuCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+
Z3JlZW4oKSkpOworfQorCistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWJsdWUKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6
OmdldFB0cihJTVBMLT5ibHVlKCkpKTsKK30KKworLSAoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilh
bHBoYQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmFscGhhKCkpKTsKK30KKworLSAoTlNDb2xvciAq
KWNvbG9yCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBXZWJDb3JlOjpuc0NvbG9yKElNUEwtPmNvbG9yKCkpOworfQorCitAZW5kCisKK1dl
YkNvcmU6OlJHQkNvbG9yKiBjb3JlKERPTVJHQkNvbG9yICp3cmFwcGVyKQoreworICAgIHJldHVy
biB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSR0JDb2xvcio+KHdyYXBwZXIt
Pl9pbnRlcm5hbCkgOiAwOworfQorCitET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6OlJHQkNvbG9y
KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOwor
ICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYgKERPTVJHQkNvbG9y
ICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBw
ZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NUkdCQ29sb3IgKndyYXBwZXIgPSBbW0RP
TVJHQkNvbG9yIGFsbG9jXSBfaW5pdF07CisgICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRl
cnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7
CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVy
IGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NUkdCQ29sb3JJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01SR0JDb2xvckludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZlNzYxNTQ4MmY4M2M4YTUyNjAxNmFk
NWQ5YTI5NWQwYzY3NTdlNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NUkdCQ29sb3JJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NUkdCQ29sb3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUkdCQ29sb3I7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OlJHQkNvbG9yKiBjb3JlKERPTVJHQkNvbG9y
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NUkdCQ29sb3IgKmtpdChXZWJDb3JlOjpSR0JDb2xvciop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SZWN0LmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mOGRlMzI4
MzA4NzZjMTM3MjAxOGYwYTc4YWY0MjM1YmJhODgzZjNlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SZWN0LmgKQEAgLTAsMCArMSwzNiBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01PYmplY3QuaD4KKworQGNsYXNzIERPTUNTU1ByaW1pdGl2ZVZhbHVlOworCitX
RUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFj
ZSBET01SZWN0IDogRE9NT2JqZWN0CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNT
U1ByaW1pdGl2ZVZhbHVlICp0b3A7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNT
U1ByaW1pdGl2ZVZhbHVlICpyaWdodDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9N
Q1NTUHJpbWl0aXZlVmFsdWUgKmJvdHRvbTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykg
RE9NQ1NTUHJpbWl0aXZlVmFsdWUgKmxlZnQ7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTVJlY3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWFkOWI3NDdlYTJjNjI0ZWI4ZTdmNTUzYzYyOWJm
NGQzOGExMTk0ZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NUmVjdC5tbQpAQCAtMCwwICsxLDk4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRP
TVJlY3RJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NQcmltaXRpdmVWYWx1ZS5oIgorI2ltcG9y
dCAiRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxl
cnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiUmVjdC5o
IgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgi
CisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRy
Lmg+CisKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJlY3QqPihfaW50
ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01SZWN0CisKKy0gKHZvaWQpZGVhbGxvYworewor
ICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVhZChbRE9NUmVj
dCBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFsKQor
ICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAoRE9N
Q1NTUHJpbWl0aXZlVmFsdWUgKil0b3AKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT50b3AoKSkpOwor
fQorCistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKXJpZ2h0Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1Q
TC0+cmlnaHQoKSkpOworfQorCistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWJvdHRvbQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0
KFdURjo6Z2V0UHRyKElNUEwtPmJvdHRvbSgpKSk7Cit9CisKKy0gKERPTUNTU1ByaW1pdGl2ZVZh
bHVlICopbGVmdAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmxlZnQoKSkpOworfQorCitAZW5kCisK
K1dlYkNvcmU6OlJlY3QqIGNvcmUoRE9NUmVjdCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3Jh
cHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UmVjdCo+KHdyYXBwZXItPl9pbnRlcm5h
bCkgOiAwOworfQorCitET01SZWN0ICpraXQoV2ViQ29yZTo6UmVjdCogdmFsdWUpCit7CisgICAg
V2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAoIXZhbHVlKQor
ICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01SZWN0ICp3cmFwcGVyID0gZ2V0RE9NV3Jh
cHBlcih2YWx1ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFz
ZV07CisgICAgRE9NUmVjdCAqd3JhcHBlciA9IFtbRE9NUmVjdCBhbGxvY10gX2luaXRdOworICAg
IHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwq
Pih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIod3JhcHBlciwg
dmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SZWN0SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41OTRl
YWMwYWEzMDM3YTQzYWIxZDcwY2YyNmZhZTM4NDIwN2VhNWI3Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SZWN0SW50ZXJuYWwuaApAQCAtMCwwICsx
LDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0IDxXZWJDb3JlL0RPTVJlY3QuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xh
c3MgUmVjdDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6UmVjdCogY29yZShET01SZWN0
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NUmVjdCAqa2l0KFdlYkNvcmU6OlJlY3QqKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlkNWNj
NmJiNTJhOGQ0ZjYyZjNmYzg1ZTRlOWQwYWE4MWMwM2E0MzAKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5oCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgPFdlYkNvcmUvRE9NVUlFdmVudC5oPgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3Owor
QGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQyg5ODc2XzUpCitX
RUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVRleHRFdmVudCA6IERPTVVJRXZlbnQKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICpkYXRhOworCistICh2b2lkKWluaXRUZXh0
RXZlbnQ6KE5TU3RyaW5nICopdHlwZUFyZyBjYW5CdWJibGVBcmc6KEJPT0wpY2FuQnViYmxlQXJn
IGNhbmNlbGFibGVBcmc6KEJPT0wpY2FuY2VsYWJsZUFyZyB2aWV3QXJnOihET01BYnN0cmFjdFZp
ZXcgKil2aWV3QXJnIGRhdGFBcmc6KE5TU3RyaW5nICopZGF0YUFyZzsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50Lm1tIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTdlMWNm
MmUxYWUyZWFhZDExYWMzN2YwM2Q3NjBkZWIxOWYyOWM2YwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50Lm1tCkBAIC0wLDAgKzEsNjgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiRE9NQWJzdHJhY3RWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUV2ZW50SW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NV2luZG93Lmgi
CisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhl
Y1N0YXRlLmgiCisjaW1wb3J0ICJUZXh0RXZlbnQuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgi
CisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNp
bXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6
OlRleHRFdmVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPihfaW50ZXJuYWwp
KQorCitAaW1wbGVtZW50YXRpb24gRE9NVGV4dEV2ZW50CisKKy0gKE5TU3RyaW5nICopZGF0YQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+ZGF0YSgpOworfQorCistICh2b2lkKWluaXRUZXh0RXZlbnQ6KE5TU3RyaW5nICopdHlw
ZUFyZyBjYW5CdWJibGVBcmc6KEJPT0wpY2FuQnViYmxlQXJnIGNhbmNlbGFibGVBcmc6KEJPT0wp
Y2FuY2VsYWJsZUFyZyB2aWV3QXJnOihET01BYnN0cmFjdFZpZXcgKil2aWV3QXJnIGRhdGFBcmc6
KE5TU3RyaW5nICopZGF0YUFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0VGV4dEV2ZW50KHR5cGVBcmcsIGNhbkJ1YmJsZUFyZywg
Y2FuY2VsYWJsZUFyZywgY29yZSh2aWV3QXJnKSwgZGF0YUFyZyk7Cit9CisKK0BlbmQKKworV2Vi
Q29yZTo6VGV4dEV2ZW50KiBjb3JlKERPTVRleHRFdmVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1
cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6VGV4dEV2ZW50Kj4od3JhcHBl
ci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTVRleHRFdmVudCAqa2l0KFdlYkNvcmU6OlRleHRF
dmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NVGV4dEV2ZW50Kj4oa2l0KHN0YXRpY19jYXN0
PFdlYkNvcmU6OkV2ZW50Kj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMzMTc0ZmVj
YTU5MzRjZjBjNmIwMTIyYmRjMTc2MjQwMjVjOGU0NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50SW50ZXJuYWwuaApAQCAtMCwwICsx
LDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NVGV4dEV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFRleHRFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6VGV4dEV2
ZW50KiBjb3JlKERPTVRleHRFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTVRleHRFdmVudCAq
a2l0KFdlYkNvcmU6OlRleHRFdmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01VSUV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TVVJRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kOTRmZWJmNjQ2OWE0NjE2NWE5NWUwOGM4ZjlmYzJjYmRi
NDBjMDdhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01VSUV2ZW50LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0y
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCitA
Y2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1Nf
QVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01VSUV2ZW50
IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NQWJzdHJhY3RWaWV3
ICp2aWV3OworQHByb3BlcnR5IChyZWFkb25seSkgaW50IGRldGFpbDsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHkpIGludCBrZXlDb2RlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5
IChyZWFkb25seSkgaW50IGNoYXJDb2RlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHBy
b3BlcnR5IChyZWFkb25seSkgaW50IGxheWVyWCBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNSwg
MTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgbGF5ZXJZIFdFQktJVF9ERVBSRUNBVEVE
X01BQygxMF81LCAxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBwYWdlWCBXRUJLSVRf
QVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBwYWdlWSBXRUJL
SVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB3aGljaCBX
RUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKKworLSAodm9pZClpbml0VUlFdmVudDooTlNTdHJp
bmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5j
ZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcgZGV0YWlsOihpbnQpZGV0YWlsIFdF
QktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNlIERPTVVJRXZlbnQg
KERPTVVJRXZlbnREZXByZWNhdGVkKQorLSAodm9pZClpbml0VUlFdmVudDooTlNTdHJpbmcgKil0
eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUgOihET01BYnN0cmFjdFZpZXcg
Kil2aWV3IDooaW50KWRldGFpbCBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNGRkZjk1YTgwYjQ2NzQwZGUyOGNiYTVjMWE3Y2ZlNjNiMzIyOWQ0MwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlFdmVudC5tbQpAQCAtMCww
ICsxLDEyMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01VSUV2ZW50SW50ZXJuYWwuaCIK
KworI2ltcG9ydCAiRE9NQWJzdHJhY3RWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUV2ZW50
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NV2lu
ZG93LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhy
ZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVUlFdmVu
dC5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgi
CisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpVSUV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5h
bCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01VSUV2ZW50CisKKy0gKERPTUFic3RyYWN0VmlldyAq
KXZpZXcKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT52aWV3KCkpKTsKK30KKworLSAoaW50KWRldGFp
bAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+ZGV0YWlsKCk7Cit9CisKKy0gKGludClrZXlDb2RlCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5rZXlDb2RlKCk7
Cit9CisKKy0gKGludCljaGFyQ29kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y2hhckNvZGUoKTsKK30KKworLSAoaW50KWxh
eWVyWAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+bGF5ZXJYKCk7Cit9CisKKy0gKGludClsYXllclkKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmxheWVyWSgp
OworfQorCistIChpbnQpcGFnZVgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnBhZ2VYKCk7Cit9CisKKy0gKGludClwYWdlWQor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
SU1QTC0+cGFnZVkoKTsKK30KKworLSAoaW50KXdoaWNoCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT53aGljaCgpOworfQorCist
ICh2b2lkKWluaXRVSUV2ZW50OihOU1N0cmluZyAqKXR5cGUgY2FuQnViYmxlOihCT09MKWNhbkJ1
YmJsZSBjYW5jZWxhYmxlOihCT09MKWNhbmNlbGFibGUgdmlldzooRE9NQWJzdHJhY3RWaWV3ICop
aW5WaWV3IGRldGFpbDooaW50KWluRGV0YWlsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRVSUV2ZW50KHR5cGUsIGNhbkJ1YmJsZSwg
Y2FuY2VsYWJsZSwgY29yZShpblZpZXcpLCBpbkRldGFpbCk7Cit9CisKKy0gKHZvaWQpaW5pdFVJ
RXZlbnQ6KE5TU3RyaW5nICopdHlwZSA6KEJPT0wpY2FuQnViYmxlIDooQk9PTCljYW5jZWxhYmxl
IDooRE9NQWJzdHJhY3RWaWV3ICopaW5WaWV3IDooaW50KWluRGV0YWlsCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRVSUV2ZW50KHR5
cGUsIGNhbkJ1YmJsZSwgY2FuY2VsYWJsZSwgY29yZShpblZpZXcpLCBpbkRldGFpbCk7Cit9CisK
K0BlbmQKKworV2ViQ29yZTo6VUlFdmVudCogY29yZShET01VSUV2ZW50ICp3cmFwcGVyKQorewor
ICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpVSUV2ZW50Kj4o
d3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTVVJRXZlbnQgKmtpdChXZWJDb3JlOjpV
SUV2ZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9u
ZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01VSUV2ZW50Kj4oa2l0KHN0YXRpY19jYXN0
PFdlYkNvcmU6OkV2ZW50Kj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01VSUV2ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjQ4NGY0ZDFjNzgy
ZDNiZGQ1NWFlNjE2ODc5YWFhNjMwZmUzMjZmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUV2ZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNp
bXBvcnQgPFdlYkNvcmUvRE9NVUlFdmVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFz
cyBVSUV2ZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpVSUV2ZW50KiBjb3JlKERP
TVVJRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01VSUV2ZW50ICpraXQoV2ViQ29yZTo6VUlF
dmVudCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01XaGVl
bEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVdoZWVsRXZlbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi41MGMyMTE5YmY0ZmRmZTA2ZTk2MzgzMTdjYmQ3M2QxNmRjNzk3ZWZkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01XaGVlbEV2ZW50
LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01Nb3VzZUV2ZW50Lmg+CisKK0BjbGFz
cyBET01BYnN0cmFjdFZpZXc7CisKK2VudW0geworICAgIERPTV9ET01fREVMVEFfUElYRUwgPSAw
eDAwLAorICAgIERPTV9ET01fREVMVEFfTElORSA9IDB4MDEsCisgICAgRE9NX0RPTV9ERUxUQV9Q
QUdFID0gMHgwMgorfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzUpOworCitXRUJLSVRf
Q0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01X
aGVlbEV2ZW50IDogRE9NTW91c2VFdmVudAorQHByb3BlcnR5IChyZWFkb25seSkgaW50IHdoZWVs
RGVsdGFYIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkg
aW50IHdoZWVsRGVsdGFZIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChy
ZWFkb25seSkgaW50IHdoZWVsRGVsdGE7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGlzSG9y
aXpvbnRhbDsKKworLSAodm9pZClpbml0V2hlZWxFdmVudDooaW50KXdoZWVsRGVsdGFYIHdoZWVs
RGVsdGFZOihpbnQpd2hlZWxEZWx0YVkgdmlldzooRE9NQWJzdHJhY3RWaWV3ICopdmlldyBzY3Jl
ZW5YOihpbnQpc2NyZWVuWCBzY3JlZW5ZOihpbnQpc2NyZWVuWSBjbGllbnRYOihpbnQpY2xpZW50
WCBjbGllbnRZOihpbnQpY2xpZW50WSBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09M
KWFsdEtleSBzaGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgV0VC
S0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTVdoZWVsRXZlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTVdoZWVsRXZlbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY2M2MxNzJmZDEzZWQ1NDJhMDBi
OTYxMTgwN2E5MDg1YjRhZDdmNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NV2hlZWxFdmVudC5tbQpAQCAtMCwwICsxLDExNSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBB
UyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmln
LmgiCisjaW1wb3J0ICJET01XaGVlbEV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NQWJz
dHJhY3RWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwuaCIKKyNpbXBv
cnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NV2luZG93LmgiCisjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisj
aW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
IgorI2ltcG9ydCAiV2hlZWxFdmVudC5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVm
aW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6V2hlZWxFdmVudCo+KHJlaW50ZXJwcmV0X2Nh
c3Q8V2ViQ29yZTo6RXZlbnQqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NV2hl
ZWxFdmVudAorCistIChkb3VibGUpZGVsdGFYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5kZWx0YVgoKTsKK30KKworLSAoZG91
YmxlKWRlbHRhWQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+ZGVsdGFZKCk7Cit9CisKKy0gKGRvdWJsZSlkZWx0YVoKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwt
PmRlbHRhWigpOworfQorCistICh1bnNpZ25lZClkZWx0YU1vZGUKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmRlbHRhTW9kZSgp
OworfQorCistIChpbnQpd2hlZWxEZWx0YVgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndoZWVsRGVsdGFYKCk7Cit9CisKKy0g
KGludCl3aGVlbERlbHRhWQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+d2hlZWxEZWx0YVkoKTsKK30KKworLSAoaW50KXdoZWVs
RGVsdGEKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPndoZWVsRGVsdGEoKTsKK30KKworLSAoQk9PTCl3ZWJraXREaXJlY3Rpb25J
bnZlcnRlZEZyb21EZXZpY2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndlYmtpdERpcmVjdGlvbkludmVydGVkRnJvbURldmlj
ZSgpOworfQorCistIChCT09MKWlzSG9yaXpvbnRhbAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aXNIb3Jpem9udGFsKCk7Cit9
CisKKy0gKHZvaWQpaW5pdFdoZWVsRXZlbnQ6KGludClpbldoZWVsRGVsdGFYIHdoZWVsRGVsdGFZ
OihpbnQpaW5XaGVlbERlbHRhWSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IHNjcmVlblg6
KGludClzY3JlZW5YIHNjcmVlblk6KGludClzY3JlZW5ZIGNsaWVudFg6KGludCljbGllbnRYIGNs
aWVudFk6KGludCljbGllbnRZIGN0cmxLZXk6KEJPT0wpY3RybEtleSBhbHRLZXk6KEJPT0wpYWx0
S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpbWV0YUtleQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0V2hl
ZWxFdmVudChpbldoZWVsRGVsdGFYLCBpbldoZWVsRGVsdGFZLCBjb3JlKHZpZXcpLCBzY3JlZW5Y
LCBzY3JlZW5ZLCBjbGllbnRYLCBjbGllbnRZLCBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBt
ZXRhS2V5KTsKK30KKworQGVuZAorCitXZWJDb3JlOjpXaGVlbEV2ZW50KiBjb3JlKERPTVdoZWVs
RXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0
PFdlYkNvcmU6OldoZWVsRXZlbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9N
V2hlZWxFdmVudCAqa2l0KFdlYkNvcmU6OldoZWVsRXZlbnQqIHZhbHVlKQoreworICAgIFdlYkNv
cmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PERPTVdoZWVsRXZlbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPih2YWx1ZSkp
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NV2hlZWxF
dmVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVdoZWVsRXZl
bnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMyNzFjMjQ0OGJjYjBkNzAzNzNhMmI4NGMyOGM4ZTcy
ZDZkYWU5MmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTVdoZWVsRXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9E
T01XaGVlbEV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFdoZWVsRXZlbnQ7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OldoZWVsRXZlbnQqIGNvcmUoRE9NV2hlZWxF
dmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTVdoZWVsRXZlbnQgKmtpdChXZWJDb3JlOjpXaGVl
bEV2ZW50Kik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285163</attachid>
            <date>2016-08-02 16:53:28 -0700</date>
            <delta_ts>2016-08-02 17:03:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160476-20160802165207.patch</filename>
            <type>text/plain</type>
            <size>302043</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg4Y2Q1ZTZkMGRlMGFk
M2IxODM4MDRmYzBkZDI3MDMwYTY5MjU0YS4uOGM4ZmRkN2RlMjg5MjQwOTBhZmM2NzA2N2YzZGFi
YjZjMjk2ZDdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk3IEBACiAyMDE2LTA4LTAyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgRnJlZXplIHRoZSBP
YmplY3RpdmUtQyBET00gRXZlbnQgYW5kIENTUyBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNDc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU0NoYXJzZXRSdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NQ1NTQ2hhcnNldFJ1bGUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU0ltcG9ydFJ1bGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01DU1NJbXBvcnRSdWxlLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU01lZGlhUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNT
U01lZGlhUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NNZWRp
YVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1Bh
Z2VSdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUGFnZVJ1bGUu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUGFnZVJ1bGVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVl
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWUu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWVJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGUuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlLm1tOiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3QubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24uaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hlZXQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01DU1NTdHlsZVNoZWV0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUNTU1Vua25vd25SdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NQ1NTVW5rbm93blJ1bGUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9N
Q1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTVmFs
dWUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdC5tbTogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNvdW50ZXIuaDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvb2JqYy9ET01Db3VudGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNvdW50ZXJJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnQu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5hbC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FdmVudFRhcmdldC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnQuaDogQWRkZWQuCisgICAgICAgICog
YmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTU1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01Nb3VzZUV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TU1vdXNlRXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TU11dGF0aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01NdXRh
dGlvbkV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9u
RXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01PdmVyZmxvd0V2
ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU92ZXJmbG93RXZlbnRJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZl
bnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50Lm1t
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnRJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IubW06IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NUkdCQ29sb3JJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTVJlY3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01SZWN0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRl
cm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5tbTogQWRkZWQuCisg
ICAgICAgICgtW0RPTVRleHRFdmVudCBkYXRhXSk6CisgICAgICAgICgtW0RPTVRleHRFdmVudCBp
bml0VGV4dEV2ZW50OmNhbkJ1YmJsZUFyZzpjYW5jZWxhYmxlQXJnOnZpZXdBcmc6ZGF0YUFyZzpd
KToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudEludGVybmFsLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVUlFdmVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NVUlFdmVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NV2hlZWxFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVdo
ZWVsRXZlbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVu
dEludGVybmFsLmg6IEFkZGVkLgorCisyMDE2LTA4LTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlIG1vcmUgT2JqZWN0aXZlLUMgYmluZGlu
Z3MgdGhhdCBhcmUgbm90IHVzZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDQ3MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBk
OGFhN2ZlNTY5MmUyZDk0Y2UyNTQwYzBjMmUxZmUwYWRjMzI5YTEwLi4xMzUzNjM3MjkzZGIzODZk
MDg0ODlhZjIzMWE4M2YxZTZkOGI3N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTIzNiwzMCArMjM2LDYgQEAgSlNfQU5EX09CSkNfQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvY3J5cHRvL0NyeXB0b0tleS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL0Ny
eXB0b0tleVBhaXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlw
dG8uaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9j
c3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVs
ZS5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAotICAgICQoV2Vi
Q29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBc
Ci0gICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwgXAotICAgICQoV2ViQ29yZSkv
Y3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWUuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUp
L2Nzcy9Db3VudGVyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlk
bCBcCi0gICAgJChXZWJDb3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nz
cy9Gb250RmFjZVNldC5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0Lmlk
bCBcCi0gICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvUmVjdC5p
ZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9BdHRyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKQEAgLTI4NywxNiArMjYz
LDEwIEBAIEpTX0FORF9PQkpDX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9F
bnRpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9FcnJvckV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vRXZl
bnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9FdmVudExpc3RlbmVyLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9kb20vRXZlbnRUYXJnZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Gb2N1c0V2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkv
ZG9tL0tleWJvYXJkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlQ2hhbm5l
bC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlkbCBcCkBAIC0zMDQsMjIgKzI3NCwxNiBA
QCBKU19BTkRfT0JKQ19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vTm9kZUxp
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvZG9tL092ZXJmbG93RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9QYXJl
bnROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAotICAgICQoV2ViQ29y
ZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vU2hhZG93Um9vdC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL1Nsb3RhYmxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vU3RyaW5nQ2FsbGJhY2su
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9UZXh0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20v
VGV4dEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9XaGVlbEV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vWE1MRG9jdW1lbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2ZpbGVhcGkvRmlsZUV4Y2VwdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZmlsZWFw
aS9GaWxlUmVhZGVyLmlkbCBcCkBAIC00NTUsMTQgKzQxOSwzOCBAQCBKU19BTkRfT0JKQ19CSU5E
SU5HX0lETFMgPSBcCiAjCiAKIEpTX09OTFlfQklORElOR19JRExTID0gXAorCSQoV2ViQ29yZSkv
Y3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VMb2Fk
RXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKKwkkKFdl
YkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJh
bWVSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAorCSQo
V2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VS
dWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIFwKKwkkKFdl
YkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRs
IFwKKwkkKFdlYkNvcmUpL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBcCisJJChXZWJDb3Jl
KS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVTaGVldC5p
ZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwgXAorCSQoV2ViQ29yZSkv
Y3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWUuaWRsIFwK
KwkkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9Db3Vu
dGVyLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBcCisJJChXZWJD
b3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9Gb250RmFjZVNldC5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL01lZGlh
UXVlcnlMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5p
ZGwgXAorCSQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvUmVj
dC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKIAkkKFdlYkNvcmUpL2Nz
cy9TdHlsZVNoZWV0LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKICAgICAkKFdlYkNvcmUp
L2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL1dlYktp
dENTU01hdHJpeC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwgXApAQCAtNDgwLDYg
KzQ2OCwxOCBAQCBKU19PTkxZX0JJTkRJTkdfSURMUyA9IFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdE5hbWVkRmxvdy5p
ZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvZG9tL0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vRXZlbnRMaXN0ZW5l
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL0V2ZW50VGFyZ2V0LmlkbCBcCisgICAgJChXZWJD
b3JlKS9kb20vS2V5Ym9hcmRFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZl
bnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9kb20vT3ZlcmZsb3dFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1Byb2dy
ZXNzRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9kb20vVGV4dEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vVUlF
dmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1doZWVsRXZlbnQuaWRsIFwKIAkkKFdlYkNv
cmUpL2ZpbGVhcGkvQmxvYi5pZGwgXAogCSQoV2ViQ29yZSkvZmlsZWFwaS9GaWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9maWxlYXBpL0ZpbGVFcnJvci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4NTM2NTdlOTU4Y2M0MWM3
OGVhYzk2ZTAyMmEwM2RmMGY3ZTQyOTguLmZlZDVhM2M5MDI4ZDdhNjkwZjgxYWRiOGUyOWM3MGI3
NDkwN2JlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTEwNjAsNiArMTA2MCw3IEBACiAJCTFBRjhFMTFBMTI1NjU5MjYwMDIz
MEZGNyAvKiBQcm94eVNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFGOEUxMTkxMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFGOEUxMzMx
MjU2NUE0NDAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRjhFMTMyMTI1NjVBNDQwMDIzMEZGNyAvKiBQcm94
eVNlcnZlci5jcHAgKi87IH07CiAJCTFBRjhFMUMzMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNl
cnZlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNlcnZlckNGTmV0LmNwcCAqLzsg
fTsKKwkJMUFGQzZEMkExRDUxNjA5ODAwQTQyRkExIC8qIERPTVRleHRFdmVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI5QUIwNzBD
Qjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMUFGRTEx
OTkwQ0JGRkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5NzBDQkZGQ0M0MDAz
MDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCAqLzsgfTsKIAkJMUFGRTExOUEwQ0JG
RkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRTExOTgwQ0JGRkNDNDAwMzAxN0ZBIC8q
IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oICovOyB9OwogCQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RG
QjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4QzFEMzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVB
VkZPYmpDLmggKi87IH07CkBAIC0zMTEyLDI1ICszMTEzLDI1IEBACiAJCTg1MDMxQjRGMEE0NEVG
QzcwMEY5OTJFMCAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIzOTBBNDRFRkM3MDBGOTkyRTAgLyogVUlF
dmVudFdpdGhLZXlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg1MDMxQjUwMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjNBMEE0
NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCAqLzsgfTsKIAkJODUwMzFCNTEwQTQ0RUZD
NzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODUwMzJE
RDcwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTQ2hhcnNldFJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERDcwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NTAzMkREODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDNDBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUubW0gKi87IH07Ci0JCTg1MDMyREQ5MEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREM1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NG
b250RmFjZVJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERDkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzJEQzUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1MDMyRERB
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NGb250RmFjZVJ1bGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDNjBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTRm9udEZhY2VSdWxlLm1tICovOyB9OwotCQk4NTAzMkREQjBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUwMzJEQzcwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1
bGUuaCAqLzsgfTsKKwkJODUwMzJEREIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMy
REM3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzJEREMwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0ltcG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0
UnVsZS5tbSAqLzsgfTsKLQkJODUwMzJEREQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlh
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUw
MzJEQzkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5oICovOyB9OworCQk4NTAz
MkRERDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDOTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTTWVkaWFSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODUwMzJEREUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVs
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMy
RENBMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUubW0gKi87IH07Ci0JCTg1MDMy
RERGMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJEQ0IwQUE4QzlCRTAwN0QzQjdEIC8q
IERPTUNTU1BhZ2VSdWxlLmggKi87IH07CisJCTg1MDMyRERGMEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzJEQ0IwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzJERTAwQUE4
QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJEQ0MwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U1BhZ2VSdWxlLm1tICovOyB9OwotCQk4NTAzMkRFMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUw
MzJEQ0QwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCAqLzsgfTsKKwkJODUwMzJERTEw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODUwMzJERTIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDRTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTUnVsZS5tbSAqLzsgfTsKLQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTAzMkRDRjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLzsgfTsK
KwkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDRjBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NTAzMkRFNDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVs
ZUxpc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTAzMkREMDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gKi87IH07Ci0JCTg1
MDMyREU1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkREMTBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICovOyB9OworCQk4NTAzMkRFNTBB
QThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJERDEwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTAzMkRFNjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1MDMyREQyMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0
aW9uLm1tICovOyB9OwotCQk4NTAzMkRFNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVS
dWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAz
MkREMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggKi87IH07CisJCTg1MDMy
REU3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQzMEFBOEM5QkUwMDdEM0I3RCAv
KiBET01DU1NTdHlsZVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4NTAzMkRFODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJE
RDQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLzsgfTsKLQkJODUwMzJE
RTkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERTkwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NTAzMkRFQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENjBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUubW0gKi87IH07CiAJCTg1MDY1NkZFMEFBQjQ3NjMw
MDJEMTVDMCAvKiBET01NZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDY1NkY4MEFBQjQ3NjMwMDJEMTVDMCAvKiBET01NZWRpYUxpc3Qu
aCAqLzsgfTsKIAkJODUwNjU2RkYwQUFCNDc2MzAwMkQxNUMwIC8qIERPTU1lZGlhTGlzdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDY1NkY5MEFB
QjQ3NjMwMDJEMTVDMCAvKiBET01NZWRpYUxpc3QubW0gKi87IH07CkBAIC0zMTc4LDcgKzMxNzks
NyBAQAogCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQkY0RDkwQUJCNkI1NTAwODY0
N0JCIC8qIERPTU5vZGUuaCAqLzsgfTsKIAkJODUzQkY0REMwQUJCNkI1NTAwODY0N0JCIC8qIERP
TU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTNCRjREQTBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSAqLzsgfTsKIAkJODUzQkY0RUMw
QUJCNkVCOTAwODY0N0JCIC8qIERPTU5vZGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1M0JGNEQ5MEFCQjZCNTUwMDg2NDdC
QiAvKiBET01Ob2RlLmggKi87IH07Ci0JCTg1NDA3NTIwMEFENkM1RkIwMDYyMEM1NyAvKiBET01F
dmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODU0MDc1MUYwQUQ2QzVGQjAwNjIwQzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IH07CisJ
CTg1NDA3NTIwMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1MUYwQUQ2QzVGQjAwNjIw
QzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODU0MDc1MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3
NTI1MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggKi87IH07CiAJCTg1NDA3NTNF
MEFENkM2REMwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1MUYwQUQ2QzVG
QjAwNjIwQzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTg1NDA3NTNGMEFENkM2REMw
MDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcg
LyogRE9NTm9kZUZpbHRlci5oICovOyB9OwpAQCAtMzIwOCwyNSArMzIwOSwyNSBAQAogCQk4NTUy
NkNEMjBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1MjZDRDAwQUIwQjdEOTAwMDMwMkVBIC8q
IERPTVRyZWVXYWxrZXIuaCAqLzsgfTsKIAkJODU1MjZDRDMwQUIwQjdEQTAwMDMwMkVBIC8qIERP
TVRyZWVXYWxrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTUyNkNEMTBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5tbSAqLzsgfTsK
IAkJODU1MjZEMDUwQUIwQjk3OTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2
Q0QwMEFCMEI3RDkwMDAzMDJFQSAvKiBET01UcmVlV2Fsa2VyLmggKi87IH07Ci0JCTg1NUQzNThB
MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1RDM1ODkwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJH
QkNvbG9yLmggKi87IH07CisJCTg1NUQzNThBMEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1RDM1
ODkwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU1RDM1OEQwQUQ3MDdDQzAwMTlBQUM3IC8q
IERPTVJHQkNvbG9yLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29s
b3IuaCAqLzsgfTsKIAkJODU2QzhBRTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2QzhBRTIwQTkx
MjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTg1NkM4QUU1MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmpl
Y3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZD
OEFFMzBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tICovOyB9OwotCQk4NTdFMEIyNTBB
QjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1v
dXNlRXZlbnQuaCAqLzsgfTsKKwkJODU3RTBCMjUwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNl
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU3RTBCMjYwQUIwNDM0NjAwMzZF
NDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5t
bSAqLzsgfTsKIAkJODU3RTBCMzEwQUIwNDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi87IH07CiAJ
CTg1ODAxNUNFMEFCQ0E3NUQwMDgwNTg4RCAvKiBET01YUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4MDE1Q0QwQUJDQTc1RDAw
ODA1ODhEIC8qIERPTVhQYXRoRXhjZXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODU4QzM4MUMwQUE4RTI5NjAwQjE4N0E0IC8qIERPTUNT
U1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLzsgfTsKKwkJODU4QzM4
MUMwQUE4RTI5NjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9N
Q1NTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NThDMzgxRDBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQjBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi87IH07Ci0JCTg1OEMzODJDMEFBOEU0MDUwMEIxODdB
NCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLmggKi87IH07CisJCTg1OEMzODJDMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQ
cmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU4QzM4
MkQwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkIwQUE4RTQwNTAwQjE4
N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tICovOyB9OwotCQk4NThDMzgzQzBBQThFRDgy
MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgzQTBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFs
dWVMaXN0LmggKi87IH07CisJCTg1OEMzODNDMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
OEMzODNBMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1ZUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NThDMzgzRDBBQThFRDgyMDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4M0IwQUE4RUQ4MjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVl
TGlzdC5tbSAqLzsgfTsKLQkJODU4QzM4QTUwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OEMzOEEx
MEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLmggKi87IH07CisJCTg1OEMzOEE1MEFBOEYy
MDQwMEIxODdBNCAvKiBET01Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NThDMzhBMTBBQThGMjA0MDBCMTg3QTQgLyogRE9NQ291bnRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1OEMz
OEE2MEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4QTIwQUE4RjIwNDAwQjE4N0E0IC8qIERP
TUNvdW50ZXIubW0gKi87IH07Ci0JCTg1OEMzOEE3MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzhB
MzBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVjdC5oICovOyB9OworCQk4NThDMzhBNzBBQThGMjA0
MDBCMTg3QTQgLyogRE9NUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NThDMzhBODBBQThG
MjA0MDBCMTg3QTQgLyogRE9NUmVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1OEMzOEE0MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tICov
OyB9OwotCQk4NThDMzkyODBBQThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM5MjYwQUE4
RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAqLzsgfTsKKwkJODU4QzM5MjgwQUE4
RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBET01D
U1NTdHlsZVNoZWV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODU4QzM5MjkwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzkyNzBB
QThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5tbSAqLzsgfTsKIAkJODU4QzM5Qjgw
QUE5MDVFRjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQTBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLzsgfTsKIAkJODU4QzM5QjkwQUE5MDVFRjAwQjE4N0E0
IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgyQTBBQThFNDA1MDBCMTg3QTQg
LyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLzsgfTsKQEAgLTMyNzMsNyArMzI3NCw3IEBACiAJ
CTg1QUNBQThFMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQThBMEE5Qjc1OUMwMDY3MUU5
MCAvKiBET01Ob2RlTGlzdC5tbSAqLzsgfTsKIAkJODVBQ0FCQjAwQTlDQUY4MDAwNjcxRTkwIC8q
IERPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUFDQUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUFDQUJCMTBBOUNBRjgwMDA2NzFFOTAg
LyogRE9NRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUFDQUJBRjBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQubW0gKi87IH07
Ci0JCTg1QUZBODIyMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1
IC8qIERPTUV2ZW50LmggKi87IH07CisJCTg1QUZBODIyMEFBRjUyOEEwMEU4NDMwNSAvKiBET01F
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVB
RkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVBRkE4MjMwQUFGNTI4QTAwRTg0MzA1IC8q
IERPTUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVBRkE4MjEwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovOyB9OwogCQk4NUI0
OThFRDBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThFQzBBREIzMkZCMDA5MjVD
QkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi87IH07CiAJCTg1QjQ5OEYzMEFEQjMzNkEwMDky
NUNCQiAvKiBET01DU1NWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThGMjBBREIzMzZBMDA5MjVDQkIgLyogRE9NQ1NTVmFs
dWVJbnRlcm5hbC5oICovOyB9OwpAQCAtMzMwNiwyMCArMzMwNywyMCBAQAogCQk4NUMwNTBCQjBB
RDg0RjVFMDA1NTMyRTcgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzA1MEI5MEFEODRGNUUwMDU1MzJFNyAv
KiBET01IVE1MRW1iZWRFbGVtZW50Lm1tICovOyB9OwogCQk4NUM3OEE2ODBBQkRFMUI0MDA0NEZD
MTYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUM3OEE2NzBBQkRFMUI0MDA0NEZDMTYgLyogRE9NRXhjZXB0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVDN0YzRTYw
QUFGNUQ1RTAwNDAxNEREIC8qIERPTUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFGQTgyMDBBQUY1MjhBMDBFODQz
MDUgLyogRE9NRXZlbnQuaCAqLzsgfTsKLQkJODVDN0Y0OTEwQUFGNzlEQzAwNDAxNEREIC8qIERP
TVVJRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi87IH07CisJCTg1QzdG
NDkxMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9N
VUlFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg1QzdGNDkyMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y0OTAwQUFGNzlEQzAwNDAx
NEREIC8qIERPTVVJRXZlbnQubW0gKi87IH07CiAJCTg1QzdGNEQwMEFBRjgzRjYwMDQwMTRERCAv
KiBET01VSUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVu
dC5oICovOyB9OwotCQk4NUM3RjVCRjBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1
QkMwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJODVDN0Y1
QkYwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAv
KiBET01NdXRhdGlvbkV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODVDN0Y1QzAwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZl
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3
RjVCRDBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5tbSAqLzsgfTsKLQkJODVD
N0Y1RDAwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUNFMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi87IH07CisJCTg1QzdGNUQwMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUM3RjVDRTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1
QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1Q0YwQUFGQjhEOTAwNDAx
NEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi87IH07Ci0JCTg1QzdGNUU3MEFBRkJBRkIwMDQw
MTRERCAvKiBET01XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUM3RjVFNTBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5o
ICovOyB9OworCQk4NUM3RjVFNzBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1RTUwQUFG
QkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9N
V2hlZWxFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tICovOyB9Owog
CQk4NUNBOTZCODBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50aXR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0Yg
LyogRE9NRW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJ
ODVDQTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1Q0E5NkI3MEE5NjIxQTYwMDY5MENDRiAv
KiBET01FbnRpdHkubW0gKi87IH07CiAJCTg1Q0E5NzVDMEE5NjJFNTQwMDY5MENDRiAvKiBET01E
b2N1bWVudFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1Q0E5NzVBMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUNBOTc1RDBBOTYyRTU0MDA2OTBD
Q0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODVDQTk3NUIwQTk2MkU1NDAwNjkwQ0NGIC8qIERPTURvY3VtZW50VHlw
ZS5tbSAqLzsgfTsKLQkJODVEMkFENjgwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDJB
RDY3MEFCMUE0MEEwMEMzMTNFQSAvKiBET01FdmVudExpc3RlbmVyLmggKi87IH07CisJCTg1RDJB
RDY4MEFCMUE0MEEwMEMzMTNFQSAvKiBET01FdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEg
LyogRE9NRXZlbnRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg1RDJBRDZEMEFCMUE0ODIwMEMzMTNFQSAvKiBET01FdmVudExpc3Rl
bmVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
ICovOyB9OwogCQk4NUQzODlCMjBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVEMzg5QjAwQTk5MUE3RjAw
MjgyMTQ1IC8qIERPTUF0dHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9
OwogCQk4NUQzODlCMzBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDM4OUIxMEE5OTFBN0YwMDI4MjE0
NSAvKiBET01BdHRyLm1tICovOyB9OwpAQCAtMzQwOCw3ICszNDA5LDcgQEAKIAkJODVGNzRFMDgw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQx
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggKi87IH07CiAJCTg1
Rjc0RTA5MEFBOERGOEMwMDBEQzI4NCAvKiBET01DU1NTdHlsZVJ1bGUuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQz
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCAqLzsgfTsKIAkJODVGNzRFMEEw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKLQkJODVGRjMxNUEwQUFG
QkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggKi87IH07CisJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1RkYzMTVCMEFB
RkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERP
TUtleWJvYXJkRXZlbnQubW0gKi87IH07CiAJCTg2MUMyRUE0MTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5jcHAgKi87IH07CiAJCTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFj
dGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NjY0LDcgKzU2NjUs
NyBAQAogCQlCQ0MwRTg3NTFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODcz
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQ0Mw
RTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwRTg3NDFCRkU3MEU5MDA4RjdG
NTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi87IH07CiAJCUJDQzQzODc4MEU4ODZDQzcwMDUz
M0RENSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpT
SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07Ci0JCUJDQzU3MzM1MEQ2OTVCQkUwMDZF
RjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NF
dmVudC5oICovOyB9OworCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkND
NTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0M1NzMzNjBENjk1QkJFMDA2
RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVz
c0V2ZW50Lm1tICovOyB9OwogCQlCQ0M1NzMzODBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jl
c3NFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudEludGVy
bmFsLmggKi87IH07CiAJCUJDQzU3MzREMEQ2OTVDMDYwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5o
ICovOyB9OwpAQCAtNjI3Nyw3ICs2Mjc4LDcgQEAKIAkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZF
IC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRy
YXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlE
RDc2M0JCMjA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERENzYzQkIxMDk5MkMyQzkwMDc0MEI4
RSAvKiBsaWJ4bWwyLmR5bGliICovOyB9OwogCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyog
Q1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NVbmtub3duUnVsZS5oICovOyB9
OwotCQlEREU2M0VENTBCN0Q0NUE4MDAyMjY5OTggLyogRE9NVGV4dEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTQ3NTBCN0QxQkFGMDBB
NTNGRkQgLyogRE9NVGV4dEV2ZW50LmggKi87IH07CisJCURERTYzRUQ1MEI3RDQ1QTgwMDIyNjk5
OCAvKiBET01UZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzM0ExNDc1MEI3RDFCQUYwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlERTQ5QjMwOTE2
NUYyRkUxMDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDcxNjVGMkZFMTAw
MTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKIAkJREVCQ0NE
RDIxNjY0NkU4MjAwQTQ1MkUxIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERTQ5QjMwODE2NUYyRkUx
MDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLzsgfTsKIAkJREVCQ0NE
RDQxNjY0NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDAxNjVGMkZDNjAw
MTAzMzhEIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oICovOyB9OwpAQCAtOTEwNSw3ICs5
MTA2LDcgQEAKIAkJNDNGNkZEOTUxM0JDRDBCMTAwMjI0MDUyIC8qIFNWR0FuaW1hdGVkSW50ZWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZElu
dGVnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEw
MDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0MTUyOTJEMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NDI5QUIw
NzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVRleHRFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0MjlBQjA3MENCODRGODEwMDc2NDdDNSAvKiBET01UZXh0RXZl
bnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IERPTVRleHRFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owog
CQk0NDJBQkNENTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5l
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c0xv
YWRlckNsaWVudENGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyQUY3
QTcxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWlja0xvb2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQy
QUY3QTgxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrTG9vay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwNTc4LDI1ICsxMDU3OSwyNSBAQAogCQk4NTAzMUIzOTBBNDRFRkM3MDBGOTky
RTAgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVUlFdmVudFdpdGhLZXlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTAzMUIzQTBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2hlZWxFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaGVlbEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1ND
aGFyc2V0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTQ2hh
cnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQzQwQUE4QzlC
RTAwN0QzQjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VS
dWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NGb250RmFjZVJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQzYwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1MDMyREM3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbXBvcnRSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NJbXBvcnRSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTUNTU0ltcG9ydFJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1
MDMyREM5MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTAzMkRDQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU01lZGlh
UnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQ0IwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01DU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAz
MkRDQzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUGFnZVJ1bGUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NSdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01D
U1NSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNT
U1J1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENGMEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUw
MzJERDAwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU1J1bGVMaXN0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkREMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkRE
MjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZURlY2xhcmF0aW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkREMzBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJERDQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg1MDMyREQ1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3du
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTVW5rbm93blJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUwMzJEQzMwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTQ2hhcnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CisJCTg1MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NQ1NTQ2hhcnNldFJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTRm9udEZhY2VS
dWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTAzMkRDNjBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTAzMkRDNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
SW1wb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IERPTUNTU0ltcG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1
MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NJbXBv
cnRSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlv
bklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJEQzkwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBs
aW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODUwMzJEQ0EwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NQ1NTTWVkaWFSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJE
Q0IwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyRENDMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQ
YWdlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owor
CQk4NTAzMkRDRDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1J1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyRENFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBET01DU1NSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJE
Q0YwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUnVsZUxpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyREQwMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTUnVsZUxpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owor
CQk4NTAzMkREMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1N0
eWxlRGVjbGFyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNp
ZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyREQyMEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NTdHlsZURl
Y2xhcmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJERDMwQUE4QzlC
RTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1N0eWxlUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5n
Lm9iamNwcDsgfTsKKwkJODUwMzJERDQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NQ1NTU3R5bGVSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1
YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUw
MzJERDUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1Vua25vd25SdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTVW5rbm93blJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1MDMyREQ2MEFBOEM5QkUwMDdEM0I3RCAv
KiBET01DU1NVbmtub3duUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01DU1NVbmtub3duUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODUwNjU2REMwQUFCNDREOTAwMkQxNUMwIC8qIFN0eWxlU2hlZXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODUwNjU2REYwQUFCNDU0RjAwMkQxNUMwIC8qIFN0eWxlU2hlZXRMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3R5bGVTaGVldExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA2NDYsNyArMTA2NDcsNyBAQAogCQk4NTM4RjA4NDBBRDcyQ0I2MDA2QTgx
RDEgLyogRE9NUmFuZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJh
bmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTNCRjREOTBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTNCRjREQTBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTQwNzUxRjBB
RDZDNUZCMDA2MjBDNTcgLyogRE9NRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcg
LyogRE9NTm9kZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NDBBRDZD
QkY5MDA2MjBDNTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQXBwbGV0RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU0MDc1NjUwQUQ2Q0JGOTAwNjIwQzU3IC8qIERP
TUhUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01IVE1MRW1iZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OwpAQCAtMTA2OTAsNDAgKzEwNjkxLDQwIEBACiAJCTg1NzREMUY2MEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEpT
U1ZHUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjcwQURFNjEy
MjAwNENCQTExIC8qIEpTU1ZHUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTVkdSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3
NEQxRjgwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmg7IHBhdGggPSBKU1NWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODU3RTBCMjQwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTW91c2VFdmVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU3RTBCMjMwQUIwNDM0NjAwMzZF
NDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVu
ZGluZyA9IDA7IHBhdGggPSBET01Nb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NTW91
c2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRp
b25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1ODAxNUNEMEFCQ0E3NUQw
MDgwNTg4RCAvKiBET01YUGF0aEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01YUGF0aEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk4NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NThDMzgxQjBBQThFMjk2MDBCMTg3QTQg
LyogRE9NQ1NTVmFsdWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NQ1NTVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OEMzODJB
MEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4MkIwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUNTU1ByaW1pdGl2ZVZhbHVlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NThD
MzgzQTBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NWYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFn
ZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1OEMz
ODJCMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUHJp
bWl0aXZlVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NThDMzgzQTBBQThF
RDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTVmFsdWVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NThDMzgzQjBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVM
aXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU1Zh
bHVlTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4QTEwQUE4RjIw
NDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4QTIw
QUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NQ291bnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODU4QzM4QTEwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01Db3VudGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9
IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NThDMzhBMjBBQThGMjA0MDBCMTg3QTQgLyogRE9N
Q291bnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ291bnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1
OEMzOEEzMEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01SZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
OEMzOEE0MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVJlY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg1OEMzOEVGMEFBOEZERDEwMEIxODdBNCAvKiBSR0JDb2xvci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJHQkNvbG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODU4QzM5MTAwQUE4RkYwMDAwQjE4N0E0IC8qIENTU1N0eWxlU2hlZXQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDU1NTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJODU4QzM5MjYwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlU2hlZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERP
TUNTU1N0eWxlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NQ1NTU3R5bGVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5
MDlDRDMwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5MDlDRDQwQUNDN0E3RTAwREYwMUYx
IC8qIERPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTkwOUNENTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTSW1wb3J0UnVs
ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbXBv
cnRSdWxlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5MDlDRDYw
QUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU01lZGlhUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk4NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
UGFnZVJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Q1NTUGFnZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTkw
OUNEOTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlUnVsZUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBE
T01DU1NTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4
Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsK
KwkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNT
U1N0eWxlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNEMzBBQ0M3
QTdFMDBERjAxRjEgLyogRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1OTA5Q0Q0MEFDQzdBN0UwMERG
MDFGMSAvKiBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNENTBBQ0M3QTdFMDBERjAxRjEg
LyogRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNENjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
TWVkaWFSdWxlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODU5MDlDRDcwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU1BhZ2VSdWxlSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGgg
PSBET01DU1NQYWdlUnVsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NTkwOUNEOTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NTdHls
ZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU5MDlDREEwQUND
N0E3RTAwREYwMUYxIC8qIERPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1OTA5Q0RCMEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NV
bmtub3duUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NVbmtub3duUnVsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1OTA5RDI2MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NQcmltaXRpdmVWYWx1
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTA5RDI2MEFDQzdE
NTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUHJpbWl0aXZlVmFs
dWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU5MDlEMjgwQUNDN0Q1
NTAwREYwMUYxIC8qIERPTUNTU1ZhbHVlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUgLyogSFRNTEVtYmVkRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxFbWJlZEVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyog
RE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01LZXlib2FyZEV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODU5ODlEQzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTW91c2VFdmVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OTg5REM3MEFDQzhCQkQwMEEwQkM1
MSAvKiBET01NdXRhdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NT3ZlcmZsb3dFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01PdmVyZmxvd0V2
ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5ODlEQzkwQUND
OEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NVUlFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdoZWVsRXZlbnRJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTk4OURDNTBBQ0M4QkJEMDBB
MEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmll
ciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4OURDNjBBQ0M4QkJEMDBBMEJDNTEgLyog
RE9NTW91c2VFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVF
bmRpbmcgPSAwOyBwYXRoID0gRE9NTW91c2VFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
b2JqY3BwOyB9OworCQk4NTk4OURDNzBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NTXV0YXRpb25FdmVu
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NTXV0YXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NT3ZlcmZsb3dFdmVudEludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
T3ZlcmZsb3dFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4
OURDOTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NVUlFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVUlFdmVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEg
LyogRE9NV2hlZWxFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NV2hlZWxFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NSFRNTEhlYWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NTk5
MkVCMzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxIZWFkRWxlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU5OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERP
TUhUTUxIdG1sRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
SFRNTEh0bWxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1NSwx
MSArMTA3NTYsMTEgQEAKIAkJODVBQ0FCQUYwQTlDQUY4MDAwNjcxRTkwIC8qIERPTURvY3VtZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFGQTc0MTBBQUYyOTg0MDBFODQz
MDUgLyogRXZlbnRMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50TGlz
dGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFGQTc0MjBBQUYyOTg0
MDBFODQzMDUgLyogRXZlbnRUYXJnZXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVu
dFRhcmdldC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QUZBODIwMEFBRjUy
OEEwMEU4NDMwNSAvKiBET01FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVBRkE4MjEwQUFG
NTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERPTUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NUI0OThFQzBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NSdWxlSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1QUZBODIxMEFBRjUyOEEwMEU4
NDMwNSAvKiBET01FdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NUI0OThFQzBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUnVs
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0
aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUI0OThGMjBBREIzMzZB
MDA5MjVDQkIgLyogRE9NQ1NTVmFsdWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NQ1NTVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk4NUI0OThGNDBBREIzMzdBMDA5MjVDQkIgLyogRE9NRXZlbnRJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXZlbnRJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUI0OThGNDBBREIzMzdBMDA5MjVDQkIgLyogRE9N
RXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0g
MDsgcGF0aCA9IERPTUV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJ
CTg1QjQ5OEZBMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5vZGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUI0OThGRTBBREIzNDgxMDA5MjVDQkIgLyogRE9NU3R5bGVTaGVl
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHlsZVNo
ZWV0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVCQTRDRDUwQUE2
ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5vYmpjcHA7IH07CkBAIC0xMDc5NywxOSArMTA3OTgsMTkgQEAKIAkJODVD
NTZDQUMwQUE4OUY4RTAwRDk1NzU1IC8qIENTU0NoYXJzZXRSdWxlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ1NTQ2hhcnNldFJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDU1NVbmtub3duUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1Qzc4QTY3MEFCREUxQjQwMDQ0RkMxNiAvKiBET01FeGNlcHRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXhjZXB0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01VSUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBE
T01VSUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TVVJRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUJDMEFBRkI3
Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg1QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAv
KiBET01PdmVyZmxvd0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01PdmVyZmxvd0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUNG
MEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU92ZXJmbG93RXZlbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XaGVlbEV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAv
KiBET01XaGVlbEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTVdoZWVsRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1QzdG
NDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVUlFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5n
Lm9iamNwcDsgfTsKKwkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9
IERPTVVJRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUM3RjVCQzBBQUZC
N0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5vYmpjcHA7IH07CisJCTg1QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlv
bkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9
IDA7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4
Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsK
KwkJODVDN0Y1Q0UwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01PdmVyZmxvd0V2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUM3RjVDRjBBQUZCOEQ5MDA0MDE0
REQgLyogRE9NT3ZlcmZsb3dFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NT3ZlcmZsb3dFdmVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5vYmpjcHA7IH07CisJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVDN0Y1RTYwQUFG
QkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVdoZWVsRXZlbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50
aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FbnRpdHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVDQTk2QjcwQTk2MjFBNjAwNjkwQ0NGIC8qIERP
TUVudGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01F
bnRpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1Q0E5NzVBMEE5NjJFNTQw
MDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTURvY3VtZW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NUNBOTc1QjBBOTYyRTU0MDA2OTBDQ0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50VHlwZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2
ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVEMkFENjcwQUIxQTQw
QTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01FdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NUQzODlCMDBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQXR0ci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUQzODlCMTBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01BdHRyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkMxMDBBQTM0MUY2MDBBRDY0QzUgLyogRE9N
SFRNTEZvcm1FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NSFRNTEZvcm1FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OwpAQCAtMTA4NTIsOSArMTA4NTMsOSBAQAogCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyog
RE9NQ0RBVEFTZWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNEQVRBU2VjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1RTcxMTQwMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DaGFyYWN0ZXJEYXRhSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNoYXJhY3RlckRhdGFJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE0MTBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ29tbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01Db21tZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODVFNzExNDIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvdW50ZXJJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ291bnRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RTcxMTQzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
U1NSdWxlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NSdWxlTGlzdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1
RTcxMTQ0MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlRGVjbGFyYXRp
b25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUU3MTE0MjBBQzVE
NTM0MDA1MzI3MEYgLyogRE9NQ291bnRlckludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ291bnRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUU3MTE0MzBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ1NT
UnVsZUxpc3RJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5n
ID0gMDsgcGF0aCA9IERPTUNTU1J1bGVMaXN0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpj
cHA7IH07CisJCTg1RTcxMTQ0MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NTdHlsZURlY2xhcmF0
aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CiAJCTg1RTcxMTQ1MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Eb2N1bWVudEZyYWdt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3Vt
ZW50RnJhZ21lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3
MTE0NjBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE0NzBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1l
bnRUeXBlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURv
Y3VtZW50VHlwZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk0
OCw4ICsxMDk0OSw4IEBACiAJCTg1RjMyQUU5MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2Vs
ZWN0RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01IVE1MU2VsZWN0RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVG
NTZBNzgwQTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RjU2QTc5MEE5OENFMzcwMEFEQjYwQSAv
KiBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRG
MzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUtleWJvYXJk
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3
NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29k
ZS5sYW5nLm9iamNwcDsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50
TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1
bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5
RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0
aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTEzNiw4ICsxMTEzNyw4IEBA
CiAJCTkzM0ExNDJCMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMzQTE0MkMwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMzQTE0MkQwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTMzQTE0NzUwQjdEMUJBRjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01UZXh0RXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMzQTE0QTkwQjdEMUQwOTAwQTUzRkZEIC8qIERPTVRl
eHRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVRl
eHRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMzQTE0NzUwQjdEMUJB
RjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OworCQk5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVRl
eHRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRp
b25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTkzM0ExNEI2MEI3RDFENTIw
MEE1M0ZGRCAvKiBKU1RleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1RleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
M0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1RleHRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzNDN0E3NDFDMEZCQzQ0MDAzNEZCOTcgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNTcGVsbENoZWNrZXJTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNTQwLDkgKzEzNTQxLDkgQEAKIAkJQkNDMEU4NzMx
QkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1
cmVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJl
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M0Mzg3NzBFODg2Q0M3
MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Q
cm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDNTczMzQwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dyZXNzRXZl
bnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0M1NzMzMzBENjk1
QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5s
YW5nLm9iamNwcDsgfTsKKwkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNz
RXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAw
OyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJ
CUJDQzU3MzM3MEQ2OTVCRDcwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3Bl
Y2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJQkNDNUJERkUw
QzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NTdHlsZVNoZWV0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNDNUJERkYwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NTdHlsZVNoZWV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzhDRkNBMDk4NkNEMjQwMDE0MEJGMiAv
KiBDb2xvckRhdGEuZ3BlcmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENvbG9yRGF0YS5ncGVy
Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDc1LDYgKzE2NDc2LDEwMCBAQAog
CQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFBRkM2
RDI4MUQ1MTVENjcwMEE0MkZBMSAvKiBDU1MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTg1OEMzOEExMEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVy
LmggKi8sCisJCQkJODU4QzM4QTIwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIubW0gKi8s
CisJCQkJODVFNzExNDIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvdW50ZXJJbnRlcm5hbC5oICov
LAorCQkJCTg1MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5oICov
LAorCQkJCTg1MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5tbSAq
LywKKwkJCQk4NTkwOUNEMzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTQ2hhcnNldFJ1bGVJbnRl
cm5hbC5oICovLAorCQkJCTg1MDMyREM1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NGb250RmFj
ZVJ1bGUuaCAqLywKKwkJCQk4NTAzMkRDNjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZh
Y2VSdWxlLm1tICovLAorCQkJCTg1OTA5Q0Q0MEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NGb250
RmFjZVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREM3MEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NJbXBvcnRSdWxlLmggKi8sCisJCQkJODUwMzJEQzgwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU0ltcG9ydFJ1bGUubW0gKi8sCisJCQkJODU5MDlDRDUwQUNDN0E3RTAwREYwMUYxIC8qIERP
TUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREM5MEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLywKKwkJCQk4NTAzMkRDQTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTTWVkaWFSdWxlLm1tICovLAorCQkJCTg1OTA5Q0Q2MEFDQzdBN0UwMERGMDFGMSAv
KiBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyRENCMEFBOEM5QkUwMDdE
M0I3RCAvKiBET01DU1NQYWdlUnVsZS5oICovLAorCQkJCTg1MDMyRENDMEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NQYWdlUnVsZS5tbSAqLywKKwkJCQk4NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEg
LyogRE9NQ1NTUGFnZVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzODJBMEFBOEU0MDUwMEIx
ODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oICovLAorCQkJCTg1OEMzODJCMEFBOEU0MDUw
MEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSAqLywKKwkJCQk4NTkwOUQyNjBBQ0M3
RDU1MDBERjAxRjEgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oICovLAorCQkJCTg1
MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlLmggKi8sCisJCQkJODUwMzJEQ0Uw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gKi8sCisJCQkJODVCNDk4RUMwQURCMzJG
QjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyRENGMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5oICovLAorCQkJCTg1MDMyREQwMEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5tbSAqLywKKwkJCQk4NUU3MTE0MzBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREQxMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggKi8sCisJCQkJODUwMzJERDIw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0gKi8sCisJCQkJODVF
NzExNDQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5o
ICovLAorCQkJCTg1MDMyREQzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCAq
LywKKwkJCQk4NTAzMkRENDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLm1tICov
LAorCQkJCTg1OTA5Q0Q5MEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NTdHlsZVJ1bGVJbnRlcm5h
bC5oICovLAorCQkJCTg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBET01DU1NTdHlsZVNoZWV0
LmggKi8sCisJCQkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQu
bW0gKi8sCisJCQkJODU5MDlDREEwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU1N0eWxlU2hlZXRJ
bnRlcm5hbC5oICovLAorCQkJCTg1MDMyREQ1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtu
b3duUnVsZS5oICovLAorCQkJCTg1MDMyREQ2MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtu
b3duUnVsZS5tbSAqLywKKwkJCQk4NTkwOUNEQjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTVW5r
bm93blJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBE
T01DU1NWYWx1ZS5oICovLAorCQkJCTg1OEMzODFCMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NW
YWx1ZS5tbSAqLywKKwkJCQk4NUI0OThGMjBBREIzMzZBMDA5MjVDQkIgLyogRE9NQ1NTVmFsdWVJ
bnRlcm5hbC5oICovLAorCQkJCTg1OEMzODNBMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1
ZUxpc3QuaCAqLywKKwkJCQk4NThDMzgzQjBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVM
aXN0Lm1tICovLAorCQkJCTg1OTA5RDI4MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NWYWx1ZUxp
c3RJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzOEEzMEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0
LmggKi8sCisJCQkJODU4QzM4QTQwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QubW0gKi8sCisJ
CQkJODVFNzExODcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTVJlY3RJbnRlcm5hbC5oICovLAorCQkJ
CTg1NUQzNTg5MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oICovLAorCQkJCUJDQUVG
Q0FEMTAxNkNFNEEwMDQwRDM0RSAvKiBET01SR0JDb2xvci5tbSAqLywKKwkJCQlCQ0QwRkM0RTBE
QkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSBDU1M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkxQUZDNkQyOTFE
NTE1RkM5MDBBNDJGQTEgLyogRXZlbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk4NUFGQTgyMDBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQuaCAq
LywKKwkJCQk4NUFGQTgyMTBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQubW0gKi8sCisJCQkJ
ODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKKwkJCQk4
NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5oICovLAorCQkJCTg1
NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICovLAorCQkJCTg1RkYz
MTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8sCisJCQkJODVGRjMx
NTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8sCisJCQkJODU5ODlE
QzUwQUNDOEJCRDAwQTBCQzUxIC8qIERPTUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oICovLAorCQkJ
CTg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi8sCisJCQkJODU3
RTBCMjQwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gKi8sCisJCQkJODU5ODlE
QzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTg1
QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8sCisJCQkJODVD
N0Y1QkQwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0gKi8sCisJCQkJODU5
ODlEQzcwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oICovLAor
CQkJCTg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi8sCisJ
CQkJODVDN0Y1Q0YwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi8sCisJ
CQkJODU5ODlEQzgwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5o
ICovLAorCQkJCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lmgg
Ki8sCisJCQkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0g
Ki8sCisJCQkJQkNDNTczMzcwRDY5NUJENzAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnRJbnRl
cm5hbC5oICovLAorCQkJCTkzM0ExNDc1MEI3RDFCQUYwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQu
aCAqLywKKwkJCQk5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICov
LAorCQkJCTQ0MjlBQjA3MENCODRGODEwMDc2NDdDNSAvKiBET01UZXh0RXZlbnRJbnRlcm5hbC5o
ICovLAorCQkJCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8sCisJ
CQkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0gKi8sCisJCQkJODU5
ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTg1
QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCisJCQkJODVDN0Y1
RTYwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCisJCQkJODU5ODlEQ0Ew
QUNDOEJCRDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBFdmVudHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxQzVG
QUVDQTBEQ0ZEOEM5MDBENThGNzggLyogSW5zcGVjdG9yICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE4NTAzLDgwICsxODU5OCwxMCBAQAogCQkJbmFtZSA9
IENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk4NTk2N0RDQTBBQThC
RjBGMDA1RkVERUUgLyogQ1NTICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCQk4NThDMzhBMTBBQThGMjA0MDBCMTg3QTQgLyogRE9NQ291bnRlci5oICovLAot
CQkJCTg1OEMzOEEyMEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLm1tICovLAotCQkJCTg1
MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5oICovLAotCQkJCTg1
MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5tbSAqLywKLQkJCQk4
NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLmggKi8sCi0JCQkJ
ODUwMzJEQzYwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5tbSAqLywKLQkJ
CQk4NTAzMkRDNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5oICovLAotCQkJ
CTg1MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLm1tICovLAotCQkJ
CTg1MDMyREM5MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLywKLQkJCQk4
NTAzMkRDQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLm1tICovLAotCQkJCTg1
MDMyRENCMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5oICovLAotCQkJCTg1MDMy
RENDMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5tbSAqLywKLQkJCQk4NThDMzgy
QTBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLywKLQkJCQk4NThD
MzgyQjBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0gKi8sCi0JCQkJ
ODUwMzJEQ0QwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCAqLywKLQkJCQk4NTAzMkRD
RTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5tbSAqLywKLQkJCQk4NTAzMkRDRjBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLywKLQkJCQk4NTAzMkREMDBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gKi8sCi0JCQkJODUwMzJERDEwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLywKLQkJCQk4NTAzMkREMjBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbSAqLywKLQkJCQk4NTAzMkRE
MzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggKi8sCi0JCQkJODUwMzJERDQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLywKLQkJCQk4NThDMzkyNjBB
QThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5oICovLAotCQkJCTg1OEMzOTI3MEFB
OEZGOUQwMEIxODdBNCAvKiBET01DU1NTdHlsZVNoZWV0Lm1tICovLAotCQkJCTg1MDMyREQ1MEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3duUnVsZS5oICovLAotCQkJCTg1MDMyREQ2MEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3duUnVsZS5tbSAqLywKLQkJCQk4NThDMzgxQTBB
QThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLywKLQkJCQk4NThDMzgxQjBBQThFMjk2
MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi8sCi0JCQkJODU4QzM4M0EwQUE4RUQ4MjAwQjE4
N0E0IC8qIERPTUNTU1ZhbHVlTGlzdC5oICovLAotCQkJCTg1OEMzODNCMEFBOEVEODIwMEIxODdB
NCAvKiBET01DU1NWYWx1ZUxpc3QubW0gKi8sCi0JCQkJODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0
IC8qIERPTVJlY3QuaCAqLywKLQkJCQk4NThDMzhBNDBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVj
dC5tbSAqLywKLQkJCQk4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29sb3IuaCAq
LywKLQkJCQlCQ0FFRkNBRDEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gKi8sCi0J
CQkpOwotCQkJbmFtZSA9IENTUzsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CTg1QUZBN0FCMEFBRjNCQjAwMEU4NDMwNSAvKiBFdmVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTg1QUZBODIwMEFBRjUyOEEwMEU4NDMwNSAvKiBE
T01FdmVudC5oICovLAotCQkJCTg1QUZBODIxMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5t
bSAqLywKLQkJCQk4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
ICovLAotCQkJCTg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICov
LAotCQkJCTg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8s
Ci0JCQkJODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8s
Ci0JCQkJODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLywKLQkJ
CQk4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLywKLQkJCQk4
NUM3RjVCQzBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oICovLAotCQkJCTg1
QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50Lm1tICovLAotCQkJCTg1
QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi8sCi0JCQkJODVD
N0Y1Q0YwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi8sCi0JCQkJQkND
NTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLywKLQkJCQlCQ0M1
NzMzNDBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSAqLywKLQkJCQk5MzNB
MTQ3NTBCN0QxQkFGMDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50LmggKi8sCi0JCQkJOTMzQTE0QTkw
QjdEMUQwOTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSAqLywKLQkJCQk4NUM3RjQ4RjBBQUY3
OURDMDA0MDE0REQgLyogRE9NVUlFdmVudC5oICovLAotCQkJCTg1QzdGNDkwMEFBRjc5REMwMDQw
MTRERCAvKiBET01VSUV2ZW50Lm1tICovLAotCQkJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAv
KiBET01XaGVlbEV2ZW50LmggKi8sCi0JCQkJODVDN0Y1RTYwQUFGQkFGQjAwNDAxNEREIC8qIERP
TVdoZWVsRXZlbnQubW0gKi8sCi0JCQkpOwotCQkJbmFtZSA9IEV2ZW50czsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTg1OTY3RDlGMEFBOEJCNTkwMDVGRURFRSAvKiBDb3JlICovLAotCQkJCTg1OTY3RENBMEFB
OEJGMEYwMDVGRURFRSAvKiBDU1MgKi8sCi0JCQkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1IC8q
IEV2ZW50cyAqLywKIAkJCQk4NUU3MTEzRDBBQzVENEExMDA1MzI3MEYgLyogSW50ZXJuYWwgKi8s
CiAJCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOwpAQCAtMTg1OTAsMjEgKzE4NjE1
LDYgQEAKIAkJCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ0RBVEFTZWN0aW9uSW50
ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE0MDBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ2hhcmFjdGVy
RGF0YUludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNv
bW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTQyMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
b3VudGVySW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNEMzBBQ0M3QTdFMDBERjAxRjEgLyogRE9N
Q1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q0MEFDQzdBN0UwMERGMDFG
MSAvKiBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q1MEFDQzdB
N0UwMERGMDFGMSAvKiBET01DU1NJbXBvcnRSdWxlSW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNE
NjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTTWVkaWFSdWxlSW50ZXJuYWwuaCAqLywKLQkJCQk4
NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTUGFnZVJ1bGVJbnRlcm5hbC5oICovLAot
CQkJCTg1OTA5RDI2MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVy
bmFsLmggKi8sCi0JCQkJODVCNDk4RUMwQURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRl
cm5hbC5oICovLAotCQkJCTg1RTcxMTQzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NSdWxlTGlz
dEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNDQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNTU1N0
eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q5MEFDQzdBN0UwMERGMDFG
MSAvKiBET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0RBMEFDQzdBN0Uw
MERGMDFGMSAvKiBET01DU1NTdHlsZVNoZWV0SW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNEQjBB
Q0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1
QjQ5OEYyMEFEQjMzNkEwMDkyNUNCQiAvKiBET01DU1NWYWx1ZUludGVybmFsLmggKi8sCi0JCQkJ
ODU5MDlEMjgwQUNDN0Q1NTAwREYwMUYxIC8qIERPTUNTU1ZhbHVlTGlzdEludGVybmFsLmggKi8s
CiAJCQkJODVFNzExNDUwQUM1RDUzNDAwNTMyNzBGIC8qIERPTURvY3VtZW50RnJhZ21lbnRJbnRl
cm5hbC5oICovLAogCQkJCTg1RTcxMTQ2MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Eb2N1bWVudElu
dGVybmFsLmggKi8sCiAJCQkJODVFNzExNDcwQUM1RDUzNDAwNTMyNzBGIC8qIERPTURvY3VtZW50
VHlwZUludGVybmFsLmggKi8sCkBAIC0xODYxMiwyMyArMTg2MjIsMTIgQEAKIAkJCQk4NUU3MTE0
OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzEx
NEEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eUludGVybmFsLmggKi8sCiAJCQkJODVFNzEx
NEIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eVJlZmVyZW5jZUludGVybmFsLmggKi8sCi0J
CQkJODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKLQkJ
CQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgg
Ki8sCi0JCQkJODU5ODlEQzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5h
bC5oICovLAotCQkJCTg1OTg5REM3MEFDQzhCQkQwMEEwQkM1MSAvKiBET01NdXRhdGlvbkV2ZW50
SW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE4MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NTmFtZWRO
b2RlTWFwSW50ZXJuYWwuaCAqLywKIAkJCQk4NUI0OThGQTBBREIzNDAyMDA5MjVDQkIgLyogRE9N
Tm9kZUludGVybmFsLmggKi8sCiAJCQkJODVFNzExODQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5v
ZGVMaXN0SW50ZXJuYWwuaCAqLywKLQkJCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9N
T3ZlcmZsb3dFdmVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExODYwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbkludGVybmFsLmggKi8sCi0JCQkJQkNDNTczMzcw
RDY5NUJENzAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnRJbnRlcm5hbC5oICovLAotCQkJCTg1
RTcxMTg3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01SZWN0SW50ZXJuYWwuaCAqLywKLQkJCQlCQ0Qw
RkM0RTBEQkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oICovLAogCQkJCTBG
RjUwMjYyMTAyQkE5MkIwMDY2RjM5QSAvKiBET01TdHlsZU1lZGlhSW50ZXJuYWwuaCAqLywKLQkJ
CQk0NDI5QUIwNzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLywK
IAkJCQk4NUU3MTE4QTBBQzVENTM1MDA1MzI3MEYgLyogRE9NVGV4dEludGVybmFsLmggKi8sCi0J
CQkJODU5ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovLAot
CQkJCTg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gSW50ZXJuYWw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMjIyMjEsNiArMjIyMjAsOCBAQAogCQlCQzFBMzc5NDA5N0M2RkM0MDAxOUYzRDggLyog
b2JqYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUFG
QzZEMjkxRDUxNUZDOTAwQTQyRkExIC8qIEV2ZW50cyAqLywKKwkJCQkxQUZDNkQyODFENTE1RDY3
MDBBNDJGQTEgLyogQ1NTICovLAogCQkJCTFBQ0YzRkM1MUQ1MDEzQjAwMDYzQUVGQiAvKiBSYW5n
ZXMgKi8sCiAJCQkJMUFDRjNGQzQxRDUwMTNBOTAwNjNBRUZCIC8qIFRyYXZlcnNhbCAqLywKIAkJ
CQkxQUNGM0ZDMzFENTAxM0EwMDA2M0FFRkIgLyogU3R5bGUgU2hlZXRzICovLApAQCAtMjYzMTYs
NiArMjYzMTcsNyBAQAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOUI2RTEwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFGQzZEMkExRDUxNjA5
ODAwQTQyRkExIC8qIERPTVRleHRFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVCRTEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2ZXJOb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTZGRDQ4RTBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGlu
YXRlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU0NoYXJzZXRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0NoYXJzZXRSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBiODUyZDhhMjc1OWU2OWIzZDRlZDlj
NDkxMjc4ZTE2Y2M1OTAxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NQ1NTQ2hhcnNldFJ1bGUuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3Jl
L0RPTUNTU1J1bGUuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxB
QkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01DU1NDaGFyc2V0UnVs
ZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICplbmNv
ZGluZzsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTQ2hhcnNldFJ1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0No
YXJzZXRSdWxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMGE0MDFiNmM2OGRlMGFkMTEyZTEzMTZjMzEzMjlk
M2QyNWE5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0NoYXJzZXRSdWxlLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NDaGFyc2V0
UnVsZS5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2Rl
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJV
UkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9H
ZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU0NoYXJzZXRS
dWxlKj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4oX2ludGVybmFsKSkKKwor
QGltcGxlbWVudGF0aW9uIERPTUNTU0NoYXJzZXRSdWxlCisKKy0gKE5TU3RyaW5nICopZW5jb2Rp
bmcKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmVuY29kaW5nKCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTQ2hhcnNldFJ1
bGUqIGNvcmUoRE9NQ1NTQ2hhcnNldFJ1bGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBw
ZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU0NoYXJzZXRSdWxlKj4od3JhcHBlci0+
X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU0NoYXJzZXRSdWxlICpraXQoV2ViQ29yZTo6Q1NT
Q2hhcnNldFJ1bGUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1Jv
dW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU0NoYXJzZXRSdWxlKj4oa2l0
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NDaGFyc2V0UnVsZUludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjVkMmVhMzNiMTdhYzE4ZTk5MmMxYTQ1NzFlN2M4ZjYzY2MwMGQxNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTQ2hh
cnNldFJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTQ2hh
cnNldFJ1bGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTQ2hhcnNldFJ1bGU7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU0NoYXJzZXRSdWxlKiBjb3JlKERPTUNT
U0NoYXJzZXRSdWxlICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTQ2hhcnNldFJ1bGUgKmtpdChX
ZWJDb3JlOjpDU1NDaGFyc2V0UnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTRm9udEZhY2VSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM4YzM0Njk1ZGNlODgwM2Rh
YTI5MTBlMjA2OWI5ZWYwNDU5NDNmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NQ1NTRm9udEZhY2VSdWxlLmgKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01DU1NSdWxlLmg+CisKK0BjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOwor
CitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBET01DU1NGb250RmFjZVJ1bGUgOiBET01DU1NSdWxlCitAcHJvcGVydHkgKHJlYWRvbmx5
LCBzdHJvbmcpIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKnN0eWxlOworQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMGFhYzA1N2JjMzQzM2I0NWMzZjUzZTYwOTJlNGMwNGIyZDI2Yzg1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUu
bW0KQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01DU1NGb250RmFj
ZVJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbXBvcnQg
IkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgor
I2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01O
b2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlN0eWxlUHJvcGVydGllcy5oIgorI2lt
cG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNv
cmU6OkNTU0ZvbnRGYWNlUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NGb250RmFjZVJ1bGUKKworLSAo
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKXN0eWxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+c3R5
bGUoKSkpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSogY29yZShET01D
U1NGb250RmFjZVJ1bGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSo+KHdyYXBwZXItPl9pbnRlcm5hbCkg
OiAwOworfQorCitET01DU1NGb250RmFjZVJ1bGUgKmtpdChXZWJDb3JlOjpDU1NGb250RmFjZVJ1
bGUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU0ZvbnRGYWNlUnVsZSo+KGtpdChzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTQyODg5NDkxMDVlMmQ2NjkwMGRmZjk5MTU3NGM5N2ExMGI1MGQ3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTRm9udEZhY2VS
dWxlSW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU0ZvbnRGYWNl
UnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NGb250RmFjZVJ1bGU7Cit9
CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSogY29yZShET01DU1NG
b250RmFjZVJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NGb250RmFjZVJ1bGUgKmtpdChX
ZWJDb3JlOjpDU1NGb250RmFjZVJ1bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1NJbXBvcnRSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY3ZjAxNzY3YjgwMDk2YjY1MTNi
ZDhlMWU3YjZiMjU3ZDY3Mjg2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NQ1NTUnVsZS5oPgorCitAY2xhc3MgRE9NQ1NTU3R5bGVTaGVldDsKK0BjbGFzcyBET01N
ZWRpYUxpc3Q7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFD
KDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUNTU0ltcG9ydFJ1bGUgOiBET01D
U1NSdWxlCitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqaHJlZjsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NTWVkaWFMaXN0ICptZWRpYTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHksIHN0cm9uZykgRE9NQ1NTU3R5bGVTaGVldCAqc3R5bGVTaGVldDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMWE5ZmQzYTA3OWJlNTFiZmE3M2FjNjIzNWRiYjA4YzczNzc5Y2RhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NJbXBvcnRSdWxl
Lm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ1NTSW1wb3J0
UnVsZUludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbXBvcnQgIkNT
U1N0eWxlU2hlZXQuaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NQ1NTU3R5bGVTaGVldEludGVybmFsLmgiCisjaW1wb3J0ICJET01NZWRpYUxpc3RJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJNZWRp
YUxpc3QuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBv
cnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKwor
I2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGUqPihyZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRp
b24gRE9NQ1NTSW1wb3J0UnVsZQorCistIChOU1N0cmluZyAqKWhyZWYKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhyZWYoKTsK
K30KKworLSAoRE9NTWVkaWFMaXN0ICopbWVkaWEKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5tZWRp
YSgpKSk7Cit9CisKKy0gKERPTUNTU1N0eWxlU2hlZXQgKilzdHlsZVNoZWV0Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpn
ZXRQdHIoSU1QTC0+c3R5bGVTaGVldCgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTSW1w
b3J0UnVsZSogY29yZShET01DU1NJbXBvcnRSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NJbXBvcnRSdWxlKj4od3JhcHBl
ci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU0ltcG9ydFJ1bGUgKmtpdChXZWJDb3JlOjpD
U1NJbXBvcnRSdWxlKiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NJbXBvcnRSdWxlKj4oa2l0
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcwMjhhMTc3YmJmYzQxNTlmNmQ5ODkzZjFlYTFiMWM5NDY5MDdiZTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ltcG9y
dFJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTSW1wb3J0
UnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NJbXBvcnRSdWxlOworfQor
CitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpDU1NJbXBvcnRSdWxlKiBjb3JlKERPTUNTU0ltcG9y
dFJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NJbXBvcnRSdWxlICpraXQoV2ViQ29yZTo6
Q1NTSW1wb3J0UnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NNZWRpYVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
TWVkaWFSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ4NDUzYTIzZjM4YTE5MjU0ZmRkMjFiMzhjMGIxZGVl
ZDRiZjQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTTWVkaWFSdWxlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01DU1NSdWxl
Lmg+CisKK0BjbGFzcyBET01DU1NSdWxlTGlzdDsKK0BjbGFzcyBET01NZWRpYUxpc3Q7CitAY2xh
c3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIERPTUNTU01lZGlhUnVsZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0
eSAocmVhZG9ubHksIHN0cm9uZykgRE9NTWVkaWFMaXN0ICptZWRpYTsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIHN0cm9uZykgRE9NQ1NTUnVsZUxpc3QgKmNzc1J1bGVzOworCistICh1bnNpZ25lZClp
bnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9B
VkFJTEFCTEVfTUFDKDEwXzUpOworLSAodm9pZClkZWxldGVSdWxlOih1bnNpZ25lZClpbmRleDsK
K0BlbmQKKworQGludGVyZmFjZSBET01DU1NNZWRpYVJ1bGUgKERPTUNTU01lZGlhUnVsZURlcHJl
Y2F0ZWQpCistICh1bnNpZ25lZClpbnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgOih1bnNpZ25l
ZClpbmRleCBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU01lZGlhUnVsZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVkaWFSdWxlLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5MmIxM2NiMTQxZGYyODZlZjVjNzI0MDVjZjI4YmM4MTU3YTFmYjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU01lZGlhUnVsZS5tbQpAQCAt
MCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU01lZGlhUnVsZUludGVy
bmFsLmgiCisKKyNpbXBvcnQgIkNTU01lZGlhUnVsZS5oIgorI2ltcG9ydCAiQ1NTUnVsZUxpc3Qu
aCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUxp
c3RJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTWVkaWFMaXN0SW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBv
cnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiTWVkaWFMaXN0LmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRP
YmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NNZWRpYVJ1bGUqPihyZWludGVycHJldF9jYXN0PFdlYkNv
cmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NQ1NTTWVkaWFS
dWxlCisKKy0gKERPTU1lZGlhTGlzdCAqKW1lZGlhCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bWVk
aWEoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAqKWNzc1J1bGVzCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQ
dHIoSU1QTC0+Y3NzUnVsZXMoKSkpOworfQorCistICh1bnNpZ25lZClpbnNlcnRSdWxlOihOU1N0
cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVj
KTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5nICopcnVsZSA6KHVuc2lnbmVk
KWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElN
UEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9N
RXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHZvaWQpZGVsZXRlUnVsZToo
dW5zaWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+ZGVsZXRl
UnVsZShpbmRleCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisK
K0BlbmQKKworV2ViQ29yZTo6Q1NTTWVkaWFSdWxlKiBjb3JlKERPTUNTU01lZGlhUnVsZSAqd3Jh
cHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
Q1NTTWVkaWFSdWxlKj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU01lZGlh
UnVsZSAqa2l0KFdlYkNvcmU6OkNTU01lZGlhUnVsZSogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
Q1NTTWVkaWFSdWxlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkp
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVk
aWFSdWxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVk
aWFSdWxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzRkZDU0YjA2MzU3YmFlNWQwZDhhNWVhNzIw
NzA5NTBjNDkxZmM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NQ1NTTWVkaWFSdWxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENTU01l
ZGlhUnVsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTTWVkaWFSdWxlKiBjb3Jl
KERPTUNTU01lZGlhUnVsZSAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU01lZGlhUnVsZSAqa2l0
KFdlYkNvcmU6OkNTU01lZGlhUnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NQYWdlUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NmQ5ZTA5ZjY0MmFkNzk1ZjkxYmNiZmU3
ZGU4NWQ2MWIwYTIzMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1BhZ2VSdWxlLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01D
U1NSdWxlLmg+CisKK0BjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOworQGNsYXNzIE5TU3Ry
aW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBET01DU1NQYWdlUnVsZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0eSAoY29weSkg
TlNTdHJpbmcgKnNlbGVjdG9yVGV4dDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1BhZ2VSdWxlLm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDcyOWZmODQ4NGQ2Y2Zm
YzNlZTFhZmQ2YjQyMDY0MDE1Y2NjODQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5tbQpAQCAtMCwwICsxLDc1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU1BhZ2VSdWxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCAi
Q1NTUGFnZVJ1bGUuaCIKKyNpbXBvcnQgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbXBvcnQg
IkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbklu
dGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlv
bkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQg
IlN0eWxlUHJvcGVydGllcy5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVS
TC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dl
dFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUGFnZVJ1bGUq
PihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1w
bGVtZW50YXRpb24gRE9NQ1NTUGFnZVJ1bGUKKworLSAoTlNTdHJpbmcgKilzZWxlY3RvclRleHQK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPnNlbGVjdG9yVGV4dCgpOworfQorCistICh2b2lkKXNldFNlbGVjdG9yVGV4dDooTlNT
dHJpbmcgKiluZXdTZWxlY3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0b3JUZXh0KG5ld1NlbGVjdG9yVGV4dCk7
Cit9CisKKy0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPnN0eWxlKCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpDU1NQYWdlUnVsZSogY29y
ZShET01DU1NQYWdlUnVsZSAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUGFnZVJ1bGUqPih3cmFwcGVyLT5faW50ZXJuYWwpIDog
MDsKK30KKworRE9NQ1NTUGFnZVJ1bGUgKmtpdChXZWJDb3JlOjpDU1NQYWdlUnVsZSogdmFsdWUp
Cit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTUGFnZVJ1bGUqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Q1NTUnVsZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01DU1NQYWdlUnVsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1BhZ2VSdWxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjZhZmY5YjM2OTBl
MzQ1YmViYmM0OTFhYzQ1NDg2YmJlYTYwM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZUludGVybmFsLmgKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01DU1NQYWdlUnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDU1NQYWdlUnVsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTUGFn
ZVJ1bGUqIGNvcmUoRE9NQ1NTUGFnZVJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NQYWdl
UnVsZSAqa2l0KFdlYkNvcmU6OkNTU1BhZ2VSdWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc1ODY4
MGNkYWU4YWQxN2QxYzM5NmE2ZGJkNWE1MDEwODA3NzgyMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMCww
ICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK0BjbGFzcyBET01Db3VudGVy
OworQGNsYXNzIERPTVJHQkNvbG9yOworQGNsYXNzIERPTVJlY3Q7CitAY2xhc3MgTlNTdHJpbmc7
CisKK2VudW0geworICAgIERPTV9DU1NfVU5LTk9XTiA9IDAsCisgICAgRE9NX0NTU19OVU1CRVIg
PSAxLAorICAgIERPTV9DU1NfUEVSQ0VOVEFHRSA9IDIsCisgICAgRE9NX0NTU19FTVMgPSAzLAor
ICAgIERPTV9DU1NfRVhTID0gNCwKKyAgICBET01fQ1NTX1BYID0gNSwKKyAgICBET01fQ1NTX0NN
ID0gNiwKKyAgICBET01fQ1NTX01NID0gNywKKyAgICBET01fQ1NTX0lOID0gOCwKKyAgICBET01f
Q1NTX1BUID0gOSwKKyAgICBET01fQ1NTX1BDID0gMTAsCisgICAgRE9NX0NTU19ERUcgPSAxMSwK
KyAgICBET01fQ1NTX1JBRCA9IDEyLAorICAgIERPTV9DU1NfR1JBRCA9IDEzLAorICAgIERPTV9D
U1NfTVMgPSAxNCwKKyAgICBET01fQ1NTX1MgPSAxNSwKKyAgICBET01fQ1NTX0haID0gMTYsCisg
ICAgRE9NX0NTU19LSFogPSAxNywKKyAgICBET01fQ1NTX0RJTUVOU0lPTiA9IDE4LAorICAgIERP
TV9DU1NfU1RSSU5HID0gMTksCisgICAgRE9NX0NTU19VUkkgPSAyMCwKKyAgICBET01fQ1NTX0lE
RU5UID0gMjEsCisgICAgRE9NX0NTU19BVFRSID0gMjIsCisgICAgRE9NX0NTU19DT1VOVEVSID0g
MjMsCisgICAgRE9NX0NTU19SRUNUID0gMjQsCisgICAgRE9NX0NTU19SR0JDT0xPUiA9IDI1LAor
ICAgIERPTV9DU1NfVlcgPSAyNiwKKyAgICBET01fQ1NTX1ZIID0gMjcsCisgICAgRE9NX0NTU19W
TUlOID0gMjgsCisgICAgRE9NX0NTU19WTUFYID0gMjkKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxF
X01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTUHJpbWl0aXZlVmFsdWUgOiBET01DU1NWYWx1ZQorQHBy
b3BlcnR5IChyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKKworLSAodm9p
ZClzZXRGbG9hdFZhbHVlOih1bnNpZ25lZCBzaG9ydCl1bml0VHlwZSBmbG9hdFZhbHVlOihmbG9h
dClmbG9hdFZhbHVlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworLSAoZmxvYXQpZ2V0Rmxv
YXRWYWx1ZToodW5zaWduZWQgc2hvcnQpdW5pdFR5cGU7CistICh2b2lkKXNldFN0cmluZ1ZhbHVl
Oih1bnNpZ25lZCBzaG9ydClzdHJpbmdUeXBlIHN0cmluZ1ZhbHVlOihOU1N0cmluZyAqKXN0cmlu
Z1ZhbHVlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworLSAoTlNTdHJpbmcgKilnZXRTdHJp
bmdWYWx1ZTsKKy0gKERPTUNvdW50ZXIgKilnZXRDb3VudGVyVmFsdWU7CistIChET01SZWN0ICop
Z2V0UmVjdFZhbHVlOworLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlOworQGVuZAor
CitAaW50ZXJmYWNlIERPTUNTU1ByaW1pdGl2ZVZhbHVlIChET01DU1NQcmltaXRpdmVWYWx1ZURl
cHJlY2F0ZWQpCistICh2b2lkKXNldEZsb2F0VmFsdWU6KHVuc2lnbmVkIHNob3J0KXVuaXRUeXBl
IDooZmxvYXQpZmxvYXRWYWx1ZSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7Cist
ICh2b2lkKXNldFN0cmluZ1ZhbHVlOih1bnNpZ25lZCBzaG9ydClzdHJpbmdUeXBlIDooTlNTdHJp
bmcgKilzdHJpbmdWYWx1ZSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2
ZVZhbHVlLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQcmltaXRpdmVW
YWx1ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYjg0MmRiYWU3ZjZjNDgxMzdlM2IwNTNhOTIwYTc0MmJhMTkw
YTdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
U1NQcmltaXRpdmVWYWx1ZS5tbQpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU1ByaW1p
dGl2ZVZhbHVlLmgiCisjaW1wb3J0ICJDb3VudGVyLmgiCisjaW1wb3J0ICJET01DU1NWYWx1ZUlu
dGVybmFsLmgiCisjaW1wb3J0ICJET01Db3VudGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NUkdCQ29sb3JJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NUmVjdEludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9y
dCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJSR0JDb2xvci5oIgorI2ltcG9y
dCAiUmVjdC5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2lt
cG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgor
CisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqPihy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFsKSkKKworQGltcGxl
bWVudGF0aW9uIERPTUNTU1ByaW1pdGl2ZVZhbHVlCisKKy0gKHVuc2lnbmVkIHNob3J0KXByaW1p
dGl2ZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnByaW1pdGl2ZVR5cGUoKTsKK30KKworLSAodm9pZClzZXRGbG9hdFZh
bHVlOih1bnNpZ25lZCBzaG9ydCl1bml0VHlwZSBmbG9hdFZhbHVlOihmbG9hdClmbG9hdFZhbHVl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldEZsb2F0VmFsdWUodW5pdFR5
cGUsIGZsb2F0VmFsdWUsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
fQorCistICh2b2lkKXNldEZsb2F0VmFsdWU6KHVuc2lnbmVkIHNob3J0KXVuaXRUeXBlIDooZmxv
YXQpZmxvYXRWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRGbG9h
dFZhbHVlKHVuaXRUeXBlLCBmbG9hdFZhbHVlLCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRP
TUVycm9yKGVjKTsKK30KKworLSAoZmxvYXQpZ2V0RmxvYXRWYWx1ZToodW5zaWduZWQgc2hvcnQp
dW5pdFR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZmxvYXQgcmVzdWx0ID0gSU1Q
TC0+Z2V0RmxvYXRWYWx1ZSh1bml0VHlwZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAodm9pZClzZXRTdHJpbmdWYWx1
ZToodW5zaWduZWQgc2hvcnQpc3RyaW5nVHlwZSBzdHJpbmdWYWx1ZTooTlNTdHJpbmcgKilzdHJp
bmdWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRTdHJpbmdWYWx1
ZShzdHJpbmdUeXBlLCBzdHJpbmdWYWx1ZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7Cit9CisKKy0gKHZvaWQpc2V0U3RyaW5nVmFsdWU6KHVuc2lnbmVkIHNob3J0KXN0
cmluZ1R5cGUgOihOU1N0cmluZyAqKXN0cmluZ1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIElNUEwtPnNldFN0cmluZ1ZhbHVlKHN0cmluZ1R5cGUsIHN0cmluZ1ZhbHVlLCBlYyk7
CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKworLSAoTlNTdHJpbmcgKiln
ZXRTdHJpbmdWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBOU1N0cmluZyAqcmVz
dWx0ID0gSU1QTC0+Z2V0U3RyaW5nVmFsdWUoZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAoRE9NQ291bnRlciAqKWdldENv
dW50ZXJWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01Db3VudGVyICpyZXN1
bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0Q291bnRlclZhbHVlKGVjKSkpOworICAgIFdl
YkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAo
RE9NUmVjdCAqKWdldFJlY3RWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01S
ZWN0ICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0UmVjdFZhbHVlKGVjKSkpOwor
ICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIERPTVJHQkNvbG9yICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0
UkdCQ29sb3JWYWx1ZShlYykpKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWUqIGNvcmUoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdy
YXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKj4od3Jh
cHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9s
YXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU1ByaW1p
dGl2ZVZhbHVlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1p
dGl2ZVZhbHVlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
UHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NGEwNmJkZmFjMDJhNTFlOWMx
MjdiNTZlOTk4NjYyN2I5OTI4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZSogY29yZShET01DU1NQcmltaXRpdmVWYWx1ZSAqKTsKK1dF
QkNPUkVfRVhQT1JUIERPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWRlYTI3NmVjMjNiMTE0NTVmMTk2YTJjYWEyMjM5YmQ1OGM5YWRjMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZS5oCkBA
IC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01DU1NS
dWxlOworQGNsYXNzIERPTUNTU1N0eWxlU2hlZXQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK2VudW0g
eworICAgIERPTV9VTktOT1dOX1JVTEUgPSAwLAorICAgIERPTV9TVFlMRV9SVUxFID0gMSwKKyAg
ICBET01fQ0hBUlNFVF9SVUxFID0gMiwKKyAgICBET01fSU1QT1JUX1JVTEUgPSAzLAorICAgIERP
TV9NRURJQV9SVUxFID0gNCwKKyAgICBET01fRk9OVF9GQUNFX1JVTEUgPSA1LAorICAgIERPTV9Q
QUdFX1JVTEUgPSA2LAorICAgIERPTV9LRVlGUkFNRVNfUlVMRSA9IDcsCisgICAgRE9NX0tFWUZS
QU1FX1JVTEUgPSA4LAorICAgIERPTV9TVVBQT1JUU19SVUxFID0gMTIsCisgICAgRE9NX1dFQktJ
VF9SRUdJT05fUlVMRSA9IDE2LAorICAgIERPTV9XRUJLSVRfS0VZRlJBTUVTX1JVTEUgPSA3LAor
ICAgIERPTV9XRUJLSVRfS0VZRlJBTUVfUlVMRSA9IDgKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxF
X01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTUnVsZSA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFk
b25seSkgdW5zaWduZWQgc2hvcnQgdHlwZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNz
c1RleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1N0eWxlU2hlZXQgKnBh
cmVudFN0eWxlU2hlZXQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1J1bGUg
KnBhcmVudFJ1bGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUNTU1J1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1
bGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGMwM2RiMDk1NzAxZjk1ZGNmN2EzYWQxNzI5YjdlMGY4NGJlNzM3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
UnVsZS5tbQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01DU1NS
dWxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTSW1wb3J0UnVsZS5oIgorI2ltcG9ydCAiQ1NT
UnVsZS5oIgorI2ltcG9ydCAiQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAiRE9NSW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkRPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
VVJMLmgiCisjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0
T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwg
cmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4oX2ludGVybmFsKQorCitAaW1wbGVt
ZW50YXRpb24gRE9NQ1NTUnVsZQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29y
ZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTUNTU1J1bGUgY2xhc3NdLCBz
ZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKF9pbnRlcm5hbCkKKyAgICAgICAgSU1Q
TC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0
KXR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPnR5cGUoKTsKK30KKworLSAoTlNTdHJpbmcgKiljc3NUZXh0Cit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5j
c3NUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0Q3NzVGV4dDooTlNTdHJpbmcgKiluZXdDc3NUZXh0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldENzc1RleHQobmV3Q3NzVGV4
dCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKERPTUNT
U1N0eWxlU2hlZXQgKilwYXJlbnRTdHlsZVNoZWV0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cGFy
ZW50U3R5bGVTaGVldCgpKSk7Cit9CisKKy0gKERPTUNTU1J1bGUgKilwYXJlbnRSdWxlCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+cGFyZW50UnVsZSgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6
Q1NTUnVsZSogY29yZShET01DU1NSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVy
ID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4od3JhcHBlci0+X2ludGVybmFs
KSA6IDA7Cit9CisKK0RPTUNTU1J1bGUgKmtpdChXZWJDb3JlOjpDU1NSdWxlKiB2YWx1ZSkKK3sK
KyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIGlmICghdmFs
dWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYgKERPTUNTU1J1bGUgKndyYXBwZXIgPSBn
ZXRET01XcmFwcGVyKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKKyAgICBET01DU1NSdWxlICp3cmFwcGVyID0gW1traXRDbGFzcyh2YWx1ZSkg
YWxsb2NdIF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5h
bCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVy
LCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgyOWRiMTFkMzYyYjhlOGI3MTY4ZDllYWM2OTQzN2JhYzA2ODZmZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5o
CkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTUnVsZS5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDU1NSdWxlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpD
U1NSdWxlKiBjb3JlKERPTUNTU1J1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NSdWxlICpr
aXQoV2ViQ29yZTo6Q1NTUnVsZSopOworQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6Q1NTUnVsZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk5M2E0ZTc2OGZhYmQzYzhlMDE3ZmQ0ZTI4MDFhZTA5MTE0YWM4OGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVMaXN0LmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4KKworQGNsYXNzIERPTUNT
U1J1bGU7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTUNTU1J1bGVMaXN0IDogRE9NT2JqZWN0CitAcHJvcGVydHkgKHJlYWRv
bmx5KSB1bnNpZ25lZCBsZW5ndGg7CisKKy0gKERPTUNTU1J1bGUgKilpdGVtOih1bnNpZ25lZClp
bmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTUnVsZUxpc3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVM
aXN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFlMDg4OTBmMmY0NTI5NjFmODY3MDc0OWRhODk5NWYyMGQ1YzVi
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNT
U1J1bGVMaXN0Lm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9N
Q1NTUnVsZUxpc3RJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NJbXBvcnRSdWxlLmgiCisjaW1w
b3J0ICJDU1NSdWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NT
UnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
V2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTUnVsZUxpc3QqPihfaW50ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01D
U1NSdWxlTGlzdAorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hl
ZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTUNTU1J1bGVMaXN0IGNsYXNzXSwgc2VsZikp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElNUEwtPmRl
cmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh1bnNpZ25lZClsZW5ndGgKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmxlbmd0aCgpOworfQorCistIChET01DU1NSdWxlICopaXRlbToodW5zaWduZWQpaW5kZXgK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IGtpdChXVEY6OmdldFB0cihJTVBMLT5pdGVtKGluZGV4KSkpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkNTU1J1bGVMaXN0KiBjb3JlKERPTUNTU1J1bGVMaXN0ICp3cmFwcGVyKQoreworICAgIHJl
dHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlTGlzdCo+KHdy
YXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01DU1NSdWxlTGlzdCAqa2l0KFdlYkNvcmU6
OkNTU1J1bGVMaXN0KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYg
KERPTUNTU1J1bGVMaXN0ICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAg
IHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ1NTUnVsZUxp
c3QgKndyYXBwZXIgPSBbW0RPTUNTU1J1bGVMaXN0IGFsbG9jXSBfaW5pdF07CisgICAgd3JhcHBl
ci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZhbHVl
KTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVyLCB2YWx1ZSk7
CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlzdEludGVybmFsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWRjMWY1Njk4YTA5YmY0MzIzMjU0MWNmMjI4YzEzODdmNTQwNTA0YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTUnVsZUxpc3QuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTUnVsZUxpc3Q7Cit9CisKK1dFQkNPUkVfRVhQT1JU
IFdlYkNvcmU6OkNTU1J1bGVMaXN0KiBjb3JlKERPTUNTU1J1bGVMaXN0ICopOworV0VCQ09SRV9F
WFBPUlQgRE9NQ1NTUnVsZUxpc3QgKmtpdChXZWJDb3JlOjpDU1NSdWxlTGlzdCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMmE0MjM5Zjg3YjQ2MzcyOTFhMGIzMGFiZTRhNzVlYmQ1OGJjOGNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHls
ZURlY2xhcmF0aW9uLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4K
KworQGNsYXNzIERPTUNTU1J1bGU7CitAY2xhc3MgRE9NQ1NTVmFsdWU7CitAY2xhc3MgTlNTdHJp
bmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBA
aW50ZXJmYWNlIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmNzc1RleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1bnNpZ25lZCBs
ZW5ndGg7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1J1bGUgKnBhcmVudFJ1
bGU7CisKKy0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlWYWx1ZTooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWU7CistIChET01DU1NWYWx1ZSAqKWdldFByb3BlcnR5Q1NTVmFsdWU6KE5TU3RyaW5nICop
cHJvcGVydHlOYW1lOworLSAoTlNTdHJpbmcgKilyZW1vdmVQcm9wZXJ0eTooTlNTdHJpbmcgKilw
cm9wZXJ0eU5hbWU7CistIChOU1N0cmluZyAqKWdldFByb3BlcnR5UHJpb3JpdHk6KE5TU3RyaW5n
ICopcHJvcGVydHlOYW1lOworLSAodm9pZClzZXRQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWUgcHJpb3JpdHk6KE5TU3RyaW5nICopcHJpb3Jp
dHkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistIChOU1N0cmluZyAqKWl0ZW06KHVuc2ln
bmVkKWluZGV4OworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVNob3J0aGFuZDooTlNTdHJpbmcg
Kilwcm9wZXJ0eU5hbWUgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworLSAoQk9P
TClpc1Byb3BlcnR5SW1wbGljaXQ6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lIFdFQktJVF9BVkFJ
TEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNlIERPTUNTU1N0eWxlRGVjbGFyYXRp
b24gKERPTUNTU1N0eWxlRGVjbGFyYXRpb25EZXByZWNhdGVkKQorLSAodm9pZClzZXRQcm9wZXJ0
eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUgOihOU1N0cmluZyAqKXZhbHVlIDooTlNTdHJpbmcg
Kilwcmlvcml0eSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRp
b24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRp
b24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTZmZmMyMzk5MGNlOWFiZmRiYjAwYWY1MDQ3NjE3ZThkZTlhMDdk
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTSW1w
b3J0UnVsZS5oIgorI2ltcG9ydCAiQ1NTUnVsZS5oIgorI2ltcG9ydCAiQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oIgorI2ltcG9ydCAiQ1NTVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFu
ZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhy
ZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMu
aCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQ
dHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVE
ZWNsYXJhdGlvbio+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUNTU1N0eWxlRGVj
bGFyYXRpb24KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1
bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01DU1NTdHlsZURlY2xhcmF0aW9uIGNsYXNzXSwg
c2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElN
UEwtPmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChOU1N0cmluZyAqKWNz
c1RleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmNzc1RleHQoKTsKK30KKworLSAodm9pZClzZXRDc3NUZXh0OihOU1N0cmlu
ZyAqKW5ld0Nzc1RleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0Q3Nz
VGV4dChuZXdDc3NUZXh0LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsK
K30KKworLSAodW5zaWduZWQpbGVuZ3RoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5sZW5ndGgoKTsKK30KKworLSAoRE9NQ1NT
UnVsZSAqKXBhcmVudFJ1bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5wYXJlbnRSdWxlKCkpKTsK
K30KKworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVZhbHVlOihOU1N0cmluZyAqKXByb3BlcnR5
TmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworfQorCistIChET01D
U1NWYWx1ZSAqKWdldFByb3BlcnR5Q1NTVmFsdWU6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBr
aXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eU5hbWUpKSk7
Cit9CisKKy0gKE5TU3RyaW5nICopcmVtb3ZlUHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHlO
YW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIE5TU3RyaW5nICpyZXN1bHQgPSBJTVBM
LT5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9u
RE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKE5TU3RyaW5nICopZ2V0
UHJvcGVydHlQcmlvcml0eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFByb3Bl
cnR5UHJpb3JpdHkocHJvcGVydHlOYW1lKTsKK30KKworLSAodm9pZClzZXRQcm9wZXJ0eTooTlNT
dHJpbmcgKilwcm9wZXJ0eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWUgcHJpb3JpdHk6KE5T
U3RyaW5nICopcHJpb3JpdHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0
UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSwgcHJpb3JpdHksIGVjKTsKKyAgICBXZWJDb3Jl
OjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistICh2b2lkKXNldFByb3BlcnR5OihOU1N0cmlu
ZyAqKXByb3BlcnR5TmFtZSA6KE5TU3RyaW5nICopdmFsdWUgOihOU1N0cmluZyAqKXByaW9yaXR5
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldFByb3BlcnR5KHByb3BlcnR5
TmFtZSwgdmFsdWUsIHByaW9yaXR5LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9y
KGVjKTsKK30KKworLSAoTlNTdHJpbmcgKilpdGVtOih1bnNpZ25lZClpbmRleAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aXRl
bShpbmRleCk7Cit9CisKKy0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlTaG9ydGhhbmQ6KE5TU3Ry
aW5nICopcHJvcGVydHlOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRQcm9wZXJ0eVNob3J0aGFuZChwcm9wZXJ0eU5h
bWUpOworfQorCistIChCT09MKWlzUHJvcGVydHlJbXBsaWNpdDooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmlzUHJvcGVydHlJbXBsaWNpdChwcm9wZXJ0eU5hbWUpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIGNvcmUoRE9NQ1NTU3R5bGVEZWNsYXJh
dGlvbiAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbio+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01DU1NTdHlsZURlY2xhcmF0aW9uICpraXQoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbiogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01DU1NT
dHlsZURlY2xhcmF0aW9uICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAg
IHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbiAqd3JhcHBlciA9IFtbRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBhbGxvY10gX2lu
aXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0
SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIo
d3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFy
YXRpb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHls
ZURlY2xhcmF0aW9uSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDRhMmNiOWQ3MTQ0NjY2YzJmOWUw
ODZlOWIxNTdmMDZhYTE5ODlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24uaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK30KKworV0VCQ09SRV9FWFBPUlQg
V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiogY29yZShET01DU1NTdHlsZURlY2xhcmF0aW9u
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqa2l0KFdlYkNvcmU6
OkNTU1N0eWxlRGVjbGFyYXRpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU1N0eWxlUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NWI0NWY1ZjgxNmFjODYxNjUwMzFlZTY0
OGYyMjE2MWE4ZjgwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9N
Q1NTUnVsZS5oPgorCitAY2xhc3MgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK0BjbGFzcyBOU1N0
cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JU
IEBpbnRlcmZhY2UgRE9NQ1NTU3R5bGVSdWxlIDogRE9NQ1NTUnVsZQorQHByb3BlcnR5IChjb3B5
KSBOU1N0cmluZyAqc2VsZWN0b3JUZXh0OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBE
T01DU1NTdHlsZURlY2xhcmF0aW9uICpzdHlsZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLm1tIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjZjliNWVjMDQy
N2EwN2QwYjZlNmQ4ZTg3YTE0MzBkOTU1Yzg0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLm1tCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2ltcG9ydCAiQ1NTU3R5bGVSdWxlLmgiCisj
aW1wb3J0ICJET01DU1NSdWxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUNTU1N0eWxlRGVjbGFy
YXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisj
aW1wb3J0ICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1w
b3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQg
PHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1N0
eWxlUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NTdHlsZVJ1bGUKKworLSAoTlNTdHJpbmcgKilzZWxl
Y3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnNlbGVjdG9yVGV4dCgpOworfQorCistICh2b2lkKXNldFNlbGVjdG9y
VGV4dDooTlNTdHJpbmcgKiluZXdTZWxlY3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0b3JUZXh0KG5ld1NlbGVj
dG9yVGV4dCk7Cit9CisKKy0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdU
Rjo6Z2V0UHRyKElNUEwtPnN0eWxlKCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpDU1NTdHls
ZVJ1bGUqIGNvcmUoRE9NQ1NTU3R5bGVSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFw
cGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NTdHlsZVJ1bGUqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NQ1NTU3R5bGVSdWxlICpraXQoV2ViQ29yZTo6Q1NTU3R5
bGVSdWxlKiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9u
ZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NTdHlsZVJ1bGUqPihraXQoc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0NzE2NTljOTQ5MTlkNWJlMjYzYmQxZWMzZDJhODJiYmJjYjI2ZWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZUludGVy
bmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01DU1NTdHlsZVJ1bGUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTU3R5bGVSdWxlOworfQorCitXRUJDT1JFX0VY
UE9SVCBXZWJDb3JlOjpDU1NTdHlsZVJ1bGUqIGNvcmUoRE9NQ1NTU3R5bGVSdWxlICopOworV0VC
Q09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVSdWxlICpraXQoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVTaGVldC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM1NWFhNDI5MDY4ZGEwNDhiOTg2ZTZiZTJmMzJjZDE1OGQzYjA3NzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hl
ZXQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVN0eWxlU2hlZXQuaD4KKworQGNs
YXNzIERPTUNTU1J1bGU7CitAY2xhc3MgRE9NQ1NTUnVsZUxpc3Q7CitAY2xhc3MgTlNTdHJpbmc7
CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIERPTUNTU1N0eWxlU2hlZXQgOiBET01TdHlsZVNoZWV0CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBzdHJvbmcpIERPTUNTU1J1bGUgKm93bmVyUnVsZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHks
IHN0cm9uZykgRE9NQ1NTUnVsZUxpc3QgKmNzc1J1bGVzOworQHByb3BlcnR5IChyZWFkb25seSwg
c3Ryb25nKSBET01DU1NSdWxlTGlzdCAqcnVsZXMgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNik7
CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5nICopcnVsZSBpbmRleDoodW5zaWdu
ZWQpaW5kZXggV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistICh2b2lkKWRlbGV0ZVJ1bGU6
KHVuc2lnbmVkKWluZGV4OworLSAoaW50KWFkZFJ1bGU6KE5TU3RyaW5nICopc2VsZWN0b3Igc3R5
bGU6KE5TU3RyaW5nICopc3R5bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9BVkFJTEFC
TEVfTUFDKDEwXzYpOworLSAodm9pZClyZW1vdmVSdWxlOih1bnNpZ25lZClpbmRleCBXRUJLSVRf
QVZBSUxBQkxFX01BQygxMF82KTsKK0BlbmQKKworQGludGVyZmFjZSBET01DU1NTdHlsZVNoZWV0
IChET01DU1NTdHlsZVNoZWV0RGVwcmVjYXRlZCkKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5T
U3RyaW5nICopcnVsZSA6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80
LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTU3R5bGVTaGVldC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
U3R5bGVTaGVldC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDE2OGEwMTAyOTllMTg2ZWZiOTBhMzQ2ZWU1ZmVj
MTRmNzg0OWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NTdHlsZVNoZWV0Lm1tCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkRPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NJbXBvcnRS
dWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlTGlzdC5oIgorI2lt
cG9ydCAiQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisj
aW1wb3J0ICJET01DU1NSdWxlTGlzdEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTVN0eWxlU2hlZXRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9y
dCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29y
ZTo6U3R5bGVTaGVldCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NTdHls
ZVNoZWV0CisKKy0gKERPTUNTU1J1bGUgKilvd25lclJ1bGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBM
LT5vd25lclJ1bGUoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAqKWNzc1J1bGVzCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+Y3NzUnVsZXMoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAq
KXJ1bGVzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cnVsZXMoKSkpOworfQorCistICh1bnNpZ25l
ZClpbnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1
bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5n
ICopcnVsZSA6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVu
c2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBX
ZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0g
KHZvaWQpZGVsZXRlUnVsZToodW5zaWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgSU1QTC0+ZGVsZXRlUnVsZShpbmRleCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25E
T01FcnJvcihlYyk7Cit9CisKKy0gKGludClhZGRSdWxlOihOU1N0cmluZyAqKXNlbGVjdG9yIHN0
eWxlOihOU1N0cmluZyAqKXN0eWxlIGluZGV4Oih1bnNpZ25lZClpbmRleAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICBpbnQgcmVzdWx0ID0gSU1QTC0+YWRkUnVsZShzZWxlY3Rvciwgc3R5
bGUsIGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCistICh2b2lkKXJlbW92ZVJ1bGU6KHVuc2lnbmVkKWluZGV4Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnJlbW92ZVJ1bGUoaW5kZXgsIGVjKTsK
KyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCitAZW5kCisKK1dlYkNvcmU6
OkNTU1N0eWxlU2hlZXQqIGNvcmUoRE9NQ1NTU3R5bGVTaGVldCAqd3JhcHBlcikKK3sKKyAgICBy
ZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCo+
KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01DU1NTdHlsZVNoZWV0ICpraXQoV2Vi
Q29yZTo6Q1NTU3R5bGVTaGVldCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlv
bkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTU3R5bGVTaGVl
dCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpTdHlsZVNoZWV0Kj4odmFsdWUpKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hlZXRJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVNoZWV0
SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjFmMWM3Njk4M2FkNzhlOTZhNmRiNDU5NGI2YzBhYTNi
YTMzYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DU1NTdHlsZVNoZWV0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TUNTU1N0eWxlU2hlZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTU3R5bGVT
aGVldDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTU3R5bGVTaGVldCogY29yZShE
T01DU1NTdHlsZVNoZWV0ICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVTaGVldCAqa2l0
KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTVW5rbm93blJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVW5rbm93blJ1bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmZmMDY0NjAzOGMwZWMxMzUw
ZmM0YjdhMzQyMmQ4MGJiYzYzMjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01DU1NVbmtub3duUnVsZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdl
YkNvcmUvRE9NQ1NTUnVsZS5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQor
V0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01DU1NVbmtub3duUnVsZSA6IERPTUNTU1J1bGUK
K0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVW5r
bm93blJ1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25S
dWxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwMDAyZjgwZjJhNzZhMjMyZmQyZWE0OTkyYmMxN2M5NzgzMjcz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNT
U1Vua25vd25SdWxlLm1tCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NVbmtub3duUnVsZS5o
IgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3Jp
cHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1Q
TCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NVbmtub3duUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTUnVsZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NV
bmtub3duUnVsZQorCitAZW5kCisKK1dlYkNvcmU6OkNTU1Vua25vd25SdWxlKiBjb3JlKERPTUNT
U1Vua25vd25SdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpDU1NVbmtub3duUnVsZSo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAw
OworfQorCitET01DU1NVbmtub3duUnVsZSAqa2l0KFdlYkNvcmU6OkNTU1Vua25vd25SdWxlKiB2
YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NVbmtub3duUnVsZSo+KGtpdChzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpDU1NSdWxlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25SdWxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4OGMwMmI5OWIxMGIzMmFlZmQ3ZjU0ZmU3MDE0ZWYxZjJiYjlmZDcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25SdWxlSW50ZXJu
YWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1Vua25vd25SdWxlLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENTU1Vua25vd25SdWxlOworfQorCitXRUJDT1JF
X0VYUE9SVCBXZWJDb3JlOjpDU1NVbmtub3duUnVsZSogY29yZShET01DU1NVbmtub3duUnVsZSAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU1Vua25vd25SdWxlICpraXQoV2ViQ29yZTo6Q1NTVW5r
bm93blJ1bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YmFmNWFlODEzMmMwZjY1N2VkNjA2ZWYxMDAyNTk5ZTcxOTY2ODg0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5o
CkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBOU1N0
cmluZzsKKworZW51bSB7CisgICAgRE9NX0NTU19JTkhFUklUID0gMCwKKyAgICBET01fQ1NTX1BS
SU1JVElWRV9WQUxVRSA9IDEsCisgICAgRE9NX0NTU19WQUxVRV9MSVNUID0gMiwKKyAgICBET01f
Q1NTX0NVU1RPTSA9IDMKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxFX01BQygxMF80KTsKKworV0VC
S0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2Ug
RE9NQ1NTVmFsdWUgOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNzc1Rl
eHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5cGU7CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVl
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iODg2ZjEzYmE4YmE3OWRiMTQzMTk3NTM1NTE3NDllZjk1NTE5Mjk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5tbQpAQCAt
MCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwu
aCIKKworI2ltcG9ydCAiQ1NTVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1w
b3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisj
aW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgi
CisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFs
KQorCitAaW1wbGVtZW50YXRpb24gRE9NQ1NTVmFsdWUKKworLSAodm9pZClkZWFsbG9jCit7Cisg
ICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01DU1NW
YWx1ZSBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFs
KQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
TlNTdHJpbmcgKiljc3NUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jc3NUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0Q3Nz
VGV4dDooTlNTdHJpbmcgKiluZXdDc3NUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IElNUEwtPnNldENzc1RleHQobmV3Q3NzVGV4dCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25E
T01FcnJvcihlYyk7Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0KWNzc1ZhbHVlVHlwZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Y3NzVmFsdWVUeXBlKCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTVmFsdWUqIGNvcmUoRE9N
Q1NTVmFsdWUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9j
YXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RP
TUNTU1ZhbHVlICpraXQoV2ViQ29yZTo6Q1NTVmFsdWUqIHZhbHVlKQoreworICAgIFdlYkNvcmVU
aHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICBpZiAoRE9NQ1NTVmFsdWUgKndyYXBwZXIgPSBnZXRET01XcmFwcGVy
KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsK
KyAgICBET01DU1NWYWx1ZSAqd3JhcHBlciA9IFtba2l0Q2xhc3ModmFsdWUpIGFsbG9jXSBfaW5p
dF07CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHdyYXBwZXIt
Pl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7
CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOwor
ICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzNmI1
MjkxMzE4NDM5YWVjNWE4OGUyM2U4OGJmMTliM2JkM2NiOTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaApAQCAtMCww
ICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIENTU1ZhbHVlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpDU1NWYWx1
ZSogY29yZShET01DU1NWYWx1ZSAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU1ZhbHVlICpraXQo
V2ViQ29yZTo6Q1NTVmFsdWUqKTsKK0NsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNTU1ZhbHVlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MmVjODU4MzU2YTQ3ZjI1M2Y4ZTI3MjBkM2FkMDhkMTQzNGU0MmU2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3Qu
aApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK0BjbGFzcyBE
T01DU1NWYWx1ZTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTVmFsdWVMaXN0IDogRE9NQ1NTVmFsdWUKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIHVuc2lnbmVkIGxlbmd0aDsKKworLSAoRE9NQ1NTVmFsdWUgKilpdGVtOih1
bnNpZ25lZClpbmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVmFsdWVMaXN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DU1NWYWx1ZUxpc3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA1N2RmMWY5MDQxYjJkM2EwZGZmZWQ5NzNm
YzM1Y2I0YTgzODRiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVmFsdWVMaXN0Lm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRE9NQ1NTVmFsdWVMaXN0SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTVmFsdWUu
aCIKKyNpbXBvcnQgIkNTU1ZhbHVlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJl
YWRDaGVjay5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8
d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTVmFs
dWVMaXN0Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NWYWx1ZSo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NWYWx1ZUxpc3QKKworLSAodW5zaWduZWQpbGVuZ3Ro
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5sZW5ndGgoKTsKK30KKworLSAoRE9NQ1NTVmFsdWUgKilpdGVtOih1bnNpZ25lZClp
bmRleAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPml0ZW0oaW5kZXgpKSk7Cit9CisKK0BlbmQKKwor
V2ViQ29yZTo6Q1NTVmFsdWVMaXN0KiBjb3JlKERPTUNTU1ZhbHVlTGlzdCAqd3JhcHBlcikKK3sK
KyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWVM
aXN0Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU1ZhbHVlTGlzdCAqa2l0
KFdlYkNvcmU6OkNTU1ZhbHVlTGlzdCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xh
dGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTVmFsdWVM
aXN0Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdElu
dGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdElu
dGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI4ODg1MDY2OTdmYWFjNWYyM2E2NmQ3OTU0MjlmMmVhMzRj
OTEzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTVmFsdWVMaXN0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNT
U1ZhbHVlTGlzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NWYWx1ZUxpc3Q7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU1ZhbHVlTGlzdCogY29yZShET01DU1NW
YWx1ZUxpc3QgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NWYWx1ZUxpc3QgKmtpdChXZWJDb3Jl
OjpDU1NWYWx1ZUxpc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NQ291bnRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Db3VudGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjNiYTY5MmEwODg4YmE5YWM2ZTA3MzVmNThmMjI5N2EyYjg3NTJlZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ291bnRl
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBO
U1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NQ291bnRlciA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFkb25s
eSwgY29weSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5
KSBOU1N0cmluZyAqbGlzdFN0eWxlOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJp
bmcgKnNlcGFyYXRvcjsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ291bnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ291
bnRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNjc2Zjc2NWQzOGY1YzhkMGI1N2IzMmNlNzJjNzE4ZmI3NzY4
MTBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
b3VudGVyLm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ291
bnRlckludGVybmFsLmgiCisKKyNpbXBvcnQgIkNvdW50ZXIuaCIKKyNpbXBvcnQgIkRPTUludGVy
bmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhh
bmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFz
LmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0
UHRyLmg+CisKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNvdW50ZXIq
PihfaW50ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01Db3VudGVyCisKKy0gKHZvaWQpZGVh
bGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVh
ZChbRE9NQ291bnRlciBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
X2ludGVybmFsKQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsK
K30KKworLSAoTlNTdHJpbmcgKilpZGVudGlmaWVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pZGVudGlmaWVyKCk7Cit9CisK
Ky0gKE5TU3RyaW5nICopbGlzdFN0eWxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5saXN0U3R5bGUoKTsKK30KKworLSAoTlNT
dHJpbmcgKilzZXBhcmF0b3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnNlcGFyYXRvcigpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkNvdW50ZXIqIGNvcmUoRE9NQ291bnRlciAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3Jh
cHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q291bnRlcio+KHdyYXBwZXItPl9pbnRl
cm5hbCkgOiAwOworfQorCitET01Db3VudGVyICpraXQoV2ViQ29yZTo6Q291bnRlciogdmFsdWUp
Cit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAo
IXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01Db3VudGVyICp3cmFwcGVy
ID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWlu
XSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ291bnRlciAqd3JhcHBlciA9IFtbRE9NQ291bnRlciBh
bGxvY10gX2luaXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERP
TVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFz
ZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNvdW50
ZXJJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Db3VudGVySW50
ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xODBjOWM5NjEyZDk2M2FkMjc5YmU3ZTZjMjgzOTllNjMzNmNi
ZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
b3VudGVySW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNvdW50ZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ291bnRlcjsKK30KKworV0VCQ09SRV9F
WFBPUlQgV2ViQ29yZTo6Q291bnRlciogY29yZShET01Db3VudGVyICopOworV0VCQ09SRV9FWFBP
UlQgRE9NQ291bnRlciAqa2l0KFdlYkNvcmU6OkNvdW50ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmUzMjE0ZmQ3OGYxZDkwYmFiYmFiOTc2
MDJhMzRkMjQ0MjVkNjNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01FdmVudC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0
Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKK0Bwcm90b2NvbCBET01FdmVudFRhcmdldDsKKworZW51
bSB7CisgICAgRE9NX05PTkUgPSAwLAorICAgIERPTV9DQVBUVVJJTkdfUEhBU0UgPSAxLAorICAg
IERPTV9BVF9UQVJHRVQgPSAyLAorICAgIERPTV9CVUJCTElOR19QSEFTRSA9IDMKK30gV0VCS0lU
X0VOVU1fQVZBSUxBQkxFX01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NRXZlbnQgOiBET01PYmplY3QKK0Bw
cm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0eXBlOworQHByb3BlcnR5IChyZWFk
b25seSwgc3Ryb25nKSBpZCA8RE9NRXZlbnRUYXJnZXQ+IHRhcmdldDsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIHN0cm9uZykgaWQgPERPTUV2ZW50VGFyZ2V0PiBjdXJyZW50VGFyZ2V0OworQHByb3Bl
cnR5IChyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgZXZlbnRQaGFzZTsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHkpIEJPT0wgYnViYmxlczsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgY2FuY2VsYWJs
ZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIERPTVRpbWVTdGFtcCB0aW1lU3RhbXA7CitAcHJvcGVy
dHkgKHJlYWRvbmx5LCBzdHJvbmcpIGlkIDxET01FdmVudFRhcmdldD4gc3JjRWxlbWVudCBXRUJL
SVRfQVZBSUxBQkxFX01BQygxMF82KTsKK0Bwcm9wZXJ0eSBCT09MIHJldHVyblZhbHVlIFdFQktJ
VF9BVkFJTEFCTEVfTUFDKDEwXzYpOworQHByb3BlcnR5IEJPT0wgY2FuY2VsQnViYmxlIFdFQktJ
VF9BVkFJTEFCTEVfTUFDKDEwXzYpOworCistICh2b2lkKXN0b3BQcm9wYWdhdGlvbjsKKy0gKHZv
aWQpcHJldmVudERlZmF1bHQ7CistICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVudFR5
cGVBcmcgY2FuQnViYmxlQXJnOihCT09MKWNhbkJ1YmJsZUFyZyBjYW5jZWxhYmxlQXJnOihCT09M
KWNhbmNlbGFibGVBcmcgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCisKK0BpbnRl
cmZhY2UgRE9NRXZlbnQgKERPTUV2ZW50RGVwcmVjYXRlZCkKKy0gKHZvaWQpaW5pdEV2ZW50OihO
U1N0cmluZyAqKWV2ZW50VHlwZUFyZyA6KEJPT0wpY2FuQnViYmxlQXJnIDooQk9PTCljYW5jZWxh
YmxlQXJnIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGZlYzk4ZjVlM2Yw
MTU4YzJhNmY4NzlkMzdiNzhjZjljODY2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRXZlbnRU
YXJnZXQuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkV2ZW50LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgor
I2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJDb3JlT2Jq
Q0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8
d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpF
dmVudCo+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUV2ZW50CisKKy0gKHZvaWQp
ZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRo
cmVhZChbRE9NRXZlbnQgY2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KF9pbnRlcm5hbCkKKyAgICAgICAgSU1QTC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107
Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+dHlwZSgpOworfQorCistIChpZCA8RE9N
RXZlbnRUYXJnZXQ+KXRhcmdldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRhcmdldCgpKSk7Cit9
CisKKy0gKGlkIDxET01FdmVudFRhcmdldD4pY3VycmVudFRhcmdldAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPmN1cnJlbnRUYXJnZXQoKSkpOworfQorCistICh1bnNpZ25lZCBzaG9ydClldmVudFBo
YXNlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5ldmVudFBoYXNlKCk7Cit9CisKKy0gKEJPT0wpYnViYmxlcworeworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+YnVi
YmxlcygpOworfQorCistIChCT09MKWNhbmNlbGFibGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNhbmNlbGFibGUoKTsKK30K
KworLSAoQk9PTCljb21wb3NlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y29tcG9zZWQoKTsKK30KKworLSAoRE9NVGltZVN0
YW1wKXRpbWVTdGFtcAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCk7Cit9CisKKy0gKEJPT0wpZGVmYXVsdFBy
ZXZlbnRlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCistIChCT09MKWlzVHJ1c3Rl
ZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aXNUcnVzdGVkKCk7Cit9CisKKy0gKGlkIDxET01FdmVudFRhcmdldD4pc3JjRWxl
bWVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnNyY0VsZW1lbnQoKSkpOworfQorCistIChCT09M
KXJldHVyblZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sZWdhY3lSZXR1cm5WYWx1ZSgpOworfQorCistICh2b2lkKXNl
dFJldHVyblZhbHVlOihCT09MKW5ld1JldHVyblZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldExlZ2FjeVJldHVyblZhbHVlKG5l
d1JldHVyblZhbHVlKTsKK30KKworLSAoQk9PTCljYW5jZWxCdWJibGUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNhbmNlbEJ1
YmJsZSgpOworfQorCistICh2b2lkKXNldENhbmNlbEJ1YmJsZTooQk9PTCluZXdDYW5jZWxCdWJi
bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0Q2FuY2VsQnViYmxlKG5ld0NhbmNlbEJ1YmJsZSk7Cit9CisKKy0gKHZvaWQpc3RvcFBy
b3BhZ2F0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnN0b3BQcm9wYWdhdGlvbigpOworfQorCistICh2b2lkKXByZXZlbnREZWZhdWx0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnByZXZlbnREZWZhdWx0KCk7Cit9CisKKy0gKHZvaWQpaW5pdEV2ZW50OihOU1N0cmluZyAqKWV2
ZW50VHlwZUFyZyBjYW5CdWJibGVBcmc6KEJPT0wpY2FuQnViYmxlQXJnIGNhbmNlbGFibGVBcmc6
KEJPT0wpY2FuY2VsYWJsZUFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0RXZlbnQoZXZlbnRUeXBlQXJnLCBjYW5CdWJibGVBcmcs
IGNhbmNlbGFibGVBcmcpOworfQorCistICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVu
dFR5cGVBcmcgOihCT09MKWNhbkJ1YmJsZUFyZyA6KEJPT0wpY2FuY2VsYWJsZUFyZworeworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0RXZl
bnQoZXZlbnRUeXBlQXJnLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpOworfQorCistICh2
b2lkKXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsK
K30KKworQGVuZAorCitXZWJDb3JlOjpFdmVudCogY29yZShET01FdmVudCAqd3JhcHBlcikKK3sK
KyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPih3
cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NRXZlbnQgKmtpdChXZWJDb3JlOjpFdmVu
dCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsK
KyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01FdmVudCAq
d3JhcHBlciA9IGdldERPTVdyYXBwZXIodmFsdWUpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVy
IHJldGFpbl0gYXV0b3JlbGVhc2VdOworICAgIERPTUV2ZW50ICp3cmFwcGVyID0gW1traXRDbGFz
cyh2YWx1ZSkgYWxsb2NdIF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVy
biBuaWw7CisgICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmpl
Y3RJbnRlcm5hbCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBl
cih3cmFwcGVyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudEludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODQ4MDdmNzcwZDM5Mzk2MDRkMmUzZWFmOTY4MmNkMDU2NDUwZjA3NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6
RXZlbnQqIGNvcmUoRE9NRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01FdmVudCAqa2l0KFdl
YkNvcmU6OkV2ZW50Kik7CitDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpFdmVudCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudExpc3RlbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzBmMmFjN2FlMWUxOWNlMjAwY2RiMTZjYzRkNmEyMWFkNTY2NDRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudExpc3RlbmVyLmgKQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9XZWJLaXRBdmFpbGFiaWxpdHkuaD4KKworQGNsYXNz
IERPTUV2ZW50OworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorQHByb3RvY29s
IERPTUV2ZW50TGlzdGVuZXIgPE5TT2JqZWN0PgorLSAodm9pZCloYW5kbGVFdmVudDooRE9NRXZl
bnQgKilldmVudDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZl
bnRUYXJnZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODRlODQwMGY3NjZmMzJkOTljZjE5MGNiN2VlOTJlM2Rm
ZGUzODU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01FdmVudFRhcmdldC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvV2ViS2l0QXZhaWxh
YmlsaXR5Lmg+CisKK0BjbGFzcyBET01FdmVudDsKK0BjbGFzcyBOU1N0cmluZzsKK0Bwcm90b2Nv
bCBET01FdmVudExpc3RlbmVyOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQor
QHByb3RvY29sIERPTUV2ZW50VGFyZ2V0IDxOU09iamVjdCwgTlNDb3B5aW5nPgorLSAodm9pZClh
ZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExp
c3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUgV0VCS0lUX0FWQUlM
QUJMRV9NQUMoMTBfNSk7CistICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICop
dHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6
KEJPT0wpdXNlQ2FwdHVyZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKKy0gKEJPT0wpZGlz
cGF0Y2hFdmVudDooRE9NRXZlbnQgKilldmVudDsKKy0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjoo
TlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIDooQk9PTCl1
c2VDYXB0dXJlIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKKy0gKHZvaWQpcmVt
b3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+
KWxpc3RlbmVyIDooQk9PTCl1c2VDYXB0dXJlIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAx
MF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
S2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2Fy
ZEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q5ZGQzODk1ZmYyMGI1NjViYzQxNWEyY2Q2MDQ5MzMwYmY2
MzJjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
S2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NVUlFdmVudC5o
PgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIE5TU3RyaW5nOworCitlbnVtIHsK
KyAgICBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEID0gMHgwMCwKKyAgICBET01fS0VZX0xPQ0FU
SU9OX0xFRlQgPSAweDAxLAorICAgIERPTV9LRVlfTE9DQVRJT05fUklHSFQgPSAweDAyLAorICAg
IERPTV9LRVlfTE9DQVRJT05fTlVNUEFEID0gMHgwMworfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVf
TUFDKDEwXzUpOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9F
WFBPUlQgQGludGVyZmFjZSBET01LZXlib2FyZEV2ZW50IDogRE9NVUlFdmVudAorQHByb3BlcnR5
IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtleUlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSB1bnNpZ25lZCBsb2NhdGlvbiBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF84KTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIGtleUxvY2F0aW9uIFdFQktJVF9ERVBSRUNBVEVE
X01BQygxMF81LCAxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgY3RybEtleTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgc2hpZnRLZXk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIGFsdEtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgbWV0YUtleTsKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIEJPT0wgYWx0R3JhcGhLZXkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7
CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQga2V5Q29kZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkp
IGludCBjaGFyQ29kZTsKKworLSAoQk9PTClnZXRNb2RpZmllclN0YXRlOihOU1N0cmluZyAqKWtl
eUlkZW50aWZpZXJBcmc7CistICh2b2lkKWluaXRLZXlib2FyZEV2ZW50OihOU1N0cmluZyAqKXR5
cGUgY2FuQnViYmxlOihCT09MKWNhbkJ1YmJsZSBjYW5jZWxhYmxlOihCT09MKWNhbmNlbGFibGUg
dmlldzooRE9NQWJzdHJhY3RWaWV3ICopdmlldyBrZXlJZGVudGlmaWVyOihOU1N0cmluZyAqKWtl
eUlkZW50aWZpZXIgbG9jYXRpb246KHVuc2lnbmVkKWxvY2F0aW9uIGN0cmxLZXk6KEJPT0wpY3Ry
bEtleSBhbHRLZXk6KEJPT0wpYWx0S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6
KEJPT0wpbWV0YUtleSBhbHRHcmFwaEtleTooQk9PTClhbHRHcmFwaEtleSBXRUJLSVRfQVZBSUxB
QkxFX01BQygxMF84KTsKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlw
ZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2
aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZpZXI6KE5TU3RyaW5nICopa2V5
SWRlbnRpZmllciBsb2NhdGlvbjoodW5zaWduZWQpbG9jYXRpb24gY3RybEtleTooQk9PTCljdHJs
S2V5IGFsdEtleTooQk9PTClhbHRLZXkgc2hpZnRLZXk6KEJPT0wpc2hpZnRLZXkgbWV0YUtleToo
Qk9PTCltZXRhS2V5IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzgpOworLSAodm9pZClpbml0S2V5
Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2Fu
Y2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcga2V5
SWRlbnRpZmllcjooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25l
ZClrZXlMb2NhdGlvbiBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09MKWFsdEtleSBz
aGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgYWx0R3JhcGhLZXk6
KEJPT0wpYWx0R3JhcGhLZXkgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworLSAo
dm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTClj
YW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0Vmll
dyAqKXZpZXcga2V5SWRlbnRpZmllcjooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyIGtleUxvY2F0
aW9uOih1bnNpZ25lZClrZXlMb2NhdGlvbiBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihC
T09MKWFsdEtleSBzaGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkg
V0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ODY0
YjMwOGVmNGU1ZDg3ZTlhMjRlNmJkNTNmMmFkMWM0NTU2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnQubW0KQEAgLTAsMCAr
MSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NS2V5Ym9hcmRFdmVudEludGVybmFs
LmgiCisKKyNpbXBvcnQgIkRPTUFic3RyYWN0Vmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJET01F
dmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRP
TVdpbmRvdy5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAi
VGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0
UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
RXZlbnQqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NS2V5Ym9hcmRFdmVudAor
CistIChOU1N0cmluZyAqKWtleUlkZW50aWZpZXIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUlkZW50aWZpZXIoKTsKK30K
KworLSAodW5zaWduZWQpbG9jYXRpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmxvY2F0aW9uKCk7Cit9CisKKy0gKHVuc2ln
bmVkKWtleUxvY2F0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5sb2NhdGlvbigpOworfQorCistIChCT09MKWN0cmxLZXkK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmN0cmxLZXkoKTsKK30KKworLSAoQk9PTClzaGlmdEtleQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2hpZnRLZXko
KTsKK30KKworLSAoQk9PTClhbHRLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmFsdEtleSgpOworfQorCistIChCT09MKW1l
dGFLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPm1ldGFLZXkoKTsKK30KKworLSAoQk9PTClhbHRHcmFwaEtleQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
YWx0R3JhcGhLZXkoKTsKK30KKworLSAoaW50KWtleUNvZGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUNvZGUoKTsKK30K
KworLSAoaW50KWNoYXJDb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jaGFyQ29kZSgpOworfQorCistIChCT09MKWdldE1v
ZGlmaWVyU3RhdGU6KE5TU3RyaW5nICopa2V5SWRlbnRpZmllckFyZworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TW9kaWZp
ZXJTdGF0ZShrZXlJZGVudGlmaWVyQXJnKTsKK30KKworLSAodm9pZClpbml0S2V5Ym9hcmRFdmVu
dDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2FuY2VsYWJsZToo
Qk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcga2V5SWRlbnRpZmll
cjooTlNTdHJpbmcgKilpbktleUlkZW50aWZpZXIgbG9jYXRpb246KHVuc2lnbmVkKWluTG9jYXRp
b24gY3RybEtleTooQk9PTClpbkN0cmxLZXkgYWx0S2V5OihCT09MKWluQWx0S2V5IHNoaWZ0S2V5
OihCT09MKWluU2hpZnRLZXkgbWV0YUtleTooQk9PTClpbk1ldGFLZXkgYWx0R3JhcGhLZXk6KEJP
T0wpaW5BbHRHcmFwaEtleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBJTVBMLT5pbml0S2V5Ym9hcmRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGNvcmUodmlldyksIGluS2V5SWRlbnRpZmllciwgaW5Mb2NhdGlvbiwgaW5DdHJsS2V5
LCBpbkFsdEtleSwgaW5TaGlmdEtleSwgaW5NZXRhS2V5LCBpbkFsdEdyYXBoS2V5KTsKK30KKwor
LSAodm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9P
TCljYW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0
VmlldyAqKXZpZXcga2V5SWRlbnRpZmllcjooTlNTdHJpbmcgKilpbktleUlkZW50aWZpZXIgbG9j
YXRpb246KHVuc2lnbmVkKWluTG9jYXRpb24gY3RybEtleTooQk9PTClpbkN0cmxLZXkgYWx0S2V5
OihCT09MKWluQWx0S2V5IHNoaWZ0S2V5OihCT09MKWluU2hpZnRLZXkgbWV0YUtleTooQk9PTClp
bk1ldGFLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+aW5pdEtleWJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBj
b3JlKHZpZXcpLCBpbktleUlkZW50aWZpZXIsIGluTG9jYXRpb24sIGluQ3RybEtleSwgaW5BbHRL
ZXksIGluU2hpZnRLZXksIGluTWV0YUtleSk7Cit9CisKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZl
bnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6
KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZp
ZXI6KE5TU3RyaW5nICopaW5LZXlJZGVudGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25lZClpbktl
eUxvY2F0aW9uIGN0cmxLZXk6KEJPT0wpaW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBz
aGlmdEtleTooQk9PTClpblNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5IGFsdEdyYXBo
S2V5OihCT09MKWluQWx0R3JhcGhLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdEtleWJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCBjb3JlKHZpZXcpLCBpbktleUlkZW50aWZpZXIsIGluS2V5TG9jYXRpb24s
IGluQ3RybEtleSwgaW5BbHRLZXksIGluU2hpZnRLZXksIGluTWV0YUtleSwgaW5BbHRHcmFwaEtl
eSk7Cit9CisKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5C
dWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihE
T01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZpZXI6KE5TU3RyaW5nICopaW5LZXlJZGVu
dGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25lZClpbktleUxvY2F0aW9uIGN0cmxLZXk6KEJPT0wp
aW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBzaGlmdEtleTooQk9PTClpblNoaWZ0S2V5
IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRLZXlib2FyZEV2ZW50KHR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSwgY29yZSh2aWV3KSwgaW5LZXlJZGVudGlmaWVyLCBpbktleUxvY2F0aW9u
LCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXkpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OktleWJvYXJkRXZlbnQqIGNvcmUoRE9NS2V5Ym9hcmRFdmVudCAqd3JhcHBl
cikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6S2V5
Ym9hcmRFdmVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01LZXlib2FyZEV2
ZW50ICpraXQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
S2V5Ym9hcmRFdmVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2Fy
ZEV2ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NS2V5Ym9h
cmRFdmVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVhZTIzZmY4MmQyMzQ3YmVjZjZlNzQ4MDQ3
NTQ4NzU4ODMyZGUxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxX
ZWJDb3JlL0RPTUtleWJvYXJkRXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
S2V5Ym9hcmRFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dCogY29yZShET01LZXlib2FyZEV2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NS2V5Ym9hcmRF
dmVudCAqa2l0KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Nb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IwNGZiNmFlNDVkMGM5NDMz
NDE5YThkNDczNmViYzJjNTljNzQ4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NVUlFdmVudC5oPgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIERPTU5v
ZGU7CitAY2xhc3MgTlNTdHJpbmc7CitAcHJvdG9jb2wgRE9NRXZlbnRUYXJnZXQ7CisKK1dFQktJ
VF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERP
TU1vdXNlRXZlbnQgOiBET01VSUV2ZW50CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgc2NyZWVu
WDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBzY3JlZW5ZOworQHByb3BlcnR5IChyZWFkb25s
eSkgaW50IGNsaWVudFg7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgY2xpZW50WTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIEJPT0wgY3RybEtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
c2hpZnRLZXk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGFsdEtleTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHkpIEJPT0wgbWV0YUtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgaWQgPERPTUV2ZW50VGFy
Z2V0PiByZWxhdGVkVGFyZ2V0OworQHByb3BlcnR5IChyZWFkb25seSkgaW50IG9mZnNldFggV0VC
S0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgb2Zmc2V0
WSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB4
IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHkg
V0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IERPTU5vZGUgKmZyb21FbGVtZW50IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3Bl
cnR5IChyZWFkb25seSwgc3Ryb25nKSBET01Ob2RlICp0b0VsZW1lbnQgV0VCS0lUX0FWQUlMQUJM
RV9NQUMoMTBfNSk7CisKKy0gKHZvaWQpaW5pdE1vdXNlRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBj
YW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3
OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGRldGFpbDooaW50KWRldGFpbCBzY3JlZW5YOihpbnQp
c2NyZWVuWCBzY3JlZW5ZOihpbnQpc2NyZWVuWSBjbGllbnRYOihpbnQpY2xpZW50WCBjbGllbnRZ
OihpbnQpY2xpZW50WSBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09MKWFsdEtleSBz
aGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgYnV0dG9uOih1bnNp
Z25lZCBzaG9ydClidXR0b24gcmVsYXRlZFRhcmdldDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxh
dGVkVGFyZ2V0IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNl
IERPTU1vdXNlRXZlbnQgKERPTU1vdXNlRXZlbnREZXByZWNhdGVkKQorLSAodm9pZClpbml0TW91
c2VFdmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFi
bGUgOihET01BYnN0cmFjdFZpZXcgKil2aWV3IDooaW50KWRldGFpbCA6KGludClzY3JlZW5YIDoo
aW50KXNjcmVlblkgOihpbnQpY2xpZW50WCA6KGludCljbGllbnRZIDooQk9PTCljdHJsS2V5IDoo
Qk9PTClhbHRLZXkgOihCT09MKXNoaWZ0S2V5IDooQk9PTCltZXRhS2V5IDoodW5zaWduZWQgc2hv
cnQpYnV0dG9uIDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxhdGVkVGFyZ2V0IFdFQktJVF9ERVBS
RUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NTW91c2VFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjljNmYwNzQ2ZWYxN2IwNzRmMzdk
ZjZlNjljY2I4YzYzZTlkOWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Nb3VzZUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTU1vdXNlRXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01BYnN0
cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NRXZlbnRUYXJnZXQuaCIKKyNpbXBvcnQgIkRPTU5vZGUuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NV2luZG93LmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJN
b3VzZUV2ZW50LmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgor
I2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1w
b3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpN
b3VzZUV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01Nb3VzZUV2ZW50CisKKy0gKGludClzY3JlZW5YCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5zY3JlZW5YKCk7Cit9CisKKy0gKGludClzY3JlZW5ZCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zY3JlZW5ZKCk7Cit9CisK
Ky0gKGludCljbGllbnRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5jbGllbnRYKCk7Cit9CisKKy0gKGludCljbGllbnRZCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5jbGllbnRZKCk7Cit9CisKKy0gKEJPT0wpY3RybEtleQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y3RybEtleSgpOwor
fQorCistIChCT09MKXNoaWZ0S2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zaGlmdEtleSgpOworfQorCistIChCT09MKWFs
dEtleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+YWx0S2V5KCk7Cit9CisKKy0gKEJPT0wpbWV0YUtleQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bWV0YUtl
eSgpOworfQorCistICh1bnNpZ25lZCBzaG9ydClidXR0b24KK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmJ1dHRvbigpOworfQor
CistIChpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJ
TVBMLT5yZWxhdGVkVGFyZ2V0KCkpKTsKK30KKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCist
IChpbnQpbW92ZW1lbnRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5tb3ZlbWVudFgoKTsKK30KKyNlbmRpZgorCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKy0gKGludCltb3ZlbWVudFkKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPm1vdmVtZW50WSgpOwor
fQorI2VuZGlmCisKKy0gKGludClvZmZzZXRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5vZmZzZXRYKCk7Cit9CisKKy0gKGlu
dClvZmZzZXRZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5vZmZzZXRZKCk7Cit9CisKKy0gKGludCl4Cit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT54KCk7Cit9
CisKKy0gKGludCl5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT55KCk7Cit9CisKKy0gKERPTU5vZGUgKilmcm9tRWxlbWVudAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPmZyb21FbGVtZW50KCkpKTsKK30KKworLSAoRE9NTm9kZSAq
KXRvRWxlbWVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRvRWxlbWVudCgpKSk7Cit9CisKKy0g
KHZvaWQpaW5pdE1vdXNlRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2Fu
QnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcg
Kil2aWV3IGRldGFpbDooaW50KWRldGFpbCBzY3JlZW5YOihpbnQpaW5TY3JlZW5YIHNjcmVlblk6
KGludClpblNjcmVlblkgY2xpZW50WDooaW50KWluQ2xpZW50WCBjbGllbnRZOihpbnQpaW5DbGll
bnRZIGN0cmxLZXk6KEJPT0wpaW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBzaGlmdEtl
eTooQk9PTClpblNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5IGJ1dHRvbjoodW5zaWdu
ZWQgc2hvcnQpaW5CdXR0b24gcmVsYXRlZFRhcmdldDooaWQgPERPTUV2ZW50VGFyZ2V0PilpblJl
bGF0ZWRUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgRE9NTm9kZSogaW5SZWxhdGVkVGFyZ2V0T2JqQyA9IGluUmVsYXRlZFRhcmdldDsKKyAg
ICBXZWJDb3JlOjpOb2RlKiBpblJlbGF0ZWRUYXJnZXROb2RlID0gY29yZShpblJlbGF0ZWRUYXJn
ZXRPYmpDKTsKKyAgICBJTVBMLT5pbml0TW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGNvcmUodmlldyksIGRldGFpbCwgaW5TY3JlZW5YLCBpblNjcmVlblksIGluQ2xpZW50
WCwgaW5DbGllbnRZLCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXks
IGluQnV0dG9uLCBpblJlbGF0ZWRUYXJnZXROb2RlKTsKK30KKworLSAodm9pZClpbml0TW91c2VF
dmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUg
OihET01BYnN0cmFjdFZpZXcgKil2aWV3IDooaW50KWRldGFpbCA6KGludClpblNjcmVlblggOihp
bnQpaW5TY3JlZW5ZIDooaW50KWluQ2xpZW50WCA6KGludClpbkNsaWVudFkgOihCT09MKWluQ3Ry
bEtleSA6KEJPT0wpaW5BbHRLZXkgOihCT09MKWluU2hpZnRLZXkgOihCT09MKWluTWV0YUtleSA6
KHVuc2lnbmVkIHNob3J0KWluQnV0dG9uIDooaWQgPERPTUV2ZW50VGFyZ2V0PilpblJlbGF0ZWRU
YXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
RE9NTm9kZSogaW5SZWxhdGVkVGFyZ2V0T2JqQyA9IGluUmVsYXRlZFRhcmdldDsKKyAgICBXZWJD
b3JlOjpOb2RlKiBpblJlbGF0ZWRUYXJnZXROb2RlID0gY29yZShpblJlbGF0ZWRUYXJnZXRPYmpD
KTsKKyAgICBJTVBMLT5pbml0TW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IGNvcmUodmlldyksIGRldGFpbCwgaW5TY3JlZW5YLCBpblNjcmVlblksIGluQ2xpZW50WCwgaW5D
bGllbnRZLCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXksIGluQnV0
dG9uLCBpblJlbGF0ZWRUYXJnZXROb2RlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNb3VzZUV2
ZW50KiBjb3JlKERPTU1vdXNlRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIg
PyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok1vdXNlRXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NTW91c2VFdmVudCAqa2l0KFdlYkNvcmU6Ok1vdXNlRXZlbnQqIHZh
bHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PERPTU1vdXNlRXZlbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NTW91c2VFdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU1vdXNlRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYmQ5ZDE1MmIxMzQ0
NzQwYjk5MGFhNmVjNjMyMGMzZjhiZTgzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU1vdXNlRXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01Nb3VzZUV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIE1vdXNlRXZlbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6Ok1vdXNlRXZl
bnQqIGNvcmUoRE9NTW91c2VFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTU1vdXNlRXZlbnQg
KmtpdChXZWJDb3JlOjpNb3VzZUV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NTXV0YXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1YmFkZjhmMWE2MzM5OWRhMmQx
Y2M0NGJlYTExYjY0ZmQ0N2JlNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJD
b3JlL0RPTUV2ZW50Lmg+CisKK0BjbGFzcyBET01Ob2RlOworQGNsYXNzIE5TU3RyaW5nOworCitl
bnVtIHsKKyAgICBET01fTU9ESUZJQ0FUSU9OID0gMSwKKyAgICBET01fQURESVRJT04gPSAyLAor
ICAgIERPTV9SRU1PVkFMID0gMworfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzQpOwor
CitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBET01NdXRhdGlvbkV2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0
cm9uZykgRE9NTm9kZSAqcmVsYXRlZE5vZGU7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqcHJldlZhbHVlOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcg
Km5ld1ZhbHVlOworLSAoTlNTdHJpbmcgKiluZXdWYWx1ZSBOU19SRVRVUk5TX05PVF9SRVRBSU5F
RDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICphdHRyTmFtZTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNob3J0IGF0dHJDaGFuZ2U7CisKKy0gKHZvaWQpaW5p
dE11dGF0aW9uRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxl
IGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSByZWxhdGVkTm9kZTooRE9NTm9kZSAqKXJlbGF0
ZWROb2RlIHByZXZWYWx1ZTooTlNTdHJpbmcgKilwcmV2VmFsdWUgbmV3VmFsdWU6KE5TU3RyaW5n
ICopbmV3VmFsdWUgYXR0ck5hbWU6KE5TU3RyaW5nICopYXR0ck5hbWUgYXR0ckNoYW5nZToodW5z
aWduZWQgc2hvcnQpYXR0ckNoYW5nZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0BlbmQK
KworQGludGVyZmFjZSBET01NdXRhdGlvbkV2ZW50IChET01NdXRhdGlvbkV2ZW50RGVwcmVjYXRl
ZCkKKy0gKHZvaWQpaW5pdE11dGF0aW9uRXZlbnQ6KE5TU3RyaW5nICopdHlwZSA6KEJPT0wpY2Fu
QnViYmxlIDooQk9PTCljYW5jZWxhYmxlIDooRE9NTm9kZSAqKXJlbGF0ZWROb2RlIDooTlNTdHJp
bmcgKilwcmV2VmFsdWUgOihOU1N0cmluZyAqKW5ld1ZhbHVlIDooTlNTdHJpbmcgKilhdHRyTmFt
ZSA6KHVuc2lnbmVkIHNob3J0KWF0dHJDaGFuZ2UgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzQs
IDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01NdXRhdGlvbkV2ZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01NdXRh
dGlvbkV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOTFlOWYwNjE1Zjc5MTcyNzhlZTI1NzZlOGE2NzA5
MmQyYjdlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTU11dGF0aW9uRXZlbnQubW0KQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01NdXRhdGlvbkV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRXZlbnRJbnRl
cm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJN
dXRhdGlvbkV2ZW50LmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5o
IgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisj
aW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpNdXRhdGlvbkV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRl
cm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01NdXRhdGlvbkV2ZW50CisKKy0gKERPTU5vZGUg
KilyZWxhdGVkTm9kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnJlbGF0ZWROb2RlKCkpKTsKK30K
KworLSAoTlNTdHJpbmcgKilwcmV2VmFsdWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnByZXZWYWx1ZSgpOworfQorCistIChO
U1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5uZXdWYWx1ZSgpOworfQorCistIChOU1N0cmluZyAq
KWF0dHJOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5hdHRyTmFtZSgpOworfQorCistICh1bnNpZ25lZCBzaG9ydClhdHRy
Q2hhbmdlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5hdHRyQ2hhbmdlKCk7Cit9CisKKy0gKHZvaWQpaW5pdE11dGF0aW9uRXZl
bnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6
KEJPT0wpY2FuY2VsYWJsZSByZWxhdGVkTm9kZTooRE9NTm9kZSAqKWluUmVsYXRlZE5vZGUgcHJl
dlZhbHVlOihOU1N0cmluZyAqKWluUHJldlZhbHVlIG5ld1ZhbHVlOihOU1N0cmluZyAqKWluTmV3
VmFsdWUgYXR0ck5hbWU6KE5TU3RyaW5nICopaW5BdHRyTmFtZSBhdHRyQ2hhbmdlOih1bnNpZ25l
ZCBzaG9ydClpbkF0dHJDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBj
YW5jZWxhYmxlLCBjb3JlKGluUmVsYXRlZE5vZGUpLCBpblByZXZWYWx1ZSwgaW5OZXdWYWx1ZSwg
aW5BdHRyTmFtZSwgaW5BdHRyQ2hhbmdlKTsKK30KKworLSAodm9pZClpbml0TXV0YXRpb25FdmVu
dDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUgOihE
T01Ob2RlICopaW5SZWxhdGVkTm9kZSA6KE5TU3RyaW5nICopaW5QcmV2VmFsdWUgOihOU1N0cmlu
ZyAqKWluTmV3VmFsdWUgOihOU1N0cmluZyAqKWluQXR0ck5hbWUgOih1bnNpZ25lZCBzaG9ydClp
bkF0dHJDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+aW5pdE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxl
LCBjb3JlKGluUmVsYXRlZE5vZGUpLCBpblByZXZWYWx1ZSwgaW5OZXdWYWx1ZSwgaW5BdHRyTmFt
ZSwgaW5BdHRyQ2hhbmdlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNdXRhdGlvbkV2ZW50KiBj
b3JlKERPTU11dGF0aW9uRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok11dGF0aW9uRXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NTXV0YXRpb25FdmVudCAqa2l0KFdlYkNvcmU6Ok11dGF0aW9uRXZl
bnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTU11dGF0aW9uRXZlbnQqPihraXQoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NTXV0YXRpb25FdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiZjRkOTY0Yjg5ZmE2Zjg0ZjRlNGFlMGVhY2U4OTg1NDdjZTAxMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnRJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01NdXRhdGlvbkV2ZW50Lmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE11dGF0aW9uRXZlbnQ7Cit9CisKK1dFQkNPUkVf
RVhQT1JUIFdlYkNvcmU6Ok11dGF0aW9uRXZlbnQqIGNvcmUoRE9NTXV0YXRpb25FdmVudCAqKTsK
K1dFQkNPUkVfRVhQT1JUIERPTU11dGF0aW9uRXZlbnQgKmtpdChXZWJDb3JlOjpNdXRhdGlvbkV2
ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NT3ZlcmZsb3dFdmVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU2YWVkNDlmMDQwOWYwYzBlMzkyYmU1YjI5M2ZmMmQwMTAyN2YwMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50Lmg+CisKK2Vu
dW0geworICAgIERPTV9IT1JJWk9OVEFMID0gMCwKKyAgICBET01fVkVSVElDQUwgPSAxLAorICAg
IERPTV9CT1RIID0gMgorfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzUpOworCitXRUJL
SVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBE
T01PdmVyZmxvd0V2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVk
IHNob3J0IG9yaWVudDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgaG9yaXpvbnRhbE92ZXJm
bG93OworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB2ZXJ0aWNhbE92ZXJmbG93OworCistICh2
b2lkKWluaXRPdmVyZmxvd0V2ZW50Oih1bnNpZ25lZCBzaG9ydClvcmllbnQgaG9yaXpvbnRhbE92
ZXJmbG93OihCT09MKWhvcml6b250YWxPdmVyZmxvdyB2ZXJ0aWNhbE92ZXJmbG93OihCT09MKXZl
cnRpY2FsT3ZlcmZsb3c7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU92ZXJmbG93RXZlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTU92ZXJmbG93RXZlbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRjN2EwM2NiNDVlMjYxNWNlNzFkYTYw
MDc2NmM0ODdiNGQ0ODM2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NT3ZlcmZsb3dFdmVudC5tbQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01F
dmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4
Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNp
bXBvcnQgIk92ZXJmbG93RXZlbnQuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpPdmVyZmxvd0V2ZW50Kj4ocmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBE
T01PdmVyZmxvd0V2ZW50CisKKy0gKHVuc2lnbmVkIHNob3J0KW9yaWVudAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+b3JpZW50
KCk7Cit9CisKKy0gKEJPT0wpaG9yaXpvbnRhbE92ZXJmbG93Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5ob3Jpem9udGFsT3Zl
cmZsb3coKTsKK30KKworLSAoQk9PTCl2ZXJ0aWNhbE92ZXJmbG93Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52ZXJ0aWNhbE92
ZXJmbG93KCk7Cit9CisKKy0gKHZvaWQpaW5pdE92ZXJmbG93RXZlbnQ6KHVuc2lnbmVkIHNob3J0
KWluT3JpZW50IGhvcml6b250YWxPdmVyZmxvdzooQk9PTClpbkhvcml6b250YWxPdmVyZmxvdyB2
ZXJ0aWNhbE92ZXJmbG93OihCT09MKWluVmVydGljYWxPdmVyZmxvdworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0T3ZlcmZsb3dFdmVu
dChpbk9yaWVudCwgaW5Ib3Jpem9udGFsT3ZlcmZsb3csIGluVmVydGljYWxPdmVyZmxvdyk7Cit9
CisKK0BlbmQKKworV2ViQ29yZTo6T3ZlcmZsb3dFdmVudCogY29yZShET01PdmVyZmxvd0V2ZW50
ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpPdmVyZmxvd0V2ZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTU92
ZXJmbG93RXZlbnQgKmtpdChXZWJDb3JlOjpPdmVyZmxvd0V2ZW50KiB2YWx1ZSkKK3sKKyAgICBX
ZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxET01PdmVyZmxvd0V2ZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50Kj4o
dmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTcwNWE5MDk0Y2RiYTU5MmMy
MDdkNGQzNTQ1YWJjNWY3ZWY3YmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNp
bXBvcnQgPFdlYkNvcmUvRE9NT3ZlcmZsb3dFdmVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBPdmVyZmxvd0V2ZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpPdmVy
Zmxvd0V2ZW50KiBjb3JlKERPTU92ZXJmbG93RXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01P
dmVyZmxvd0V2ZW50ICpraXQoV2ViQ29yZTo6T3ZlcmZsb3dFdmVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2I2
OTc2OGUzNTgyYzE0MWUxOTEwY2VkMzVkYjk4OGRmNTQ1ZGEzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50LmgKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxF
X01BQygxMF82KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01Qcm9ncmVzc0V2ZW50IDog
RE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgbGVuZ3RoQ29tcHV0YWJsZTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQ7CitAcHJvcGVydHkg
KHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWw7CitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Ri
N2Y1Njk4MzI3YWZlZTE3NmUzZDcyMGFlYmEyOTg5NDk4YjY1NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudC5tbQpAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVByb2dyZXNzRXZlbnRJbnRlcm5h
bC5oIgorCisjaW1wb3J0ICJET01FdmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlByb2dyZXNzRXZlbnQuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0
IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpQcm9n
cmVzc0V2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01Qcm9ncmVzc0V2ZW50CisKKy0gKEJPT0wpbGVuZ3RoQ29t
cHV0YWJsZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+bGVuZ3RoQ29tcHV0YWJsZSgpOworfQorCistICh1bnNpZ25lZCBsb25n
IGxvbmcpbG9hZGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sb2FkZWQoKTsKK30KKworLSAodW5zaWduZWQgbG9uZyBsb25n
KXRvdGFsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT50b3RhbCgpOworfQorCitAZW5kCisKK1dlYkNvcmU6OlByb2dyZXNzRXZl
bnQqIGNvcmUoRE9NUHJvZ3Jlc3NFdmVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBl
ciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UHJvZ3Jlc3NFdmVudCo+KHdyYXBwZXItPl9p
bnRlcm5hbCkgOiAwOworfQorCitET01Qcm9ncmVzc0V2ZW50ICpraXQoV2ViQ29yZTo6UHJvZ3Jl
c3NFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRP
bmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NUHJvZ3Jlc3NFdmVudCo+KGtpdChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudEludGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDY2MGVkOTNhODFjODEyMDVmOGE0MDg5NTVlZTkxNDc5NzIwMjYzNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudElu
dGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVByb2dyZXNzRXZlbnQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvZ3Jlc3NFdmVudDsKK30KKworV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6UHJvZ3Jlc3NFdmVudCogY29yZShET01Qcm9ncmVzc0V2ZW50
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NUHJvZ3Jlc3NFdmVudCAqa2l0KFdlYkNvcmU6OlByb2dy
ZXNzRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
UkdCQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45NGZiZDJjMGNhNGE1NjZjNjQ1YjJiZTQ3ODFhOGIyYjk3MjZiMTljCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SR0JDb2xvci5o
CkBAIC0wLDAgKzEsNDIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01D
U1NQcmltaXRpdmVWYWx1ZTsKK0BjbGFzcyBOU0NvbG9yOworCitXRUJLSVRfQ0xBU1NfQVZBSUxB
QkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01SR0JDb2xvciA6IERP
TU9iamVjdAorQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRpdmVWYWx1
ZSAqcmVkOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRpdmVWYWx1
ZSAqZ3JlZW47CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1ByaW1pdGl2ZVZh
bHVlICpibHVlOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRpdmVW
YWx1ZSAqYWxwaGE7CisjaWYgIVRBUkdFVF9PU19JUEhPTkUKK0Bwcm9wZXJ0eSAocmVhZG9ubHks
IGNvcHkpIE5TQ29sb3IgKmNvbG9yIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworI2Vsc2UK
Ky0gKENHQ29sb3JSZWYpY29sb3I7CisjZW5kaWYKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4NjMwOTE5ZjQ4NDk1ZTY5OWNm
MWJmMzNjOGYzYmMxYzA4ZTA0ODQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tCkBAIC0wLDAgKzEsMTE4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTVJHQkNvbG9ySW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTUHJpbWl0
aXZlVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwuaCIKKyNp
bXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBv
cnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUu
aCIKKyNpbXBvcnQgIlJHQkNvbG9yLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9y
dCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUu
aCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKyNpbXBvcnQg
IkNvbG9yTWFjLmgiCisjZWxzZQorI2ltcG9ydCAiQ29sb3JTcGFjZS5oIgorI2VuZGlmCisKKyNk
ZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJHQkNvbG9yKj4oX2ludGVybmFs
KQorCitAaW1wbGVtZW50YXRpb24gRE9NUkdCQ29sb3IKKworLSAodm9pZClkZWFsbG9jCit7Cisg
ICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01SR0JD
b2xvciBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFs
KQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
RE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilyZWQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5yZWQoKSkp
OworfQorCistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWdyZWVuCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIo
SU1QTC0+Z3JlZW4oKSkpOworfQorCistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWJsdWUKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtp
dChXVEY6OmdldFB0cihJTVBMLT5ibHVlKCkpKTsKK30KKworLSAoRE9NQ1NTUHJpbWl0aXZlVmFs
dWUgKilhbHBoYQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmFscGhhKCkpKTsKK30KKworI2lmIFBM
QVRGT1JNKE1BQykKKy0gKE5TQ29sb3IgKiljb2xvcgoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gV2ViQ29yZTo6bnNDb2xvcihJTVBMLT5j
b2xvcigpKTsKK30KKyNlbHNlCistIChDR0NvbG9yUmVmKWNvbG9yCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBXZWJDb3JlOjpjYWNoZWRD
R0NvbG9yKElNUEwtPmNvbG9yKCkpOworfQorI2VuZGlmCisKK0BlbmQKKworV2ViQ29yZTo6UkdC
Q29sb3IqIGNvcmUoRE9NUkdCQ29sb3IgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIg
PyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJHQkNvbG9yKj4od3JhcHBlci0+X2ludGVybmFs
KSA6IDA7Cit9CisKK0RPTVJHQkNvbG9yICpraXQoV2ViQ29yZTo6UkdCQ29sb3IqIHZhbHVlKQor
eworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgaWYgKCF2
YWx1ZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBpZiAoRE9NUkdCQ29sb3IgKndyYXBwZXIg
PSBnZXRET01XcmFwcGVyKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5d
IGF1dG9yZWxlYXNlXTsKKyAgICBET01SR0JDb2xvciAqd3JhcHBlciA9IFtbRE9NUkdCQ29sb3Ig
YWxsb2NdIF9pbml0XTsKKyAgICB3cmFwcGVyLT5faW50ZXJuYWwgPSByZWludGVycHJldF9jYXN0
PERPTU9iamVjdEludGVybmFsKj4odmFsdWUpOworICAgIHZhbHVlLT5yZWYoKTsKKyAgICBhZGRE
T01XcmFwcGVyKHdyYXBwZXIsIHZhbHVlKTsKKyAgICByZXR1cm4gW3dyYXBwZXIgYXV0b3JlbGVh
c2VdOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SR0JD
b2xvckludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9y
SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmU3NjE1NDgyZjgzYzhhNTI2MDE2YWQ1ZDlhMjk1ZDBj
Njc1N2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01SR0JDb2xvckludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01SR0JD
b2xvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSR0JDb2xvcjsKK30KKworV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6UkdCQ29sb3IqIGNvcmUoRE9NUkdCQ29sb3IgKik7CitXRUJD
T1JFX0VYUE9SVCBET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6OlJHQkNvbG9yKik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3QuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NUmVjdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4ZGUzMjgzMDg3NmMxMzcy
MDE4ZjBhNzhhZjQyMzViYmE4ODNmM2UKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3QuaApAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TU9iamVjdC5oPgorCitAY2xhc3MgRE9NQ1NTUHJpbWl0aXZlVmFsdWU7CisKK1dFQktJVF9DTEFT
U19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVJlY3Qg
OiBET01PYmplY3QKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NQ1NTUHJpbWl0aXZl
VmFsdWUgKnRvcDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NQ1NTUHJpbWl0aXZl
VmFsdWUgKnJpZ2h0OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmltaXRp
dmVWYWx1ZSAqYm90dG9tOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01DU1NQcmlt
aXRpdmVWYWx1ZSAqbGVmdDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NUmVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUmVj
dC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lYWQ5Yjc0N2VhMmM2MjRlYjhlN2Y1NTNjNjI5YmY0ZDM4YTExOTRm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SZWN0
Lm1tCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NUmVjdEludGVy
bmFsLmgiCisKKyNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlLmgiCisjaW1wb3J0ICJET01DU1NQ
cmltaXRpdmVWYWx1ZUludGVybmFsLmgiCisjaW1wb3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2lt
cG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJSZWN0LmgiCisjaW1wb3J0
ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQg
IldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2Rl
ZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UmVjdCo+KF9pbnRlcm5hbCkKKwor
QGltcGxlbWVudGF0aW9uIERPTVJlY3QKKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdl
YkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01SZWN0IGNsYXNzXSwg
c2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElN
UEwtPmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChET01DU1NQcmltaXRp
dmVWYWx1ZSAqKXRvcAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRvcCgpKSk7Cit9CisKKy0gKERP
TUNTU1ByaW1pdGl2ZVZhbHVlICopcmlnaHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5yaWdodCgp
KSk7Cit9CisKKy0gKERPTUNTU1ByaW1pdGl2ZVZhbHVlICopYm90dG9tCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQ
dHIoSU1QTC0+Ym90dG9tKCkpKTsKK30KKworLSAoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilsZWZ0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bGVmdCgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6
UmVjdCogY29yZShET01SZWN0ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVp
bnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSZWN0Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9
CisKK0RPTVJlY3QgKmtpdChXZWJDb3JlOjpSZWN0KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhy
ZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJl
dHVybiBuaWw7CisgICAgaWYgKERPTVJlY3QgKndyYXBwZXIgPSBnZXRET01XcmFwcGVyKHZhbHVl
KSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsKKyAgICBE
T01SZWN0ICp3cmFwcGVyID0gW1tET01SZWN0IGFsbG9jXSBfaW5pdF07CisgICAgd3JhcHBlci0+
X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZhbHVlKTsK
KyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVyLCB2YWx1ZSk7Cisg
ICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUmVjdEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU5NGVhYzBhYTMwMzdh
NDNhYjFkNzBjZjI2ZmFlMzg0MjA3ZWE1YjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
PFdlYkNvcmUvRE9NUmVjdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBSZWN0Owor
fQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpSZWN0KiBjb3JlKERPTVJlY3QgKik7CitXRUJD
T1JFX0VYUE9SVCBET01SZWN0ICpraXQoV2ViQ29yZTo6UmVjdCopOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWQ1Y2M2YmI1MmE4ZDRm
NjJmM2ZjODVlNGU5ZDBhYTgxYzAzYTQzMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50LmgKQEAgLTAsMCArMSwzNiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2Vi
Q29yZS9ET01VSUV2ZW50Lmg+CisKK0BjbGFzcyBET01BYnN0cmFjdFZpZXc7CitAY2xhc3MgTlNT
dHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDk4NzZfNSkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NVGV4dEV2ZW50IDogRE9NVUlFdmVudAorQHByb3BlcnR5IChyZWFk
b25seSwgY29weSkgTlNTdHJpbmcgKmRhdGE7CisKKy0gKHZvaWQpaW5pdFRleHRFdmVudDooTlNT
dHJpbmcgKil0eXBlQXJnIGNhbkJ1YmJsZUFyZzooQk9PTCljYW5CdWJibGVBcmcgY2FuY2VsYWJs
ZUFyZzooQk9PTCljYW5jZWxhYmxlQXJnIHZpZXdBcmc6KERPTUFic3RyYWN0VmlldyAqKXZpZXdB
cmcgZGF0YUFyZzooTlNTdHJpbmcgKilkYXRhQXJnOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xN2UxY2YyZTFhZTJlYWFk
MTFhYzM3ZjAzZDc2MGRlYjE5ZjI5YzZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQubW0KQEAgLTAsMCArMSw2OCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJET01UZXh0RXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01B
YnN0cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5oIgorI2lt
cG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01XaW5kb3cuaCIKKyNpbXBvcnQg
IkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIK
KyNpbXBvcnQgIlRleHRFdmVudC5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQg
IlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3Rm
L0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6VGV4dEV2ZW50
Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkpCisKK0BpbXBs
ZW1lbnRhdGlvbiBET01UZXh0RXZlbnQKKworLSAoTlNTdHJpbmcgKilkYXRhCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5kYXRh
KCk7Cit9CisKKy0gKHZvaWQpaW5pdFRleHRFdmVudDooTlNTdHJpbmcgKil0eXBlQXJnIGNhbkJ1
YmJsZUFyZzooQk9PTCljYW5CdWJibGVBcmcgY2FuY2VsYWJsZUFyZzooQk9PTCljYW5jZWxhYmxl
QXJnIHZpZXdBcmc6KERPTUFic3RyYWN0VmlldyAqKXZpZXdBcmcgZGF0YUFyZzooTlNTdHJpbmcg
KilkYXRhQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPmluaXRUZXh0RXZlbnQodHlwZUFyZywgY2FuQnViYmxlQXJnLCBjYW5jZWxhYmxl
QXJnLCBjb3JlKHZpZXdBcmcpLCBkYXRhQXJnKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpUZXh0
RXZlbnQqIGNvcmUoRE9NVGV4dEV2ZW50ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVy
ID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpUZXh0RXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NVGV4dEV2ZW50ICpraXQoV2ViQ29yZTo6VGV4dEV2ZW50KiB2YWx1
ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxET01UZXh0RXZlbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NVGV4dEV2ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMzMxNzRmZWNhNTkzNGNmMGM2
YjAxMjJiZGMxNzYyNDAyNWM4ZTQ1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICog
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkK
KyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2ltcG9y
dCA8V2ViQ29yZS9ET01UZXh0RXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
VGV4dEV2ZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpUZXh0RXZlbnQqIGNvcmUo
RE9NVGV4dEV2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NVGV4dEV2ZW50ICpraXQoV2ViQ29y
ZTo6VGV4dEV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTVVJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlFdmVudC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmQ5NGZlYmY2NDY5YTQ2MTY1YTk1ZTA4YzhmOWZjMmNiZGI0MGMwN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQu
aApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50Lmg+CisKK0BjbGFzcyBET01B
YnN0cmFjdFZpZXc7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVf
TUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVVJRXZlbnQgOiBET01FdmVu
dAorQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01BYnN0cmFjdFZpZXcgKnZpZXc7CitA
cHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgZGV0YWlsOworQHByb3BlcnR5IChyZWFkb25seSkgaW50
IGtleUNvZGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5
KSBpbnQgY2hhckNvZGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSBpbnQgbGF5ZXJYIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF81LCAxMF81KTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIGludCBsYXllclkgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUs
IDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHBhZ2VYIFdFQktJVF9BVkFJTEFCTEVf
TUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHBhZ2VZIFdFQktJVF9BVkFJTEFC
TEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHdoaWNoIFdFQktJVF9BVkFJ
TEFCTEVfTUFDKDEwXzUpOworCistICh2b2lkKWluaXRVSUV2ZW50OihOU1N0cmluZyAqKXR5cGUg
Y2FuQnViYmxlOihCT09MKWNhbkJ1YmJsZSBjYW5jZWxhYmxlOihCT09MKWNhbmNlbGFibGUgdmll
dzooRE9NQWJzdHJhY3RWaWV3ICopdmlldyBkZXRhaWw6KGludClkZXRhaWwgV0VCS0lUX0FWQUlM
QUJMRV9NQUMoMTBfNSk7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9NVUlFdmVudCAoRE9NVUlFdmVu
dERlcHJlY2F0ZWQpCistICh2b2lkKWluaXRVSUV2ZW50OihOU1N0cmluZyAqKXR5cGUgOihCT09M
KWNhbkJ1YmJsZSA6KEJPT0wpY2FuY2VsYWJsZSA6KERPTUFic3RyYWN0VmlldyAqKXZpZXcgOihp
bnQpZGV0YWlsIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlFdmVudC5tbSBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZGRmOTVh
ODBiNDY3NDBkZTI4Y2JhNWMxYTdjZmU2M2IzMjI5ZDQzCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTIyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVVJRXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0
ICJET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5o
IgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01XaW5kb3cuaCIKKyNp
bXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3Rh
dGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVSUV2ZW50LmgiCisjaW1w
b3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQg
PHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OlVJRXZl
bnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkV2ZW50Kj4oX2ludGVybmFsKSkKKworQGlt
cGxlbWVudGF0aW9uIERPTVVJRXZlbnQKKworLSAoRE9NQWJzdHJhY3RWaWV3ICopdmlldworewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0
KFdURjo6Z2V0UHRyKElNUEwtPnZpZXcoKSkpOworfQorCistIChpbnQpZGV0YWlsCit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5k
ZXRhaWwoKTsKK30KKworLSAoaW50KWtleUNvZGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUNvZGUoKTsKK30KKworLSAo
aW50KWNoYXJDb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5jaGFyQ29kZSgpOworfQorCistIChpbnQpbGF5ZXJYCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5sYXllclgoKTsKK30KKworLSAoaW50KWxheWVyWQoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bGF5ZXJZKCk7Cit9CisKKy0g
KGludClwYWdlWAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4gSU1QTC0+cGFnZVgoKTsKK30KKworLSAoaW50KXBhZ2VZCit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5wYWdl
WSgpOworfQorCistIChpbnQpd2hpY2gKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndoaWNoKCk7Cit9CisKKy0gKHZvaWQpaW5p
dFVJRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNl
bGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcgKilpblZpZXcgZGV0
YWlsOihpbnQpaW5EZXRhaWwKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgSU1QTC0+aW5pdFVJRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxl
LCBjb3JlKGluVmlldyksIGluRGV0YWlsKTsKK30KKworLSAodm9pZClpbml0VUlFdmVudDooTlNT
dHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUgOihET01BYnN0
cmFjdFZpZXcgKilpblZpZXcgOihpbnQpaW5EZXRhaWwKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdFVJRXZlbnQodHlwZSwgY2FuQnVi
YmxlLCBjYW5jZWxhYmxlLCBjb3JlKGluVmlldyksIGluRGV0YWlsKTsKK30KKworQGVuZAorCitX
ZWJDb3JlOjpVSUV2ZW50KiBjb3JlKERPTVVJRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJu
IHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlVJRXZlbnQqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NVUlFdmVudCAqa2l0KFdlYkNvcmU6OlVJRXZlbnQqIHZh
bHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PERPTVVJRXZlbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NVUlFdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTVVJRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNDg0ZjRkMWM3ODJkM2JkZDU1YWU2
MTY4NzlhYWE2MzBmZTMyNmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL0RPTVVJRXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2Vi
Q29yZS9ET01VSUV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIFVJRXZlbnQ7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OlVJRXZlbnQqIGNvcmUoRE9NVUlFdmVudCAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTVVJRXZlbnQgKmtpdChXZWJDb3JlOjpVSUV2ZW50Kik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVdoZWVsRXZlbnQuaCBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVudC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjUwYzIxMTliZjRmZGZlMDZlOTYzODMxN2NiZDczZDE2ZGM3OTdlZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVdoZWVsRXZlbnQuaApAQCAtMCww
ICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTU1vdXNlRXZlbnQuaD4KKworQGNsYXNzIERPTUFic3Ry
YWN0VmlldzsKKworZW51bSB7CisgICAgRE9NX0RPTV9ERUxUQV9QSVhFTCA9IDB4MDAsCisgICAg
RE9NX0RPTV9ERUxUQV9MSU5FID0gMHgwMSwKKyAgICBET01fRE9NX0RFTFRBX1BBR0UgPSAweDAy
Cit9IFdFQktJVF9FTlVNX0FWQUlMQUJMRV9NQUMoMTBfNSk7CisKK1dFQktJVF9DTEFTU19BVkFJ
TEFCTEVfTUFDKDEwXzUpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTVdoZWVsRXZlbnQg
OiBET01Nb3VzZUV2ZW50CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgd2hlZWxEZWx0YVggV0VC
S0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgd2hlZWxE
ZWx0YVkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBp
bnQgd2hlZWxEZWx0YTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgaXNIb3Jpem9udGFsOwor
CistICh2b2lkKWluaXRXaGVlbEV2ZW50OihpbnQpd2hlZWxEZWx0YVggd2hlZWxEZWx0YVk6KGlu
dCl3aGVlbERlbHRhWSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IHNjcmVlblg6KGludClz
Y3JlZW5YIHNjcmVlblk6KGludClzY3JlZW5ZIGNsaWVudFg6KGludCljbGllbnRYIGNsaWVudFk6
KGludCljbGllbnRZIGN0cmxLZXk6KEJPT0wpY3RybEtleSBhbHRLZXk6KEJPT0wpYWx0S2V5IHNo
aWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpbWV0YUtleSBXRUJLSVRfQVZBSUxB
QkxFX01BQygxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NV2hlZWxFdmVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
V2hlZWxFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjYzYzE3MmZkMTNlZDU0MmEwMGI5NjExODA3YTkw
ODViNGFkN2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01XaGVlbEV2ZW50Lm1tCkBAIC0wLDAgKzEsMTE1IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIkRPTVdoZWVsRXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01BYnN0cmFjdFZpZXdJ
bnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJET01XaW5kb3cuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhh
bmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0
ICJXaGVlbEV2ZW50LmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpXaGVlbEV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3Jl
OjpFdmVudCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01XaGVlbEV2ZW50CisK
Ky0gKGRvdWJsZSlkZWx0YVgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmRlbHRhWCgpOworfQorCistIChkb3VibGUpZGVsdGFZ
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5kZWx0YVkoKTsKK30KKworLSAoZG91YmxlKWRlbHRhWgoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+ZGVsdGFaKCk7
Cit9CisKKy0gKHVuc2lnbmVkKWRlbHRhTW9kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+ZGVsdGFNb2RlKCk7Cit9CisKKy0g
KGludCl3aGVlbERlbHRhWAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+d2hlZWxEZWx0YVgoKTsKK30KKworLSAoaW50KXdoZWVs
RGVsdGFZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT53aGVlbERlbHRhWSgpOworfQorCistIChpbnQpd2hlZWxEZWx0YQorewor
ICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1Q
TC0+d2hlZWxEZWx0YSgpOworfQorCistIChCT09MKXdlYmtpdERpcmVjdGlvbkludmVydGVkRnJv
bURldmljZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+d2Via2l0RGlyZWN0aW9uSW52ZXJ0ZWRGcm9tRGV2aWNlKCk7Cit9CisK
Ky0gKEJPT0wpaXNIb3Jpem9udGFsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pc0hvcml6b250YWwoKTsKK30KKworLSAodm9p
ZClpbml0V2hlZWxFdmVudDooaW50KWluV2hlZWxEZWx0YVggd2hlZWxEZWx0YVk6KGludClpbldo
ZWVsRGVsdGFZIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcgc2NyZWVuWDooaW50KXNjcmVl
blggc2NyZWVuWTooaW50KXNjcmVlblkgY2xpZW50WDooaW50KWNsaWVudFggY2xpZW50WTooaW50
KWNsaWVudFkgY3RybEtleTooQk9PTCljdHJsS2V5IGFsdEtleTooQk9PTClhbHRLZXkgc2hpZnRL
ZXk6KEJPT0wpc2hpZnRLZXkgbWV0YUtleTooQk9PTCltZXRhS2V5Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRXaGVlbEV2ZW50KGlu
V2hlZWxEZWx0YVgsIGluV2hlZWxEZWx0YVksIGNvcmUodmlldyksIHNjcmVlblgsIHNjcmVlblks
IGNsaWVudFgsIGNsaWVudFksIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpOwor
fQorCitAZW5kCisKK1dlYkNvcmU6OldoZWVsRXZlbnQqIGNvcmUoRE9NV2hlZWxFdmVudCAqd3Jh
cHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
V2hlZWxFdmVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01XaGVlbEV2ZW50
ICpraXQoV2ViQ29yZTo6V2hlZWxFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZp
b2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NV2hlZWxF
dmVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkpOworfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01XaGVlbEV2ZW50SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVudEludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzI3MWMyNDQ4YmNiMGQ3MDM3M2EyYjg0YzI4YzhlNzJkNmRhZTkyYgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NV2hlZWxF
dmVudEludGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVdoZWVsRXZl
bnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgV2hlZWxFdmVudDsKK30KKworV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6V2hlZWxFdmVudCogY29yZShET01XaGVlbEV2ZW50ICopOwor
V0VCQ09SRV9FWFBPUlQgRE9NV2hlZWxFdmVudCAqa2l0KFdlYkNvcmU6OldoZWVsRXZlbnQqKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>285165</attachid>
            <date>2016-08-02 17:03:17 -0700</date>
            <delta_ts>2016-08-02 17:24:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-160476-20160802170155.patch</filename>
            <type>text/plain</type>
            <size>302118</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA0MDQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDg4Y2Q1ZTZkMGRlMGFk
M2IxODM4MDRmYzBkZDI3MDMwYTY5MjU0YS4uOGM4ZmRkN2RlMjg5MjQwOTBhZmM2NzA2N2YzZGFi
YjZjMjk2ZDdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDk3IEBACiAyMDE2LTA4LTAyICBBbmRl
cnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKKyAgICAgICAgRnJlZXplIHRoZSBP
YmplY3RpdmUtQyBET00gRXZlbnQgYW5kIENTUyBiaW5kaW5ncworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTYwNDc2CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU0NoYXJzZXRSdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NQ1NTQ2hhcnNldFJ1bGUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU0ltcG9ydFJ1bGUuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01DU1NJbXBvcnRSdWxlLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU01lZGlhUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNT
U01lZGlhUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NNZWRp
YVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1Bh
Z2VSdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUGFnZVJ1bGUu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUGFnZVJ1bGVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVl
Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWUu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWVJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGUuaDog
QWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlLm1tOiBBZGRlZC4KKyAg
ICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVMaXN0Lmg6IEFkZGVkLgorICAgICAgICAqIGJp
bmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3QubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24uaDogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5tbTogQWRkZWQuCisgICAgICAgICogYmluZGlu
Z3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hlZXQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01DU1NTdHlsZVNoZWV0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUNTU1Vua25vd25SdWxlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMv
RE9NQ1NTVW5rbm93blJ1bGUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9N
Q1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpj
L0RPTUNTU1ZhbHVlLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTVmFs
dWUubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWVJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdC5tbTogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oOiBBZGRl
ZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUNvdW50ZXIuaDogQWRkZWQuCisgICAgICAg
ICogYmluZGluZ3Mvb2JqYy9ET01Db3VudGVyLm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5n
cy9vYmpjL0RPTUNvdW50ZXJJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9v
YmpjL0RPTUV2ZW50Lmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnQu
bW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5hbC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaDogQWRkZWQu
CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01FdmVudFRhcmdldC5oOiBBZGRlZC4KKyAgICAg
ICAgKiBiaW5kaW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnQuaDogQWRkZWQuCisgICAgICAgICog
YmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5k
aW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBi
aW5kaW5ncy9vYmpjL0RPTU1vdXNlRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mv
b2JqYy9ET01Nb3VzZUV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TU1vdXNlRXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RP
TU11dGF0aW9uRXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01NdXRh
dGlvbkV2ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9u
RXZlbnRJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01PdmVyZmxvd0V2
ZW50Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTU92ZXJmbG93RXZlbnRJ
bnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZl
bnQuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50Lm1t
OiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnRJbnRlcm5h
bC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IubW06IEFkZGVkLgorICAgICAg
ICAqIGJpbmRpbmdzL29iamMvRE9NUkdCQ29sb3JJbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTVJlY3QuaDogQWRkZWQuCisgICAgICAgICogYmluZGluZ3Mvb2Jq
Yy9ET01SZWN0Lm1tOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRl
cm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5tbTogQWRkZWQuCisg
ICAgICAgICgtW0RPTVRleHRFdmVudCBkYXRhXSk6CisgICAgICAgICgtW0RPTVRleHRFdmVudCBp
bml0VGV4dEV2ZW50OmNhbkJ1YmJsZUFyZzpjYW5jZWxhYmxlQXJnOnZpZXdBcmc6ZGF0YUFyZzpd
KToKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudEludGVybmFsLmg6IEFkZGVk
LgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NVUlFdmVudC5oOiBBZGRlZC4KKyAgICAgICAg
KiBiaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdz
L29iamMvRE9NVUlFdmVudEludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29i
amMvRE9NV2hlZWxFdmVudC5oOiBBZGRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL0RPTVdo
ZWVsRXZlbnQubW06IEFkZGVkLgorICAgICAgICAqIGJpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVu
dEludGVybmFsLmg6IEFkZGVkLgorCisyMDE2LTA4LTAyICBBbmRlcnMgQ2FybHNzb24gIDxhbmRl
cnNjYUBhcHBsZS5jb20+CisKICAgICAgICAgUmVtb3ZlIG1vcmUgT2JqZWN0aXZlLUMgYmluZGlu
Z3MgdGhhdCBhcmUgbm90IHVzZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MDQ3MwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCBk
OGFhN2ZlNTY5MmUyZDk0Y2UyNTQwYzBjMmUxZmUwYWRjMzI5YTEwLi4xMzUzNjM3MjkzZGIzODZk
MDg0ODlhZjIzMWE4M2YxZTZkOGI3N2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTIzNiwzMCArMjM2LDYgQEAgSlNfQU5EX09CSkNfQklORElOR19JRExTID0gXAogICAgICQo
V2ViQ29yZSkvY3J5cHRvL0NyeXB0b0tleS5pZGwgXAogICAgICQoV2ViQ29yZSkvY3J5cHRvL0Ny
eXB0b0tleVBhaXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL2NyeXB0by9XZWJLaXRTdWJ0bGVDcnlw
dG8uaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NDaGFyc2V0UnVsZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvY3NzL0NTU0ZvbnRGYWNlTG9hZEV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9j
c3MvQ1NTRm9udEZhY2VSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTSW1wb3J0UnVs
ZS5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAotICAgICQoV2Vi
Q29yZSkvY3NzL0NTU1BhZ2VSdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NTdHls
ZURlY2xhcmF0aW9uLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBc
Ci0gICAgJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVTaGVldC5pZGwgXAotICAgICQoV2ViQ29yZSkv
Y3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWUuaWRs
IFwKLSAgICAkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKLSAgICAkKFdlYkNvcmUp
L2Nzcy9Db3VudGVyLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlk
bCBcCi0gICAgJChXZWJDb3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2Nz
cy9Gb250RmFjZVNldC5pZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL01lZGlhUXVlcnlMaXN0Lmlk
bCBcCi0gICAgJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCi0gICAgJChXZWJDb3JlKS9jc3MvUmVjdC5p
ZGwgXAotICAgICQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKICAgICAkKFdlYkNvcmUp
L2RvbS9BdHRyLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vQmVmb3JlVW5sb2FkRXZlbnQuaWRs
IFwKICAgICAkKFdlYkNvcmUpL2RvbS9DREFUQVNlY3Rpb24uaWRsIFwKQEAgLTI4NywxNiArMjYz
LDEwIEBAIEpTX0FORF9PQkpDX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNvcmUpL2RvbS9F
bnRpdHkuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9FbnRpdHlSZWZlcmVuY2UuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL2RvbS9FcnJvckV2ZW50LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20vRXZl
bnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9FdmVudExpc3RlbmVyLmlkbCBcCi0gICAgJChX
ZWJDb3JlKS9kb20vRXZlbnRUYXJnZXQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Gb2N1c0V2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vR2xvYmFsRXZlbnRIYW5kbGVycy5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL0hhc2hDaGFuZ2VFdmVudC5pZGwgXAotICAgICQoV2ViQ29yZSkv
ZG9tL0tleWJvYXJkRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9NZXNzYWdlQ2hhbm5l
bC5pZGwgXAotICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNv
cmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vTXV0YXRpb25P
YnNlcnZlci5pZGwgXAogICAgICQoV2ViQ29yZSkvZG9tL011dGF0aW9uUmVjb3JkLmlkbCBcCiAg
ICAgJChXZWJDb3JlKS9kb20vTmFtZWROb2RlTWFwLmlkbCBcCkBAIC0zMDQsMjIgKzI3NCwxNiBA
QCBKU19BTkRfT0JKQ19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9kb20vTm9kZUxp
c3QuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9Ob25FbGVtZW50UGFyZW50Tm9kZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvZG9tL05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZS5pZGwgXAotICAgICQo
V2ViQ29yZSkvZG9tL092ZXJmbG93RXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9QYXJl
bnROb2RlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUG9wU3RhdGVFdmVudC5pZGwgXAogICAg
ICQoV2ViQ29yZSkvZG9tL1Byb2Nlc3NpbmdJbnN0cnVjdGlvbi5pZGwgXAotICAgICQoV2ViQ29y
ZSkvZG9tL1Byb2dyZXNzRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vUmVxdWVzdEFuaW1hdGlvbkZyYW1lQ2FsbGJh
Y2suaWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9TZWN1cml0eVBvbGljeVZpb2xhdGlvbkV2ZW50
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vU2hhZG93Um9vdC5pZGwgXAogICAgICQoV2ViQ29y
ZSkvZG9tL1Nsb3RhYmxlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vU3RyaW5nQ2FsbGJhY2su
aWRsIFwKICAgICAkKFdlYkNvcmUpL2RvbS9UZXh0LmlkbCBcCi0gICAgJChXZWJDb3JlKS9kb20v
VGV4dEV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vVHJlZVdhbGtlci5pZGwgXAotICAg
ICQoV2ViQ29yZSkvZG9tL1VJRXZlbnQuaWRsIFwKLSAgICAkKFdlYkNvcmUpL2RvbS9XaGVlbEV2
ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9kb20vWE1MRG9jdW1lbnQuaWRsIFwKICAgICAkKFdl
YkNvcmUpL2ZpbGVhcGkvRmlsZUV4Y2VwdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvZmlsZWFw
aS9GaWxlUmVhZGVyLmlkbCBcCkBAIC00NTUsMTQgKzQxOSwzOCBAQCBKU19BTkRfT0JKQ19CSU5E
SU5HX0lETFMgPSBcCiAjCiAKIEpTX09OTFlfQklORElOR19JRExTID0gXAorCSQoV2ViQ29yZSkv
Y3NzL0NTU0NoYXJzZXRSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTRm9udEZhY2VMb2Fk
RXZlbnQuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9DU1NGb250RmFjZVJ1bGUuaWRsIFwKKwkkKFdl
YkNvcmUpL2Nzcy9DU1NJbXBvcnRSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJh
bWVSdWxlLmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvQ1NTS2V5ZnJhbWVzUnVsZS5pZGwgXAorCSQo
V2ViQ29yZSkvY3NzL0NTU01lZGlhUnVsZS5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL0NTU1BhZ2VS
dWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaWRsIFwKKwkkKFdl
YkNvcmUpL2Nzcy9DU1NSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTUnVsZUxpc3QuaWRs
IFwKKwkkKFdlYkNvcmUpL2Nzcy9DU1NTdHlsZURlY2xhcmF0aW9uLmlkbCBcCisJJChXZWJDb3Jl
KS9jc3MvQ1NTU3R5bGVSdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTU3R5bGVTaGVldC5p
ZGwgXAogCSQoV2ViQ29yZSkvY3NzL0NTU1N1cHBvcnRzUnVsZS5pZGwgXAorCSQoV2ViQ29yZSkv
Y3NzL0NTU1Vua25vd25SdWxlLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvQ1NTVmFsdWUuaWRsIFwK
KwkkKFdlYkNvcmUpL2Nzcy9DU1NWYWx1ZUxpc3QuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9Db3Vu
dGVyLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmlkbCBcCisJJChXZWJD
b3JlKS9jc3MvRm9udEZhY2UuaWRsIFwKKwkkKFdlYkNvcmUpL2Nzcy9Gb250RmFjZVNldC5pZGwg
XAogCSQoV2ViQ29yZSkvY3NzL01lZGlhTGlzdC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL01lZGlh
UXVlcnlMaXN0LmlkbCBcCisJJChXZWJDb3JlKS9jc3MvTWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5p
ZGwgXAorCSQoV2ViQ29yZSkvY3NzL1JHQkNvbG9yLmlkbCBcCisJJChXZWJDb3JlKS9jc3MvUmVj
dC5pZGwgXAorCSQoV2ViQ29yZSkvY3NzL1N0eWxlTWVkaWEuaWRsIFwKIAkkKFdlYkNvcmUpL2Nz
cy9TdHlsZVNoZWV0LmlkbCBcCiAJJChXZWJDb3JlKS9jc3MvU3R5bGVTaGVldExpc3QuaWRsIFwK
LSAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NNYXRyaXguaWRsIFwKICAgICAkKFdlYkNvcmUp
L2Nzcy9XZWJLaXRDU1NGaWx0ZXJWYWx1ZS5pZGwgXAorICAgICQoV2ViQ29yZSkvY3NzL1dlYktp
dENTU01hdHJpeC5pZGwgXAogICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1JlZ2lvblJ1bGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL2Nzcy9XZWJLaXRDU1NUcmFuc2Zvcm1WYWx1ZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvY3NzL1dlYktpdENTU1ZpZXdwb3J0UnVsZS5pZGwgXApAQCAtNDgwLDYg
KzQ2OCwxOCBAQCBKU19PTkxZX0JJTkRJTkdfSURMUyA9IFwKIAkkKFdlYkNvcmUpL2RvbS9XZWJL
aXRBbmltYXRpb25FdmVudC5pZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdE5hbWVkRmxvdy5p
ZGwgXAogCSQoV2ViQ29yZSkvZG9tL1dlYktpdFRyYW5zaXRpb25FdmVudC5pZGwgXAorICAgICQo
V2ViQ29yZSkvZG9tL0V2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vRXZlbnRMaXN0ZW5l
ci5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL0V2ZW50VGFyZ2V0LmlkbCBcCisgICAgJChXZWJD
b3JlKS9kb20vS2V5Ym9hcmRFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL01vdXNlRXZl
bnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9NdXRhdGlvbkV2ZW50LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9kb20vT3ZlcmZsb3dFdmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1Byb2dy
ZXNzRXZlbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL2RvbS9Qcm9ncmVzc0V2ZW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS9kb20vVGV4dEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9kb20vVUlF
dmVudC5pZGwgXAorICAgICQoV2ViQ29yZSkvZG9tL1doZWVsRXZlbnQuaWRsIFwKIAkkKFdlYkNv
cmUpL2ZpbGVhcGkvQmxvYi5pZGwgXAogCSQoV2ViQ29yZSkvZmlsZWFwaS9GaWxlLmlkbCBcCiAJ
JChXZWJDb3JlKS9maWxlYXBpL0ZpbGVFcnJvci5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDc4NTM2NTdlOTU4Y2M0MWM3
OGVhYzk2ZTAyMmEwM2RmMGY3ZTQyOTguLmZlZDVhM2M5MDI4ZDdhNjkwZjgxYWRiOGUyOWM3MGI3
NDkwN2JlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTEwNjAsNiArMTA2MCw3IEBACiAJCTFBRjhFMTFBMTI1NjU5MjYwMDIz
MEZGNyAvKiBQcm94eVNlcnZlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMUFGOEUxMTkxMjU2NTkyNjAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUFGOEUxMzMx
MjU2NUE0NDAwMjMwRkY3IC8qIFByb3h5U2VydmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRjhFMTMyMTI1NjVBNDQwMDIzMEZGNyAvKiBQcm94
eVNlcnZlci5jcHAgKi87IH07CiAJCTFBRjhFMUMzMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNl
cnZlckNGTmV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDFBRjhFMUMxMTI1NjczRTAwMDIzMEZGNyAvKiBQcm94eVNlcnZlckNGTmV0LmNwcCAqLzsg
fTsKKwkJMUFGQzZEMkExRDUxNjA5ODAwQTQyRkExIC8qIERPTVRleHRFdmVudEludGVybmFsLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI5QUIwNzBD
Qjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJMUFGRTEx
OTkwQ0JGRkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUZFMTE5NzBDQkZGQ0M0MDAz
MDE3RkEgLyogSlNTUUxSZXN1bHRTZXRSb3dMaXN0LmNwcCAqLzsgfTsKIAkJMUFGRTExOUEwQ0JG
RkNDNDAwMzAxN0ZBIC8qIEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFGRTExOTgwQ0JGRkNDNDAwMzAxN0ZBIC8q
IEpTU1FMUmVzdWx0U2V0Um93TGlzdC5oICovOyB9OwogCQkxQjEyNEQ4RDFEMzgwQjcwMDBFQ0RG
QjAgLyogTWVkaWFTYW1wbGVBVkZPYmpDLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAxQjEyNEQ4QzFEMzgwQjcwMDBFQ0RGQjAgLyogTWVkaWFTYW1wbGVB
VkZPYmpDLmggKi87IH07CkBAIC0zMTEyLDI1ICszMTEzLDI1IEBACiAJCTg1MDMxQjRGMEE0NEVG
QzcwMEY5OTJFMCAvKiBVSUV2ZW50V2l0aEtleVN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMUIzOTBBNDRFRkM3MDBGOTkyRTAgLyogVUlF
dmVudFdpdGhLZXlTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTg1MDMxQjUwMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMxQjNBMEE0
NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50LmNwcCAqLzsgfTsKIAkJODUwMzFCNTEwQTQ0RUZD
NzAwRjk5MkUwIC8qIFdoZWVsRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50Lmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODUwMzJE
RDcwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTQ2hhcnNldFJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERDcwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU0NoYXJzZXRSdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMkRDMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NTAzMkREODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDNDBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTQ2hhcnNldFJ1bGUubW0gKi87IH07Ci0JCTg1MDMyREQ5MEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NGb250RmFjZVJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREM1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NG
b250RmFjZVJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERDkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U0ZvbnRGYWNlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzJEQzUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1MDMyRERB
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NGb250RmFjZVJ1bGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDNjBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTRm9udEZhY2VSdWxlLm1tICovOyB9OwotCQk4NTAzMkREQjBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODUwMzJEQzcwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1
bGUuaCAqLzsgfTsKKwkJODUwMzJEREIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ltcG9ydFJ1
bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMy
REM3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzJEREMwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0ltcG9ydFJ1bGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0
UnVsZS5tbSAqLzsgfTsKLQkJODUwMzJEREQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlh
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUw
MzJEQzkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5oICovOyB9OworCQk4NTAz
MkRERDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDOTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTTWVkaWFSdWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODUwMzJEREUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVs
ZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMy
RENBMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUubW0gKi87IH07Ci0JCTg1MDMy
RERGMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJEQ0IwQUE4QzlCRTAwN0QzQjdEIC8q
IERPTUNTU1BhZ2VSdWxlLmggKi87IH07CisJCTg1MDMyRERGMEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NQYWdlUnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODUwMzJEQ0IwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODUwMzJERTAwQUE4
QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJEQ0MwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNT
U1BhZ2VSdWxlLm1tICovOyB9OwotCQk4NTAzMkRFMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
UnVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUw
MzJEQ0QwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCAqLzsgfTsKKwkJODUwMzJERTEw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
ODUwMzJERTIwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDRTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTUnVsZS5tbSAqLzsgfTsKLQkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU1J1bGVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTAzMkRDRjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLzsgfTsK
KwkJODUwMzJERTMwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRDRjBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk4NTAzMkRFNDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVs
ZUxpc3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTAzMkREMDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gKi87IH07Ci0JCTg1
MDMyREU1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkREMTBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICovOyB9OworCQk4NTAzMkRFNTBB
QThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJERDEwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk4NTAzMkRFNjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDg1MDMyREQyMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0
aW9uLm1tICovOyB9OwotCQk4NTAzMkRFNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVS
dWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAz
MkREMzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggKi87IH07CisJCTg1MDMy
REU3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQzMEFBOEM5QkUwMDdEM0I3RCAv
KiBET01DU1NTdHlsZVJ1bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk4NTAzMkRFODBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxl
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUwMzJE
RDQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLzsgfTsKLQkJODUwMzJE
RTkwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKKwkJODUwMzJERTkwQUE4QzlCRTAwN0QzQjdE
IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1
bGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4
NTAzMkRFQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENjBBQThDOUJFMDA3
RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUubW0gKi87IH07CiAJCTg1MDY1NkZFMEFBQjQ3NjMw
MDJEMTVDMCAvKiBET01NZWRpYUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1MDY1NkY4MEFBQjQ3NjMwMDJEMTVDMCAvKiBET01NZWRpYUxpc3Qu
aCAqLzsgfTsKIAkJODUwNjU2RkYwQUFCNDc2MzAwMkQxNUMwIC8qIERPTU1lZGlhTGlzdC5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDY1NkY5MEFB
QjQ3NjMwMDJEMTVDMCAvKiBET01NZWRpYUxpc3QubW0gKi87IH07CkBAIC0zMTc4LDcgKzMxNzks
NyBAQAogCQk4NTNCRjREQjBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODUzQkY0RDkwQUJCNkI1NTAwODY0
N0JCIC8qIERPTU5vZGUuaCAqLzsgfTsKIAkJODUzQkY0REMwQUJCNkI1NTAwODY0N0JCIC8qIERP
TU5vZGUubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NTNCRjREQTBBQkI2QjU1MDA4NjQ3QkIgLyogRE9NTm9kZS5tbSAqLzsgfTsKIAkJODUzQkY0RUMw
QUJCNkVCOTAwODY0N0JCIC8qIERPTU5vZGUuaCBpbiBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1M0JGNEQ5MEFCQjZCNTUwMDg2NDdC
QiAvKiBET01Ob2RlLmggKi87IH07Ci0JCTg1NDA3NTIwMEFENkM1RkIwMDYyMEM1NyAvKiBET01F
dmVudFRhcmdldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODU0MDc1MUYwQUQ2QzVGQjAwNjIwQzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IH07CisJ
CTg1NDA3NTIwMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1MUYwQUQ2QzVGQjAwNjIw
QzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJODU0MDc1MjYwQUQ2QzY2NzAwNjIwQzU3IC8qIERPTU5vZGVGaWx0
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NDA3
NTI1MEFENkM2NjcwMDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggKi87IH07CiAJCTg1NDA3NTNF
MEFENkM2REMwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oIGluIENvcHkgR2VuZXJhdGVkIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU0MDc1MUYwQUQ2QzVG
QjAwNjIwQzU3IC8qIERPTUV2ZW50VGFyZ2V0LmggKi87IH07CiAJCTg1NDA3NTNGMEFENkM2REMw
MDYyMEM1NyAvKiBET01Ob2RlRmlsdGVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcg
LyogRE9NTm9kZUZpbHRlci5oICovOyB9OwpAQCAtMzIwOCwyNSArMzIwOSwyNSBAQAogCQk4NTUy
NkNEMjBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1MjZDRDAwQUIwQjdEOTAwMDMwMkVBIC8q
IERPTVRyZWVXYWxrZXIuaCAqLzsgfTsKIAkJODU1MjZDRDMwQUIwQjdEQTAwMDMwMkVBIC8qIERP
TVRyZWVXYWxrZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NTUyNkNEMTBBQjBCN0Q5MDAwMzAyRUEgLyogRE9NVHJlZVdhbGtlci5tbSAqLzsgfTsK
IAkJODU1MjZEMDUwQUIwQjk3OTAwMDMwMkVBIC8qIERPTVRyZWVXYWxrZXIuaCBpbiBDb3B5IEdl
bmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1NTI2
Q0QwMEFCMEI3RDkwMDAzMDJFQSAvKiBET01UcmVlV2Fsa2VyLmggKi87IH07Ci0JCTg1NUQzNThB
MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1RDM1ODkwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJH
QkNvbG9yLmggKi87IH07CisJCTg1NUQzNThBMEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU1RDM1
ODkwQUQ3MDczMTAwMTlBQUM3IC8qIERPTVJHQkNvbG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU1RDM1OEQwQUQ3MDdDQzAwMTlBQUM3IC8q
IERPTVJHQkNvbG9yLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29s
b3IuaCAqLzsgfTsKIAkJODU2QzhBRTQwQTkxMjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU2QzhBRTIwQTkx
MjY0OTAwNUM2ODdCIC8qIERPTU9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTg1NkM4QUU1MEE5MTI2NDkwMDVDNjg3QiAvKiBET01PYmpl
Y3QubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTZD
OEFFMzBBOTEyNjQ5MDA1QzY4N0IgLyogRE9NT2JqZWN0Lm1tICovOyB9OwotCQk4NTdFMEIyNTBB
QjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1v
dXNlRXZlbnQuaCAqLzsgfTsKKwkJODU3RTBCMjUwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNl
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU3RTBCMjYwQUIwNDM0NjAwMzZF
NDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5t
bSAqLzsgfTsKIAkJODU3RTBCMzEwQUIwNDQ3ODAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCBp
biBDb3B5IEdlbmVyYXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi87IH07CiAJ
CTg1ODAxNUNFMEFCQ0E3NUQwMDgwNTg4RCAvKiBET01YUGF0aEV4Y2VwdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4MDE1Q0QwQUJDQTc1RDAw
ODA1ODhEIC8qIERPTVhQYXRoRXhjZXB0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJODU4QzM4MUMwQUE4RTI5NjAwQjE4N0E0IC8qIERPTUNT
U1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLzsgfTsKKwkJODU4QzM4
MUMwQUE4RTI5NjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9N
Q1NTVmFsdWUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk4NThDMzgxRDBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQjBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi87IH07Ci0JCTg1OEMzODJDMEFBOEU0MDUwMEIxODdB
NCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLmggKi87IH07CisJCTg1OEMzODJDMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQ
cmltaXRpdmVWYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODU4QzM4
MkQwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4MkIwQUE4RTQwNTAwQjE4
N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLm1tICovOyB9OwotCQk4NThDMzgzQzBBQThFRDgy
MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgzQTBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFs
dWVMaXN0LmggKi87IH07CisJCTg1OEMzODNDMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1
ZUxpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1
OEMzODNBMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1ZUxpc3QuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NThDMzgzRDBBQThFRDgyMDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gODU4QzM4M0IwQUE4RUQ4MjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVl
TGlzdC5tbSAqLzsgfTsKLQkJODU4QzM4QTUwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OEMzOEEx
MEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLmggKi87IH07CisJCTg1OEMzOEE1MEFBOEYy
MDQwMEIxODdBNCAvKiBET01Db3VudGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NThDMzhBMTBBQThGMjA0MDBCMTg3QTQgLyogRE9NQ291bnRlci5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1OEMz
OEE2MEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM4QTIwQUE4RjIwNDAwQjE4N0E0IC8qIERP
TUNvdW50ZXIubW0gKi87IH07Ci0JCTg1OEMzOEE3MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzhB
MzBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVjdC5oICovOyB9OworCQk4NThDMzhBNzBBQThGMjA0
MDBCMTg3QTQgLyogRE9NUmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NThDMzhBODBBQThG
MjA0MDBCMTg3QTQgLyogRE9NUmVjdC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDg1OEMzOEE0MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tICov
OyB9OwotCQk4NThDMzkyODBBQThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODU4QzM5MjYwQUE4
RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAqLzsgfTsKKwkJODU4QzM5MjgwQUE4
RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBET01D
U1NTdHlsZVNoZWV0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJODU4QzM5MjkwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzkyNzBB
QThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5tbSAqLzsgfTsKIAkJODU4QzM5Qjgw
QUE5MDVFRjAwQjE4N0E0IC8qIERPTUNTU1ZhbHVlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgxQTBBQThFMjk2MDBC
MTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLzsgfTsKIAkJODU4QzM5QjkwQUE5MDVFRjAwQjE4N0E0
IC8qIERPTUNTU1ByaW1pdGl2ZVZhbHVlLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NThDMzgyQTBBQThFNDA1MDBCMTg3QTQg
LyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLzsgfTsKQEAgLTMyNzMsNyArMzI3NCw3IEBACiAJ
CTg1QUNBQThFMEE5Qjc1OUMwMDY3MUU5MCAvKiBET01Ob2RlTGlzdC5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QUNBQThBMEE5Qjc1OUMwMDY3MUU5
MCAvKiBET01Ob2RlTGlzdC5tbSAqLzsgfTsKIAkJODVBQ0FCQjAwQTlDQUY4MDAwNjcxRTkwIC8q
IERPTURvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUFDQUJBRTBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUFDQUJCMTBBOUNBRjgwMDA2NzFFOTAg
LyogRE9NRG9jdW1lbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NUFDQUJBRjBBOUNBRjgwMDA2NzFFOTAgLyogRE9NRG9jdW1lbnQubW0gKi87IH07
Ci0JCTg1QUZBODIyMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1
IC8qIERPTUV2ZW50LmggKi87IH07CisJCTg1QUZBODIyMEFBRjUyOEEwMEU4NDMwNSAvKiBET01F
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVB
RkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVBRkE4MjMwQUFGNTI4QTAwRTg0MzA1IC8q
IERPTUV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODVBRkE4MjEwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovOyB9OwogCQk4NUI0
OThFRDBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThFQzBBREIzMkZCMDA5MjVD
QkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi87IH07CiAJCTg1QjQ5OEYzMEFEQjMzNkEwMDky
NUNCQiAvKiBET01DU1NWYWx1ZUludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUI0OThGMjBBREIzMzZBMDA5MjVDQkIgLyogRE9NQ1NTVmFs
dWVJbnRlcm5hbC5oICovOyB9OwpAQCAtMzMwNiwyMCArMzMwNywyMCBAQAogCQk4NUMwNTBCQjBB
RDg0RjVFMDA1NTMyRTcgLyogRE9NSFRNTEVtYmVkRWxlbWVudC5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzA1MEI5MEFEODRGNUUwMDU1MzJFNyAv
KiBET01IVE1MRW1iZWRFbGVtZW50Lm1tICovOyB9OwogCQk4NUM3OEE2ODBBQkRFMUI0MDA0NEZD
MTYgLyogRE9NRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUM3OEE2NzBBQkRFMUI0MDA0NEZDMTYgLyogRE9NRXhjZXB0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODVDN0YzRTYw
QUFGNUQ1RTAwNDAxNEREIC8qIERPTUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUFGQTgyMDBBQUY1MjhBMDBFODQz
MDUgLyogRE9NRXZlbnQuaCAqLzsgfTsKLQkJODVDN0Y0OTEwQUFGNzlEQzAwNDAxNEREIC8qIERP
TVVJRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi87IH07CisJCTg1QzdG
NDkxMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9N
VUlFdmVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTg1QzdGNDkyMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y0OTAwQUFGNzlEQzAwNDAx
NEREIC8qIERPTVVJRXZlbnQubW0gKi87IH07CiAJCTg1QzdGNEQwMEFBRjgzRjYwMDQwMTRERCAv
KiBET01VSUV2ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3RjQ4RjBBQUY3OURDMDA0MDE0REQgLyogRE9NVUlFdmVu
dC5oICovOyB9OwotCQk4NUM3RjVCRjBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1
QkMwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCAqLzsgfTsKKwkJODVDN0Y1
QkYwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAv
KiBET01NdXRhdGlvbkV2ZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJODVDN0Y1QzAwQUFGQjdDRDAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZl
bnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUM3
RjVCRDBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5tbSAqLzsgfTsKLQkJODVD
N0Y1RDAwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1QzdGNUNFMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi87IH07CisJCTg1QzdGNUQwMEFBRkI4RDkwMDQwMTRE
RCAvKiBET01PdmVyZmxvd0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUM3RjVDRTBBQUZCOEQ5MDA0MDE0REQgLyogRE9NT3ZlcmZsb3dFdmVu
dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1
QzdGNUQxMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1Q0YwQUFGQjhEOTAwNDAx
NEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi87IH07Ci0JCTg1QzdGNUU3MEFBRkJBRkIwMDQw
MTRERCAvKiBET01XaGVlbEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA4NUM3RjVFNTBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5o
ICovOyB9OworCQk4NUM3RjVFNzBBQUZCQUZCMDA0MDE0REQgLyogRE9NV2hlZWxFdmVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVDN0Y1RTUwQUFG
QkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NUM3RjVFODBBQUZCQUZCMDA0MDE0REQgLyogRE9N
V2hlZWxFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50Lm1tICovOyB9Owog
CQk4NUNBOTZCODBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50aXR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0Yg
LyogRE9NRW50aXR5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoKTsgfTsgfTsKIAkJ
ODVDQTk2QjkwQTk2MjFBNjAwNjkwQ0NGIC8qIERPTUVudGl0eS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1Q0E5NkI3MEE5NjIxQTYwMDY5MENDRiAv
KiBET01FbnRpdHkubW0gKi87IH07CiAJCTg1Q0E5NzVDMEE5NjJFNTQwMDY5MENDRiAvKiBET01E
b2N1bWVudFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg1Q0E5NzVBMEE5NjJFNTQwMDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9OwogCQk4NUNBOTc1RDBBOTYyRTU0MDA2OTBD
Q0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODVDQTk3NUIwQTk2MkU1NDAwNjkwQ0NGIC8qIERPTURvY3VtZW50VHlw
ZS5tbSAqLzsgfTsKLQkJODVEMkFENjgwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVu
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDJB
RDY3MEFCMUE0MEEwMEMzMTNFQSAvKiBET01FdmVudExpc3RlbmVyLmggKi87IH07CisJCTg1RDJB
RDY4MEFCMUE0MEEwMEMzMTNFQSAvKiBET01FdmVudExpc3RlbmVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEg
LyogRE9NRXZlbnRMaXN0ZW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTg1RDJBRDZEMEFCMUE0ODIwMEMzMTNFQSAvKiBET01FdmVudExpc3Rl
bmVyLmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
ICovOyB9OwogCQk4NUQzODlCMjBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVEMzg5QjAwQTk5MUE3RjAw
MjgyMTQ1IC8qIERPTUF0dHIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9ICgpOyB9OyB9
OwogCQk4NUQzODlCMzBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RDM4OUIxMEE5OTFBN0YwMDI4MjE0
NSAvKiBET01BdHRyLm1tICovOyB9OwpAQCAtMzQwOCw3ICszNDA5LDcgQEAKIAkJODVGNzRFMDgw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQx
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggKi87IH07CiAJCTg1
Rjc0RTA5MEFBOERGOEMwMDBEQzI4NCAvKiBET01DU1NTdHlsZVJ1bGUuaCBpbiBDb3B5IEdlbmVy
YXRlZCBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1MDMyREQz
MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCAqLzsgfTsKIAkJODVGNzRFMEEw
QUE4REY4QzAwMERDMjg0IC8qIERPTUNTU1Vua25vd25SdWxlLmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NTAzMkRENTBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTVW5rbm93blJ1bGUuaCAqLzsgfTsKLQkJODVGRjMxNUEwQUFG
QkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggKi87IH07CisJCTg1RkYzMTVBMEFBRkJGQ0IwMDM3NEYzOCAvKiBET01L
ZXlib2FyZEV2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTg1RkYzMTVCMEFB
RkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERP
TUtleWJvYXJkRXZlbnQubW0gKi87IH07CiAJCTg2MUMyRUE0MTNGQjRGREQwMDA2MkFCQiAvKiBE
b2N1bWVudExvYWRUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50TG9hZFRpbWlu
Zy5jcHAgKi87IH07CiAJCTg2MkYxMjlFMThDMTU3NkYwMDVDNTRBRiAvKiBDb3VudGVkVXNlckFj
dGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4
NjJGMTI5RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NjY0LDcgKzU2NjUs
NyBAQAogCQlCQ0MwRTg3NTFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzBFODcz
MUJGRTcwRTkwMDhGN0Y1MCAvKiBIVE1MUGljdHVyZUVsZW1lbnQuY3BwICovOyB9OwogCQlCQ0Mw
RTg3NjFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0MwRTg3NDFCRkU3MEU5MDA4RjdG
NTAgLyogSFRNTFBpY3R1cmVFbGVtZW50LmggKi87IH07CiAJCUJDQzQzODc4MEU4ODZDQzcwMDUz
M0RENSAvKiBKU0hUTUxJbnB1dEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNDNDM4NzcwRTg4NkNDNzAwNTMzREQ1IC8qIEpT
SFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHAgKi87IH07Ci0JCUJDQzU3MzM1MEQ2OTVCQkUwMDZF
RjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NF
dmVudC5oICovOyB9OworCQlCQ0M1NzMzNTBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkND
NTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQ0M1NzMzNjBENjk1QkJFMDA2
RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDQzU3MzM0MEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVz
c0V2ZW50Lm1tICovOyB9OwogCQlCQ0M1NzMzODBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jl
c3NFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudEludGVy
bmFsLmggKi87IH07CiAJCUJDQzU3MzREMEQ2OTVDMDYwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2
ZW50LmggaW4gQ29weSBHZW5lcmF0ZWQgSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0M1NzMzMzBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5o
ICovOyB9OwpAQCAtNjI3Nyw3ICs2Mjc4LDcgQEAKIAkJREQwNUZFMEQwQjhCQTNDNjAwOUFDREZF
IC8qIFdlYkNvcmVPYmpDRXh0cmFzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBERDA1RkUwQjBCOEJBM0M2MDA5QUNERkUgLyogV2ViQ29yZU9iakNFeHRy
YXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlE
RDc2M0JCMjA5OTJDMkM5MDA3NDBCOEUgLyogbGlieG1sMi5keWxpYiBpbiBGcmFtZXdvcmtzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IERENzYzQkIxMDk5MkMyQzkwMDc0MEI4
RSAvKiBsaWJ4bWwyLmR5bGliICovOyB9OwogCQlERDdDREYyNTBBMjNDRjk4MDAwNjk5MjggLyog
Q1NTVW5rbm93blJ1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEE4MEU2Q0NFMEExOTg5Q0EwMDdGQjhDNSAvKiBDU1NVbmtub3duUnVsZS5oICovOyB9
OwotCQlEREU2M0VENTBCN0Q0NUE4MDAyMjY5OTggLyogRE9NVGV4dEV2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzNBMTQ3NTBCN0QxQkFGMDBB
NTNGRkQgLyogRE9NVGV4dEV2ZW50LmggKi87IH07CisJCURERTYzRUQ1MEI3RDQ1QTgwMDIyNjk5
OCAvKiBET01UZXh0RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDkzM0ExNDc1MEI3RDFCQUYwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlERTQ5QjMwOTE2
NUYyRkUxMDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDcxNjVGMkZFMTAw
MTAzMzhEIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmNwcCAqLzsgfTsKIAkJREVCQ0NE
RDIxNjY0NkU4MjAwQTQ1MkUxIC8qIFJlbmRlck1lZGlhQ29udHJvbEVsZW1lbnRzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBERTQ5QjMwODE2NUYyRkUx
MDAxMDMzOEQgLyogUmVuZGVyTWVkaWFDb250cm9sRWxlbWVudHMuaCAqLzsgfTsKIAkJREVCQ0NE
RDQxNjY0NkVBRjAwQTQ1MkUxIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gREU0OUIzMDAxNjVGMkZDNjAw
MTAzMzhEIC8qIE1lZGlhQ29udHJvbEVsZW1lbnRUeXBlcy5oICovOyB9OwpAQCAtOTEwNSw3ICs5
MTA2LDcgQEAKIAkJNDNGNkZEOTUxM0JDRDBCMTAwMjI0MDUyIC8qIFNWR0FuaW1hdGVkSW50ZWdl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZElu
dGVnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NDE1MjkyQzBFMUFFOEEw
MDBDNEEyRDAgLyogSFRNTFBsdWdJbkltYWdlRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBIVE1MUGx1Z0luSW1hZ2VFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ0MTUyOTJEMEUxQUU4QTAwMEM0QTJEMCAvKiBIVE1MUGx1Z0luSW1hZ2VF
bGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxQbHVn
SW5JbWFnZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0NDI5QUIw
NzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVRleHRFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTQ0MjlBQjA3MENCODRGODEwMDc2NDdDNSAvKiBET01UZXh0RXZl
bnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IERPTVRleHRFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owog
CQk0NDJBQkNENTE3RDkyNjJGMDBEMzA3MTUgLyogU3luY2hyb25vdXNMb2FkZXJDbGllbnRDRk5l
dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTeW5jaHJvbm91c0xv
YWRlckNsaWVudENGTmV0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyQUY3
QTcxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBRdWlja0xvb2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQy
QUY3QTgxMDJDRERFQTAwOEZENEQzIC8qIFF1aWNrTG9vay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFF1aWNrTG9vay5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTEwNTc4LDI1ICsxMDU3OSwyNSBAQAogCQk4NTAzMUIzOTBBNDRFRkM3MDBGOTky
RTAgLyogVUlFdmVudFdpdGhLZXlTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gVUlFdmVudFdpdGhLZXlTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk4NTAzMUIzQTBBNDRFRkM3MDBGOTkyRTAgLyogV2hlZWxFdmVudC5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2hlZWxFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg1MDMxQjNCMEE0NEVGQzcwMEY5OTJFMCAvKiBXaGVlbEV2ZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXaGVlbEV2ZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1ND
aGFyc2V0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTQ2hh
cnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQzQwQUE4QzlC
RTAwN0QzQjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VS
dWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NGb250RmFjZVJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQzYwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1MDMyREM3MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbXBvcnRSdWxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NJbXBvcnRSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTUNTU0ltcG9ydFJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1
MDMyREM5MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTAzMkRDQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU01lZGlh
UnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJEQ0IwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01DU1NQYWdlUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAz
MkRDQzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUGFnZVJ1bGUubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NSdWxlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01D
U1NSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNT
U1J1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1MDMyRENGMEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRE9NQ1NTUnVsZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUw
MzJERDAwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0Lm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU1J1bGVMaXN0Lm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkREMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5
bGVEZWNsYXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkRE
MjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZURlY2xhcmF0aW9uLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTAzMkREMzBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTU3R5bGVSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NTdHlsZVJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODUwMzJERDQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01DU1NTdHlsZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTg1MDMyREQ1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3du
UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTVW5rbm93blJ1
bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODUwMzJEQzMwQUE4QzlCRTAwN0Qz
QjdEIC8qIERPTUNTU0NoYXJzZXRSdWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTQ2hhcnNldFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CisJCTg1MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NQ1NTQ2hhcnNldFJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTRm9udEZhY2VS
dWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTAzMkRDNjBBQThDOUJFMDA3RDNC
N0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGUubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTAzMkRDNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NT
SW1wb3J0UnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsg
cGF0aCA9IERPTUNTU0ltcG9ydFJ1bGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1
MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NJbXBv
cnRSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlv
bklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJEQzkwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBs
aW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU01lZGlhUnVsZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODUwMzJEQ0EwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU01lZGlhUnVsZS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NQ1NTTWVkaWFSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJE
Q0IwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1BhZ2VSdWxlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyRENDMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQ
YWdlUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTUGFnZVJ1bGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owor
CQk4NTAzMkRDRDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1J1bGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyRENFMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBET01DU1NSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdl
U3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJE
Q0YwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUnVsZUxpc3QuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNv
ZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyREQwMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NS
dWxlTGlzdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTUnVsZUxpc3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhj
TGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9Owor
CQk4NTAzMkREMTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1N0
eWxlRGVjbGFyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNp
ZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1MDMyREQyMEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NTdHlsZURl
Y2xhcmF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUwMzJERDMwQUE4QzlC
RTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1N0eWxlUnVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5n
Lm9iamNwcDsgfTsKKwkJODUwMzJERDQwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVs
ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NQ1NTU3R5bGVSdWxlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1
YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODUw
MzJERDUwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1Vua25vd25SdWxlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTVW5rbm93blJ1bGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlm
aWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1MDMyREQ2MEFBOEM5QkUwMDdEM0I3RCAv
KiBET01DU1NVbmtub3duUnVsZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBET01DU1NVbmtub3duUnVsZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODUwNjU2REMwQUFCNDREOTAwMkQxNUMwIC8qIFN0eWxlU2hlZXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODUwNjU2REYwQUFCNDU0RjAwMkQxNUMwIC8qIFN0eWxlU2hlZXRMaXN0LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU3R5bGVTaGVldExpc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTA2NDYsNyArMTA2NDcsNyBAQAogCQk4NTM4RjA4NDBBRDcyQ0I2MDA2QTgx
RDEgLyogRE9NUmFuZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVJh
bmdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTNCRjREOTBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Tm9kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTNCRjREQTBBQkI2QjU1MDA4
NjQ3QkIgLyogRE9NTm9kZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBET01Ob2RlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTQwNzUxRjBB
RDZDNUZCMDA2MjBDNTcgLyogRE9NRXZlbnRUYXJnZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUV2ZW50VGFyZ2V0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NTQwNzUyNTBBRDZDNjY3MDA2MjBDNTcg
LyogRE9NTm9kZUZpbHRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Tm9kZUZpbHRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NTQwNzU2NDBBRDZD
QkY5MDA2MjBDNTcgLyogRE9NSFRNTEFwcGxldEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01IVE1MQXBwbGV0RWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIg
PSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU0MDc1NjUwQUQ2Q0JGOTAwNjIwQzU3IC8qIERP
TUhUTUxFbWJlZEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01IVE1MRW1iZWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OwpAQCAtMTA2OTAsNDAgKzEwNjkxLDQwIEBACiAJCTg1NzREMUY2MEFERTYxMjIwMDRDQkEx
MSAvKiBKU1NWR1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuaDsgcGF0aCA9IEpT
U1ZHUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3NEQxRjcwQURFNjEy
MjAwNENCQTExIC8qIEpTU1ZHUmVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNTVkdSZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU3
NEQxRjgwQURFNjEyMjAwNENCQTExIC8qIEpTU1ZHUmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmg7IHBhdGggPSBKU1NWR1JlY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU1vdXNlRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJODU3RTBCMjQwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRE9NTW91c2VFdmVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODU3RTBCMjMwQUIwNDM0NjAwMzZF
NDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVu
ZGluZyA9IDA7IHBhdGggPSBET01Nb3VzZUV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NTW91
c2VFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRp
b25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1ODAxNUNEMEFCQ0E3NUQw
MDgwNTg4RCAvKiBET01YUGF0aEV4Y2VwdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01YUGF0aEV4Y2VwdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk4NThDMzgxQTBBQThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1ZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NWYWx1ZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU1ZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NThDMzgxQjBBQThFMjk2MDBCMTg3QTQg
LyogRE9NQ1NTVmFsdWUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NQ1NTVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OEMzODJB
MEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4MkIwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1p
dGl2ZVZhbHVlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TUNTU1ByaW1pdGl2ZVZhbHVlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NThD
MzgzQTBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NWYWx1ZUxpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJODU4QzM4MkEwQUE4RTQwNTAwQjE4N0E0IC8qIERPTUNTU1ByaW1pdGl2ZVZh
bHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NQ1NTUHJpbWl0aXZlVmFsdWUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFn
ZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1OEMz
ODJCMEFBOEU0MDUwMEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUHJp
bWl0aXZlVmFsdWUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NThDMzgzQTBBQThF
RDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVMaXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTVmFsdWVMaXN0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NThDMzgzQjBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVM
aXN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUNTU1Zh
bHVlTGlzdC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4QTEwQUE4RjIw
NDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM4QTIw
QUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBwYXRoID0gRE9NQ291bnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODU4QzM4QTEwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01Db3VudGVyLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9
IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NThDMzhBMjBBQThGMjA0MDBCMTg3QTQgLyogRE9N
Q291bnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ291bnRlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5n
dWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTg1
OEMzOEEzMEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBET01SZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1
OEMzOEE0MEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVJlY3QubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg1OEMzOEVGMEFBOEZERDEwMEIxODdBNCAvKiBSR0JDb2xvci5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFJHQkNvbG9yLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJODU4QzM5MTAwQUE4RkYwMDAwQjE4N0E0IC8qIENTU1N0eWxlU2hlZXQuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBDU1NTdHlsZVNoZWV0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJODU4QzM5MjYwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlU2hlZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERP
TUNTU1N0eWxlU2hlZXQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRE9NQ1NTU3R5bGVTaGVldC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5
MDlDRDMwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5MDlDRDQwQUNDN0E3RTAwREYwMUYx
IC8qIERPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQk4NTkwOUNENTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTSW1wb3J0UnVs
ZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NJbXBv
cnRSdWxlSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5MDlDRDYw
QUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU01lZGlhUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQk4NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
UGFnZVJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
Q1NTUGFnZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTkw
OUNEOTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlUnVsZUludGVybmFsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBE
T01DU1NTdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4
Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsK
KwkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNT
U1N0eWxlU2hlZXQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNEMzBBQ0M3
QTdFMDBERjAxRjEgLyogRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU0NoYXJzZXRSdWxlSW50
ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1OTA5Q0Q0MEFDQzdBN0UwMERG
MDFGMSAvKiBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNENTBBQ0M3QTdFMDBERjAxRjEg
LyogRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTkwOUNENjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NT
TWVkaWFSdWxlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGlu
ZyA9IDA7IHBhdGggPSBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9i
amNwcDsgfTsKKwkJODU5MDlDRDcwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU1BhZ2VSdWxlSW50
ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGgg
PSBET01DU1NQYWdlUnVsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFu
Z3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4
NTkwOUNEOTBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01DU1NTdHls
ZVJ1bGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU5MDlDREEwQUND
N0E3RTAwREYwMUYxIC8qIERPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ1NTU3R5bGVTaGVldEludGVybmFsLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1OTA5Q0RCMEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NV
bmtub3duUnVsZUludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NVbmtub3duUnVsZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg1OTA5RDI2MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NQcmltaXRpdmVWYWx1
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1OTA5RDI2MEFDQzdE
NTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUHJpbWl0aXZlVmFs
dWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNh
dGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJODU5MDlEMjgwQUNDN0Q1
NTAwREYwMUYxIC8qIERPTUNTU1ZhbHVlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBET01DU1NWYWx1ZUxpc3RJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NTkxMjg3OTBBQjIyMkVDMDAyMDIyNjUgLyogSFRNTEVtYmVkRWxl
bWVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxFbWJlZEVsZW1lbnQuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyog
RE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01LZXlib2FyZEV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODU5ODlEQzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NTW91c2VFdmVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1OTg5REM3MEFDQzhCQkQwMEEwQkM1
MSAvKiBET01NdXRhdGlvbkV2ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NT3ZlcmZsb3dFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01PdmVyZmxvd0V2
ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODU5ODlEQzkwQUND
OEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRE9NVUlFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCTg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJu
YWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVdoZWVsRXZlbnRJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NTk4OURDNTBBQ0M4QkJEMDBB
MEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmll
ciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4OURDNjBBQ0M4QkJEMDBBMEJDNTEgLyog
RE9NTW91c2VFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVF
bmRpbmcgPSAwOyBwYXRoID0gRE9NTW91c2VFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcu
b2JqY3BwOyB9OworCQk4NTk4OURDNzBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NTXV0YXRpb25FdmVu
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBw
YXRoID0gRE9NTXV0YXRpb25FdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NT3ZlcmZsb3dFdmVudEludGVybmFs
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
T3ZlcmZsb3dFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4
OURDOTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NVUlFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVUlFdmVudEludGVybmFs
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRp
ZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NTk4OURDQTBBQ0M4QkJEMDBBMEJDNTEg
LyogRE9NV2hlZWxFdmVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NV2hlZWxFdmVudEludGVybmFsLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NTk5MkVCMjBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRo
ID0gRE9NSFRNTEhlYWRFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3Vh
Z2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NTk5
MkVCMzBBQTUwNjk1MDBBQzA3ODUgLyogRE9NSFRNTEhlYWRFbGVtZW50Lm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTUhUTUxIZWFkRWxlbWVudC5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODU5OTJFQjQwQUE1MDY5NTAwQUMwNzg1IC8qIERP
TUhUTUxIdG1sRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9N
SFRNTEh0bWxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc1NSwx
MSArMTA3NTYsMTEgQEAKIAkJODVBQ0FCQUYwQTlDQUY4MDAwNjcxRTkwIC8qIERPTURvY3VtZW50
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFGQTc0MTBBQUYyOTg0MDBFODQz
MDUgLyogRXZlbnRMaXN0ZW5lci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEV2ZW50TGlz
dGVuZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUFGQTc0MjBBQUYyOTg0
MDBFODQzMDUgLyogRXZlbnRUYXJnZXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBFdmVu
dFRhcmdldC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QUZBODIwMEFBRjUy
OEEwMEU4NDMwNSAvKiBET01FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRE9NRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVBRkE4MjEwQUFG
NTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERPTUV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4
NUI0OThFQzBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01DU1NSdWxlSW50ZXJuYWwuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVBRkE4MjAwQUFGNTI4QTAwRTg0MzA1IC8qIERPTUV2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9N
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1QUZBODIxMEFBRjUyOEEwMEU4
NDMwNSAvKiBET01FdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OworCQk4NUI0OThFQzBBREIzMkZCMDA5MjVDQkIgLyogRE9NQ1NTUnVsZUludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ1NTUnVs
ZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0
aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUI0OThGMjBBREIzMzZB
MDA5MjVDQkIgLyogRE9NQ1NTVmFsdWVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRE9NQ1NTVmFsdWVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk4NUI0OThGNDBBREIzMzdBMDA5MjVDQkIgLyogRE9NRXZlbnRJbnRlcm5hbC5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXZlbnRJbnRlcm5hbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUI0OThGNDBBREIzMzdBMDA5MjVDQkIgLyogRE9N
RXZlbnRJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0g
MDsgcGF0aCA9IERPTUV2ZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJ
CTg1QjQ5OEZBMEFEQjM0MDIwMDkyNUNCQiAvKiBET01Ob2RlSW50ZXJuYWwuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTU5vZGVJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUI0OThGRTBBREIzNDgxMDA5MjVDQkIgLyogRE9NU3R5bGVTaGVl
dEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01TdHlsZVNo
ZWV0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVCQTRDRDUwQUE2
ODYxQjAwODgwNTJEIC8qIERPTUhUTUxCdXR0b25FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NSFRNTEJ1dHRvbkVsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVy
ID0geGNvZGUubGFuZy5vYmpjcHA7IH07CkBAIC0xMDc5NywxOSArMTA3OTgsMTkgQEAKIAkJODVD
NTZDQUMwQUE4OUY4RTAwRDk1NzU1IC8qIENTU0NoYXJzZXRSdWxlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gQ1NTQ2hhcnNldFJ1bGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk4NUM1NkNBRDBBQTg5RkUwMDBEOTU3NTUgLyogQ1NTVW5rbm93blJ1bGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBDU1NVbmtub3duUnVsZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTg1Qzc4QTY3MEFCREUxQjQwMDQ0RkMxNiAvKiBET01FeGNlcHRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRXhjZXB0aW9uLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01VSUV2ZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNDkwMEFBRjc5REMwMDQwMTRERCAvKiBE
T01VSUV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERP
TVVJRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUJDMEFBRkI3
Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTg1QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAv
KiBET01PdmVyZmxvd0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01PdmVyZmxvd0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUNG
MEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTU92ZXJmbG93RXZlbnQubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01XaGVlbEV2ZW50Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1QzdGNUU2MEFBRkJBRkIwMDQwMTRERCAv
KiBET01XaGVlbEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IERPTVdoZWVsRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTg1QzdG
NDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVUlFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5n
Lm9iamNwcDsgfTsKKwkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9
IERPTVVJRXZlbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZp
Y2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUM3RjVCQzBBQUZC
N0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTU11dGF0aW9uRXZlbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5vYmpjcHA7IH07CisJCTg1QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlv
bkV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbGluZUVuZGluZyA9
IDA7IHBhdGggPSBET01NdXRhdGlvbkV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4
Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsK
KwkJODVDN0Y1Q0UwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01PdmVyZmxvd0V2
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRl
bnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUM3RjVDRjBBQUZCOEQ5MDA0MDE0
REQgLyogRE9NT3ZlcmZsb3dFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NT3ZlcmZsb3dFdmVudC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUu
bGFuZy5vYmpjcHA7IH07CisJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0g
RE9NV2hlZWxFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lm
aWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKKwkJODVDN0Y1RTYwQUFG
QkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVdoZWVsRXZlbnQubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OwogCQk4NUNBOTZCNjBBOTYyMUE2MDA2OTBDQ0YgLyogRE9NRW50
aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01FbnRpdHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVDQTk2QjcwQTk2MjFBNjAwNjkwQ0NGIC8qIERP
TUVudGl0eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01F
bnRpdHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1Q0E5NzVBMEE5NjJFNTQw
MDY5MENDRiAvKiBET01Eb2N1bWVudFR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERPTURvY3VtZW50VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NUNBOTc1QjBBOTYyRTU0MDA2OTBDQ0YgLyogRE9NRG9jdW1lbnRUeXBlLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTURvY3VtZW50VHlwZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJODVEMkFENjcwQUIxQTQwQTAwQzMxM0VBIC8qIERPTUV2
ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUV2ZW50
TGlzdGVuZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJODVEMkFENjcwQUIxQTQw
QTAwQzMxM0VBIC8qIERPTUV2ZW50TGlzdGVuZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01FdmVudExpc3RlbmVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxh
bmcub2JqY3BwOyB9OwogCQk4NUQzODlCMDBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQXR0ci5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4NUQzODlCMTBBOTkxQTdGMDAyODIxNDUgLyogRE9NQXR0ci5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01BdHRyLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NURGMkMxMDBBQTM0MUY2MDBBRDY0QzUgLyogRE9N
SFRNTEZvcm1FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxpbmVFbmRpbmcg
PSAwOyBwYXRoID0gRE9NSFRNTEZvcm1FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3BwOyB9
OwpAQCAtMTA4NTIsOSArMTA4NTMsOSBAQAogCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyog
RE9NQ0RBVEFTZWN0aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IERPTUNEQVRBU2VjdGlvbkludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTg1RTcxMTQwMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DaGFyYWN0ZXJEYXRhSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNoYXJhY3RlckRhdGFJbnRl
cm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE0MTBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ29tbWVudEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBET01Db21tZW50SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJODVFNzExNDIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvdW50ZXJJbnRlcm5hbC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NQ291bnRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1RTcxMTQzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
U1NSdWxlTGlzdEludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBE
T01DU1NSdWxlTGlzdEludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg1
RTcxMTQ0MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUNTU1N0eWxlRGVjbGFyYXRp
b25JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4NUU3MTE0MjBBQzVE
NTM0MDA1MzI3MEYgLyogRE9NQ291bnRlckludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NQ291bnRlckludGVybmFsLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhj
b2RlLmxhbmcub2JqY3BwOyB9OworCQk4NUU3MTE0MzBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ1NT
UnVsZUxpc3RJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5n
ID0gMDsgcGF0aCA9IERPTUNTU1J1bGVMaXN0SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpj
cHA7IH07CisJCTg1RTcxMTQ0MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NTdHlsZURlY2xhcmF0
aW9uSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbGluZUVuZGluZyA9IDA7
IHBhdGggPSBET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5v
YmpjcHA7IH07CiAJCTg1RTcxMTQ1MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Eb2N1bWVudEZyYWdt
ZW50SW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURvY3Vt
ZW50RnJhZ21lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NUU3
MTE0NjBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1lbnRJbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NRG9jdW1lbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NUU3MTE0NzBBQzVENTM0MDA1MzI3MEYgLyogRE9NRG9jdW1l
bnRUeXBlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTURv
Y3VtZW50VHlwZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDk0
OCw4ICsxMDk0OSw4IEBACiAJCTg1RjMyQUU5MEFBNjNCODcwMEZGMzE4NCAvKiBET01IVE1MU2Vs
ZWN0RWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBE
T01IVE1MU2VsZWN0RWxlbWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODVG
NTZBNzgwQTk4Q0UzNzAwQURCNjBBIC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg1RjU2QTc5MEE5OENFMzcwMEFEQjYwQSAv
KiBET01Qcm9jZXNzaW5nSW5zdHJ1Y3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRE9NUHJvY2Vzc2luZ0luc3RydWN0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRF
dmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRE9NS2V5Ym9hcmRFdmVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk4NUZGMzE1OTBBQUZCRkNCMDAzNzRG
MzggLyogRE9NS2V5Ym9hcmRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk4NUZGMzE1ODBBQUZCRkNCMDAzNzRGMzggLyogRE9NS2V5Ym9hcmRFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTUtleWJvYXJk
RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRpb25J
ZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJCTg1RkYzMTU5MEFBRkJGQ0IwMDM3
NEYzOCAvKiBET01LZXlib2FyZEV2ZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbGluZUVuZGluZyA9IDA7IHBhdGggPSBET01LZXlib2FyZEV2ZW50Lm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29k
ZS5sYW5nLm9iamNwcDsgfTsKIAkJODYxQzJFQTMxM0ZCNEZERDAwMDYyQUJCIC8qIERvY3VtZW50
TG9hZFRpbWluZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1
bWVudExvYWRUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjJGMTI5
RDE4QzE1NzJDMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDb3VudGVkVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTg2MkYxMjlGMThDMURDRTQwMDVDNTRBRiAvKiBIeXN0ZXJlc2lzQWN0
aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSHlzdGVyZXNpc0FjdGl2
aXR5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMTEzNiw4ICsxMTEzNyw4IEBA
CiAJCTkzM0ExNDJCMEI3RDE4ODYwMEE1M0ZGRCAvKiBUZXh0RXZlbnQuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGV4dEV2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTMzQTE0MkMwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVGV4dEV2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTMzQTE0MkQwQjdEMTg4NjAwQTUzRkZEIC8qIFRleHRFdmVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUZXh0RXZlbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTMzQTE0NzUwQjdEMUJBRjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBET01UZXh0RXZlbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTMzQTE0QTkwQjdEMUQwOTAwQTUzRkZEIC8qIERPTVRl
eHRFdmVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERPTVRl
eHRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTMzQTE0NzUwQjdEMUJB
RjAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IGxp
bmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NVGV4dEV2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IHhjTGFuZ3VhZ2VTcGVjaWZpY2F0aW9uSWRlbnRpZmllciA9IHhjb2RlLmxhbmcub2JqY3Bw
OyB9OworCQk5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVRl
eHRFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNMYW5ndWFnZVNwZWNpZmljYXRp
b25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CiAJCTkzM0ExNEI2MEI3RDFENTIw
MEE1M0ZGRCAvKiBKU1RleHRFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU1RleHRFdmVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
M0ExNEI3MEI3RDFENTIwMEE1M0ZGRCAvKiBKU1RleHRFdmVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBKU1RleHRFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk5MzNDN0E3NDFDMEZCQzQ0MDAzNEZCOTcgLyogTlNTcGVsbENoZWNrZXJTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNTcGVsbENoZWNrZXJTUEkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNTQwLDkgKzEzNTQxLDkgQEAKIAkJQkNDMEU4NzMx
QkZFNzBFOTAwOEY3RjUwIC8qIEhUTUxQaWN0dXJlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MUGljdHVyZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQ0MwRTg3NDFCRkU3MEU5MDA4RjdGNTAgLyogSFRNTFBpY3R1
cmVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxQaWN0dXJl
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0M0Mzg3NzBFODg2Q0M3
MDA1MzNERDUgLyogSlNIVE1MSW5wdXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTElucHV0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Q
cm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNDNTczMzQwRDY5NUJC
RTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBET01Qcm9ncmVzc0V2ZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQlCQ0M1NzMzNzBENjk1QkQ3MDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudElu
dGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTVByb2dyZXNzRXZl
bnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlCQ0M1NzMzMzBENjk1
QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IGxpbmVFbmRpbmcgPSAwOyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3BlY2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5s
YW5nLm9iamNwcDsgfTsKKwkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNz
RXZlbnQubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IGxpbmVFbmRpbmcgPSAw
OyBwYXRoID0gRE9NUHJvZ3Jlc3NFdmVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgeGNM
YW5ndWFnZVNwZWNpZmljYXRpb25JZGVudGlmaWVyID0geGNvZGUubGFuZy5vYmpjcHA7IH07CisJ
CUJDQzU3MzM3MEQ2OTVCRDcwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBsaW5lRW5kaW5nID0gMDsgcGF0aCA9IERPTVByb2dy
ZXNzRXZlbnRJbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB4Y0xhbmd1YWdlU3Bl
Y2lmaWNhdGlvbklkZW50aWZpZXIgPSB4Y29kZS5sYW5nLm9iamNwcDsgfTsKIAkJQkNDNUJERkUw
QzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVldC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gSlNDU1NTdHlsZVNoZWV0LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkNDNUJERkYwQzBFOTMxMTAwMTFDMkRCIC8qIEpTQ1NTU3R5bGVTaGVl
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDU1NTdHlsZVNoZWV0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDQzhDRkNBMDk4NkNEMjQwMDE0MEJGMiAv
KiBDb2xvckRhdGEuZ3BlcmYgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENvbG9yRGF0YS5ncGVy
Zjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2NDc1LDYgKzE2NDc2LDEwMCBAQAog
CQkJcGF0aCA9IG1hYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTFBRkM2
RDI4MUQ1MTVENjcwMEE0MkZBMSAvKiBDU1MgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJ
CWNoaWxkcmVuID0gKAorCQkJCTg1OEMzOEExMEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVy
LmggKi8sCisJCQkJODU4QzM4QTIwQUE4RjIwNDAwQjE4N0E0IC8qIERPTUNvdW50ZXIubW0gKi8s
CisJCQkJODVFNzExNDIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNvdW50ZXJJbnRlcm5hbC5oICov
LAorCQkJCTg1MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5oICov
LAorCQkJCTg1MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5tbSAq
LywKKwkJCQk4NTkwOUNEMzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTQ2hhcnNldFJ1bGVJbnRl
cm5hbC5oICovLAorCQkJCTg1MDMyREM1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NGb250RmFj
ZVJ1bGUuaCAqLywKKwkJCQk4NTAzMkRDNjBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZh
Y2VSdWxlLm1tICovLAorCQkJCTg1OTA5Q0Q0MEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NGb250
RmFjZVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREM3MEFBOEM5QkUwMDdEM0I3RCAvKiBE
T01DU1NJbXBvcnRSdWxlLmggKi8sCisJCQkJODUwMzJEQzgwQUE4QzlCRTAwN0QzQjdEIC8qIERP
TUNTU0ltcG9ydFJ1bGUubW0gKi8sCisJCQkJODU5MDlDRDUwQUNDN0E3RTAwREYwMUYxIC8qIERP
TUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREM5MEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLywKKwkJCQk4NTAzMkRDQTBBQThDOUJFMDA3RDNCN0Qg
LyogRE9NQ1NTTWVkaWFSdWxlLm1tICovLAorCQkJCTg1OTA5Q0Q2MEFDQzdBN0UwMERGMDFGMSAv
KiBET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyRENCMEFBOEM5QkUwMDdE
M0I3RCAvKiBET01DU1NQYWdlUnVsZS5oICovLAorCQkJCTg1MDMyRENDMEFBOEM5QkUwMDdEM0I3
RCAvKiBET01DU1NQYWdlUnVsZS5tbSAqLywKKwkJCQk4NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEg
LyogRE9NQ1NTUGFnZVJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzODJBMEFBOEU0MDUwMEIx
ODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5oICovLAorCQkJCTg1OEMzODJCMEFBOEU0MDUw
MEIxODdBNCAvKiBET01DU1NQcmltaXRpdmVWYWx1ZS5tbSAqLywKKwkJCQk4NTkwOUQyNjBBQ0M3
RDU1MDBERjAxRjEgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oICovLAorCQkJCTg1
MDMyRENEMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlLmggKi8sCisJCQkJODUwMzJEQ0Uw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUubW0gKi8sCisJCQkJODVCNDk4RUMwQURCMzJG
QjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyRENGMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5oICovLAorCQkJCTg1MDMyREQwMEFBOEM5QkUw
MDdEM0I3RCAvKiBET01DU1NSdWxlTGlzdC5tbSAqLywKKwkJCQk4NUU3MTE0MzBBQzVENTM0MDA1
MzI3MEYgLyogRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oICovLAorCQkJCTg1MDMyREQxMEFBOEM5
QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZURlY2xhcmF0aW9uLmggKi8sCisJCQkJODUwMzJERDIw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24ubW0gKi8sCisJCQkJODVF
NzExNDQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5o
ICovLAorCQkJCTg1MDMyREQzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NTdHlsZVJ1bGUuaCAq
LywKKwkJCQk4NTAzMkRENDBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLm1tICov
LAorCQkJCTg1OTA5Q0Q5MEFDQzdBN0UwMERGMDFGMSAvKiBET01DU1NTdHlsZVJ1bGVJbnRlcm5h
bC5oICovLAorCQkJCTg1OEMzOTI2MEFBOEZGOUQwMEIxODdBNCAvKiBET01DU1NTdHlsZVNoZWV0
LmggKi8sCisJCQkJODU4QzM5MjcwQUE4RkY5RDAwQjE4N0E0IC8qIERPTUNTU1N0eWxlU2hlZXQu
bW0gKi8sCisJCQkJODU5MDlDREEwQUNDN0E3RTAwREYwMUYxIC8qIERPTUNTU1N0eWxlU2hlZXRJ
bnRlcm5hbC5oICovLAorCQkJCTg1MDMyREQ1MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtu
b3duUnVsZS5oICovLAorCQkJCTg1MDMyREQ2MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtu
b3duUnVsZS5tbSAqLywKKwkJCQk4NTkwOUNEQjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTVW5r
bm93blJ1bGVJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzODFBMEFBOEUyOTYwMEIxODdBNCAvKiBE
T01DU1NWYWx1ZS5oICovLAorCQkJCTg1OEMzODFCMEFBOEUyOTYwMEIxODdBNCAvKiBET01DU1NW
YWx1ZS5tbSAqLywKKwkJCQk4NUI0OThGMjBBREIzMzZBMDA5MjVDQkIgLyogRE9NQ1NTVmFsdWVJ
bnRlcm5hbC5oICovLAorCQkJCTg1OEMzODNBMEFBOEVEODIwMEIxODdBNCAvKiBET01DU1NWYWx1
ZUxpc3QuaCAqLywKKwkJCQk4NThDMzgzQjBBQThFRDgyMDBCMTg3QTQgLyogRE9NQ1NTVmFsdWVM
aXN0Lm1tICovLAorCQkJCTg1OTA5RDI4MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NWYWx1ZUxp
c3RJbnRlcm5hbC5oICovLAorCQkJCTg1OEMzOEEzMEFBOEYyMDQwMEIxODdBNCAvKiBET01SZWN0
LmggKi8sCisJCQkJODU4QzM4QTQwQUE4RjIwNDAwQjE4N0E0IC8qIERPTVJlY3QubW0gKi8sCisJ
CQkJODVFNzExODcwQUM1RDUzNTAwNTMyNzBGIC8qIERPTVJlY3RJbnRlcm5hbC5oICovLAorCQkJ
CTg1NUQzNTg5MEFENzA3MzEwMDE5QUFDNyAvKiBET01SR0JDb2xvci5oICovLAorCQkJCUJDQUVG
Q0FEMTAxNkNFNEEwMDQwRDM0RSAvKiBET01SR0JDb2xvci5tbSAqLywKKwkJCQlCQ0QwRkM0RTBE
QkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSBDU1M7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQkxQUZDNkQyOTFE
NTE1RkM5MDBBNDJGQTEgLyogRXZlbnRzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk4NUFGQTgyMDBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQuaCAq
LywKKwkJCQk4NUFGQTgyMTBBQUY1MjhBMDBFODQzMDUgLyogRE9NRXZlbnQubW0gKi8sCisJCQkJ
ODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKKwkJCQk4
NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5oICovLAorCQkJCTg1
NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICovLAorCQkJCTg1RkYz
MTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8sCisJCQkJODVGRjMx
NTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8sCisJCQkJODU5ODlE
QzUwQUNDOEJCRDAwQTBCQzUxIC8qIERPTUtleWJvYXJkRXZlbnRJbnRlcm5hbC5oICovLAorCQkJ
CTg1N0UwQjIzMEFCMDQzNDYwMDM2RTQ0NyAvKiBET01Nb3VzZUV2ZW50LmggKi8sCisJCQkJODU3
RTBCMjQwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQubW0gKi8sCisJCQkJODU5ODlE
QzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTg1
QzdGNUJDMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50LmggKi8sCisJCQkJODVD
N0Y1QkQwQUFGQjdDQzAwNDAxNEREIC8qIERPTU11dGF0aW9uRXZlbnQubW0gKi8sCisJCQkJODU5
ODlEQzcwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oICovLAor
CQkJCTg1QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi8sCisJ
CQkJODVDN0Y1Q0YwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi8sCisJ
CQkJODU5ODlEQzgwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5o
ICovLAorCQkJCUJDQzU3MzMzMEQ2OTVCQkUwMDZFRjUxNyAvKiBET01Qcm9ncmVzc0V2ZW50Lmgg
Ki8sCisJCQkJQkNDNTczMzQwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQubW0g
Ki8sCisJCQkJQkNDNTczMzcwRDY5NUJENzAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnRJbnRl
cm5hbC5oICovLAorCQkJCTkzM0ExNDc1MEI3RDFCQUYwMEE1M0ZGRCAvKiBET01UZXh0RXZlbnQu
aCAqLywKKwkJCQk5MzNBMTRBOTBCN0QxRDA5MDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50Lm1tICov
LAorCQkJCTQ0MjlBQjA3MENCODRGODEwMDc2NDdDNSAvKiBET01UZXh0RXZlbnRJbnRlcm5hbC5o
ICovLAorCQkJCTg1QzdGNDhGMEFBRjc5REMwMDQwMTRERCAvKiBET01VSUV2ZW50LmggKi8sCisJ
CQkJODVDN0Y0OTAwQUFGNzlEQzAwNDAxNEREIC8qIERPTVVJRXZlbnQubW0gKi8sCisJCQkJODU5
ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovLAorCQkJCTg1
QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAvKiBET01XaGVlbEV2ZW50LmggKi8sCisJCQkJODVDN0Y1
RTYwQUFGQkFGQjAwNDAxNEREIC8qIERPTVdoZWVsRXZlbnQubW0gKi8sCisJCQkJODU5ODlEQ0Ew
QUNDOEJCRDAwQTBCQzUxIC8qIERPTVdoZWVsRXZlbnRJbnRlcm5hbC5oICovLAorCQkJKTsKKwkJ
CW5hbWUgPSBFdmVudHM7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQkxQzVG
QUVDQTBEQ0ZEOEM5MDBENThGNzggLyogSW5zcGVjdG9yICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTE4NTAzLDgwICsxODU5OCwxMCBAQAogCQkJbmFtZSA9
IENvcmU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwotCQk4NTk2N0RDQTBBQThC
RjBGMDA1RkVERUUgLyogQ1NTICovID0gewotCQkJaXNhID0gUEJYR3JvdXA7Ci0JCQljaGlsZHJl
biA9ICgKLQkJCQk4NThDMzhBMTBBQThGMjA0MDBCMTg3QTQgLyogRE9NQ291bnRlci5oICovLAot
CQkJCTg1OEMzOEEyMEFBOEYyMDQwMEIxODdBNCAvKiBET01Db3VudGVyLm1tICovLAotCQkJCTg1
MDMyREMzMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5oICovLAotCQkJCTg1
MDMyREM0MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NDaGFyc2V0UnVsZS5tbSAqLywKLQkJCQk4
NTAzMkRDNTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTRm9udEZhY2VSdWxlLmggKi8sCi0JCQkJ
ODUwMzJEQzYwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU0ZvbnRGYWNlUnVsZS5tbSAqLywKLQkJ
CQk4NTAzMkRDNzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTSW1wb3J0UnVsZS5oICovLAotCQkJ
CTg1MDMyREM4MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NJbXBvcnRSdWxlLm1tICovLAotCQkJ
CTg1MDMyREM5MEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NNZWRpYVJ1bGUuaCAqLywKLQkJCQk4
NTAzMkRDQTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTTWVkaWFSdWxlLm1tICovLAotCQkJCTg1
MDMyRENCMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5oICovLAotCQkJCTg1MDMy
RENDMEFBOEM5QkUwMDdEM0I3RCAvKiBET01DU1NQYWdlUnVsZS5tbSAqLywKLQkJCQk4NThDMzgy
QTBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaCAqLywKLQkJCQk4NThD
MzgyQjBBQThFNDA1MDBCMTg3QTQgLyogRE9NQ1NTUHJpbWl0aXZlVmFsdWUubW0gKi8sCi0JCQkJ
ODUwMzJEQ0QwQUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1J1bGUuaCAqLywKLQkJCQk4NTAzMkRD
RTBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZS5tbSAqLywKLQkJCQk4NTAzMkRDRjBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QuaCAqLywKLQkJCQk4NTAzMkREMDBBQThDOUJF
MDA3RDNCN0QgLyogRE9NQ1NTUnVsZUxpc3QubW0gKi8sCi0JCQkJODUwMzJERDEwQUE4QzlCRTAw
N0QzQjdEIC8qIERPTUNTU1N0eWxlRGVjbGFyYXRpb24uaCAqLywKLQkJCQk4NTAzMkREMjBBQThD
OUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbi5tbSAqLywKLQkJCQk4NTAzMkRE
MzBBQThDOUJFMDA3RDNCN0QgLyogRE9NQ1NTU3R5bGVSdWxlLmggKi8sCi0JCQkJODUwMzJERDQw
QUE4QzlCRTAwN0QzQjdEIC8qIERPTUNTU1N0eWxlUnVsZS5tbSAqLywKLQkJCQk4NThDMzkyNjBB
QThGRjlEMDBCMTg3QTQgLyogRE9NQ1NTU3R5bGVTaGVldC5oICovLAotCQkJCTg1OEMzOTI3MEFB
OEZGOUQwMEIxODdBNCAvKiBET01DU1NTdHlsZVNoZWV0Lm1tICovLAotCQkJCTg1MDMyREQ1MEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3duUnVsZS5oICovLAotCQkJCTg1MDMyREQ2MEFB
OEM5QkUwMDdEM0I3RCAvKiBET01DU1NVbmtub3duUnVsZS5tbSAqLywKLQkJCQk4NThDMzgxQTBB
QThFMjk2MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUuaCAqLywKLQkJCQk4NThDMzgxQjBBQThFMjk2
MDBCMTg3QTQgLyogRE9NQ1NTVmFsdWUubW0gKi8sCi0JCQkJODU4QzM4M0EwQUE4RUQ4MjAwQjE4
N0E0IC8qIERPTUNTU1ZhbHVlTGlzdC5oICovLAotCQkJCTg1OEMzODNCMEFBOEVEODIwMEIxODdB
NCAvKiBET01DU1NWYWx1ZUxpc3QubW0gKi8sCi0JCQkJODU4QzM4QTMwQUE4RjIwNDAwQjE4N0E0
IC8qIERPTVJlY3QuaCAqLywKLQkJCQk4NThDMzhBNDBBQThGMjA0MDBCMTg3QTQgLyogRE9NUmVj
dC5tbSAqLywKLQkJCQk4NTVEMzU4OTBBRDcwNzMxMDAxOUFBQzcgLyogRE9NUkdCQ29sb3IuaCAq
LywKLQkJCQlCQ0FFRkNBRDEwMTZDRTRBMDA0MEQzNEUgLyogRE9NUkdCQ29sb3IubW0gKi8sCi0J
CQkpOwotCQkJbmFtZSA9IENTUzsKLQkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7Ci0JCX07Ci0J
CTg1QUZBN0FCMEFBRjNCQjAwMEU4NDMwNSAvKiBFdmVudHMgKi8gPSB7Ci0JCQlpc2EgPSBQQlhH
cm91cDsKLQkJCWNoaWxkcmVuID0gKAotCQkJCTg1QUZBODIwMEFBRjUyOEEwMEU4NDMwNSAvKiBE
T01FdmVudC5oICovLAotCQkJCTg1QUZBODIxMEFBRjUyOEEwMEU4NDMwNSAvKiBET01FdmVudC5t
bSAqLywKLQkJCQk4NUQyQUQ2NzBBQjFBNDBBMDBDMzEzRUEgLyogRE9NRXZlbnRMaXN0ZW5lci5o
ICovLAotCQkJCTg1NDA3NTFGMEFENkM1RkIwMDYyMEM1NyAvKiBET01FdmVudFRhcmdldC5oICov
LAotCQkJCTg1RkYzMTU4MEFBRkJGQ0IwMDM3NEYzOCAvKiBET01LZXlib2FyZEV2ZW50LmggKi8s
Ci0JCQkJODVGRjMxNTkwQUFGQkZDQjAwMzc0RjM4IC8qIERPTUtleWJvYXJkRXZlbnQubW0gKi8s
Ci0JCQkJODU3RTBCMjMwQUIwNDM0NjAwMzZFNDQ3IC8qIERPTU1vdXNlRXZlbnQuaCAqLywKLQkJ
CQk4NTdFMEIyNDBBQjA0MzQ2MDAzNkU0NDcgLyogRE9NTW91c2VFdmVudC5tbSAqLywKLQkJCQk4
NUM3RjVCQzBBQUZCN0NDMDA0MDE0REQgLyogRE9NTXV0YXRpb25FdmVudC5oICovLAotCQkJCTg1
QzdGNUJEMEFBRkI3Q0MwMDQwMTRERCAvKiBET01NdXRhdGlvbkV2ZW50Lm1tICovLAotCQkJCTg1
QzdGNUNFMEFBRkI4RDkwMDQwMTRERCAvKiBET01PdmVyZmxvd0V2ZW50LmggKi8sCi0JCQkJODVD
N0Y1Q0YwQUFGQjhEOTAwNDAxNEREIC8qIERPTU92ZXJmbG93RXZlbnQubW0gKi8sCi0JCQkJQkND
NTczMzMwRDY5NUJCRTAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnQuaCAqLywKLQkJCQlCQ0M1
NzMzNDBENjk1QkJFMDA2RUY1MTcgLyogRE9NUHJvZ3Jlc3NFdmVudC5tbSAqLywKLQkJCQk5MzNB
MTQ3NTBCN0QxQkFGMDBBNTNGRkQgLyogRE9NVGV4dEV2ZW50LmggKi8sCi0JCQkJOTMzQTE0QTkw
QjdEMUQwOTAwQTUzRkZEIC8qIERPTVRleHRFdmVudC5tbSAqLywKLQkJCQk4NUM3RjQ4RjBBQUY3
OURDMDA0MDE0REQgLyogRE9NVUlFdmVudC5oICovLAotCQkJCTg1QzdGNDkwMEFBRjc5REMwMDQw
MTRERCAvKiBET01VSUV2ZW50Lm1tICovLAotCQkJCTg1QzdGNUU1MEFBRkJBRkIwMDQwMTRERCAv
KiBET01XaGVlbEV2ZW50LmggKi8sCi0JCQkJODVDN0Y1RTYwQUFGQkFGQjAwNDAxNEREIC8qIERP
TVdoZWVsRXZlbnQubW0gKi8sCi0JCQkpOwotCQkJbmFtZSA9IEV2ZW50czsKLQkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7Ci0JCX07CiAJCTg1QjIzMjI2MEE4QkYzQTEwMEZERjQ3QiAvKiBEZXJp
dmVkIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAog
CQkJCTg1OTY3RDlGMEFBOEJCNTkwMDVGRURFRSAvKiBDb3JlICovLAotCQkJCTg1OTY3RENBMEFB
OEJGMEYwMDVGRURFRSAvKiBDU1MgKi8sCi0JCQkJODVBRkE3QUIwQUFGM0JCMDAwRTg0MzA1IC8q
IEV2ZW50cyAqLywKIAkJCQk4NUU3MTEzRDBBQzVENEExMDA1MzI3MEYgLyogSW50ZXJuYWwgKi8s
CiAJCQkpOwogCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOwpAQCAtMTg1OTAsMjEgKzE4NjE1
LDYgQEAKIAkJCQk4NUU3MTEzRjBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ0RBVEFTZWN0aW9uSW50
ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE0MDBBQzVENTM0MDA1MzI3MEYgLyogRE9NQ2hhcmFjdGVy
RGF0YUludGVybmFsLmggKi8sCiAJCQkJODVFNzExNDEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNv
bW1lbnRJbnRlcm5hbC5oICovLAotCQkJCTg1RTcxMTQyMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01D
b3VudGVySW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNEMzBBQ0M3QTdFMDBERjAxRjEgLyogRE9N
Q1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q0MEFDQzdBN0UwMERGMDFG
MSAvKiBET01DU1NGb250RmFjZVJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q1MEFDQzdB
N0UwMERGMDFGMSAvKiBET01DU1NJbXBvcnRSdWxlSW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNE
NjBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTTWVkaWFSdWxlSW50ZXJuYWwuaCAqLywKLQkJCQk4
NTkwOUNENzBBQ0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTUGFnZVJ1bGVJbnRlcm5hbC5oICovLAot
CQkJCTg1OTA5RDI2MEFDQzdENTUwMERGMDFGMSAvKiBET01DU1NQcmltaXRpdmVWYWx1ZUludGVy
bmFsLmggKi8sCi0JCQkJODVCNDk4RUMwQURCMzJGQjAwOTI1Q0JCIC8qIERPTUNTU1J1bGVJbnRl
cm5hbC5oICovLAotCQkJCTg1RTcxMTQzMEFDNUQ1MzQwMDUzMjcwRiAvKiBET01DU1NSdWxlTGlz
dEludGVybmFsLmggKi8sCi0JCQkJODVFNzExNDQwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUNTU1N0
eWxlRGVjbGFyYXRpb25JbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0Q5MEFDQzdBN0UwMERGMDFG
MSAvKiBET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1OTA5Q0RBMEFDQzdBN0Uw
MERGMDFGMSAvKiBET01DU1NTdHlsZVNoZWV0SW50ZXJuYWwuaCAqLywKLQkJCQk4NTkwOUNEQjBB
Q0M3QTdFMDBERjAxRjEgLyogRE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oICovLAotCQkJCTg1
QjQ5OEYyMEFEQjMzNkEwMDkyNUNCQiAvKiBET01DU1NWYWx1ZUludGVybmFsLmggKi8sCi0JCQkJ
ODU5MDlEMjgwQUNDN0Q1NTAwREYwMUYxIC8qIERPTUNTU1ZhbHVlTGlzdEludGVybmFsLmggKi8s
CiAJCQkJODVFNzExNDUwQUM1RDUzNDAwNTMyNzBGIC8qIERPTURvY3VtZW50RnJhZ21lbnRJbnRl
cm5hbC5oICovLAogCQkJCTg1RTcxMTQ2MEFDNUQ1MzQwMDUzMjcwRiAvKiBET01Eb2N1bWVudElu
dGVybmFsLmggKi8sCiAJCQkJODVFNzExNDcwQUM1RDUzNDAwNTMyNzBGIC8qIERPTURvY3VtZW50
VHlwZUludGVybmFsLmggKi8sCkBAIC0xODYxMiwyMyArMTg2MjIsMTIgQEAKIAkJCQk4NUU3MTE0
OTBBQzVENTM0MDA1MzI3MEYgLyogRE9NRWxlbWVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzEx
NEEwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eUludGVybmFsLmggKi8sCiAJCQkJODVFNzEx
NEIwQUM1RDUzNDAwNTMyNzBGIC8qIERPTUVudGl0eVJlZmVyZW5jZUludGVybmFsLmggKi8sCi0J
CQkJODVCNDk4RjQwQURCMzM3QTAwOTI1Q0JCIC8qIERPTUV2ZW50SW50ZXJuYWwuaCAqLywKLQkJ
CQk4NTk4OURDNTBBQ0M4QkJEMDBBMEJDNTEgLyogRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgg
Ki8sCi0JCQkJODU5ODlEQzYwQUNDOEJCRDAwQTBCQzUxIC8qIERPTU1vdXNlRXZlbnRJbnRlcm5h
bC5oICovLAotCQkJCTg1OTg5REM3MEFDQzhCQkQwMEEwQkM1MSAvKiBET01NdXRhdGlvbkV2ZW50
SW50ZXJuYWwuaCAqLywKIAkJCQk4NUU3MTE4MzBBQzVENTM1MDA1MzI3MEYgLyogRE9NTmFtZWRO
b2RlTWFwSW50ZXJuYWwuaCAqLywKIAkJCQk4NUI0OThGQTBBREIzNDAyMDA5MjVDQkIgLyogRE9N
Tm9kZUludGVybmFsLmggKi8sCiAJCQkJODVFNzExODQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTU5v
ZGVMaXN0SW50ZXJuYWwuaCAqLywKLQkJCQk4NTk4OURDODBBQ0M4QkJEMDBBMEJDNTEgLyogRE9N
T3ZlcmZsb3dFdmVudEludGVybmFsLmggKi8sCiAJCQkJODVFNzExODYwQUM1RDUzNTAwNTMyNzBG
IC8qIERPTVByb2Nlc3NpbmdJbnN0cnVjdGlvbkludGVybmFsLmggKi8sCi0JCQkJQkNDNTczMzcw
RDY5NUJENzAwNkVGNTE3IC8qIERPTVByb2dyZXNzRXZlbnRJbnRlcm5hbC5oICovLAotCQkJCTg1
RTcxMTg3MEFDNUQ1MzUwMDUzMjcwRiAvKiBET01SZWN0SW50ZXJuYWwuaCAqLywKLQkJCQlCQ0Qw
RkM0RTBEQkQ3MjBCMDBCMkY2MzAgLyogRE9NUkdCQ29sb3JJbnRlcm5hbC5oICovLAogCQkJCTBG
RjUwMjYyMTAyQkE5MkIwMDY2RjM5QSAvKiBET01TdHlsZU1lZGlhSW50ZXJuYWwuaCAqLywKLQkJ
CQk0NDI5QUIwNzBDQjg0RjgxMDA3NjQ3QzUgLyogRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCAqLywK
IAkJCQk4NUU3MTE4QTBBQzVENTM1MDA1MzI3MEYgLyogRE9NVGV4dEludGVybmFsLmggKi8sCi0J
CQkJODU5ODlEQzkwQUNDOEJCRDAwQTBCQzUxIC8qIERPTVVJRXZlbnRJbnRlcm5hbC5oICovLAot
CQkJCTg1OTg5RENBMEFDQzhCQkQwMEEwQkM1MSAvKiBET01XaGVlbEV2ZW50SW50ZXJuYWwuaCAq
LywKIAkJCSk7CiAJCQluYW1lID0gSW50ZXJuYWw7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4i
OwpAQCAtMjIyMjEsNiArMjIyMjAsOCBAQAogCQlCQzFBMzc5NDA5N0M2RkM0MDAxOUYzRDggLyog
b2JqYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJMUFG
QzZEMjkxRDUxNUZDOTAwQTQyRkExIC8qIEV2ZW50cyAqLywKKwkJCQkxQUZDNkQyODFENTE1RDY3
MDBBNDJGQTEgLyogQ1NTICovLAogCQkJCTFBQ0YzRkM1MUQ1MDEzQjAwMDYzQUVGQiAvKiBSYW5n
ZXMgKi8sCiAJCQkJMUFDRjNGQzQxRDUwMTNBOTAwNjNBRUZCIC8qIFRyYXZlcnNhbCAqLywKIAkJ
CQkxQUNGM0ZDMzFENTAxM0EwMDA2M0FFRkIgLyogU3R5bGUgU2hlZXRzICovLApAQCAtMjYzMTYs
NiArMjYzMTcsNyBAQAogCQkJCTUxRkI1NTA0MTEzRTNFOTEwMDgyMTE3NiAvKiBKU0Nsb3NlRXZl
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1ODRGRTNDMTg2NEUyRDgwMDg0M0IxMCAvKiBKU0Nv
bW1hbmRMaW5lQVBJSG9zdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOUI2RTEwQkEwRkI3MjAw
ODU0MDY0IC8qIEpTQ29tbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFGQzZEMkExRDUxNjA5
ODAwQTQyRkExIC8qIERPTVRleHRFdmVudEludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk3
OUFDOTIxOTEwOTk0NUM4MDAyMTI2NkUgLyogSlNDb21wb3NpdGlvbkV2ZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGREExNUVCRTEyQjAzRjBCMDAzQTU4M0EgLyogSlNDb252b2x2ZXJOb2RlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTZGRDQ4RTBGNjc2RTkzMDAwOTI4NzMgLyogSlNDb29yZGlu
YXRlcy5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU0NoYXJzZXRSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0NoYXJzZXRSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBiODUyZDhhMjc1OWU2OWIzZDRlZDlj
NDkxMjc4ZTE2Y2M1OTAxOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NQ1NTQ2hhcnNldFJ1bGUuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3Jl
L0RPTUNTU1J1bGUuaD4KKworQGNsYXNzIE5TU3RyaW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxB
QkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01DU1NDaGFyc2V0UnVs
ZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICplbmNv
ZGluZzsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTQ2hhcnNldFJ1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0No
YXJzZXRSdWxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmMGE0MDFiNmM2OGRlMGFkMTEyZTEzMTZjMzEzMjlk
M2QyNWE5ZWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU0NoYXJzZXRSdWxlLm1tCkBAIC0wLDAgKzEsNjAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NDaGFyc2V0
UnVsZS5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2Rl
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJV
UkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9H
ZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU0NoYXJzZXRS
dWxlKj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4oX2ludGVybmFsKSkKKwor
QGltcGxlbWVudGF0aW9uIERPTUNTU0NoYXJzZXRSdWxlCisKKy0gKE5TU3RyaW5nICopZW5jb2Rp
bmcKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0
dXJuIElNUEwtPmVuY29kaW5nKCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTQ2hhcnNldFJ1
bGUqIGNvcmUoRE9NQ1NTQ2hhcnNldFJ1bGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBw
ZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU0NoYXJzZXRSdWxlKj4od3JhcHBlci0+
X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU0NoYXJzZXRSdWxlICpraXQoV2ViQ29yZTo6Q1NT
Q2hhcnNldFJ1bGUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1Jv
dW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU0NoYXJzZXRSdWxlKj4oa2l0
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTQ2hhcnNldFJ1bGVJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NDaGFyc2V0UnVsZUludGVybmFs
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjVkMmVhMzNiMTdhYzE4ZTk5MmMxYTQ1NzFlN2M4ZjYzY2MwMGQxNQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTQ2hh
cnNldFJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTQ2hh
cnNldFJ1bGUuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTQ2hhcnNldFJ1bGU7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU0NoYXJzZXRSdWxlKiBjb3JlKERPTUNT
U0NoYXJzZXRSdWxlICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTQ2hhcnNldFJ1bGUgKmtpdChX
ZWJDb3JlOjpDU1NDaGFyc2V0UnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTRm9udEZhY2VSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjM4YzM0Njk1ZGNlODgwM2Rh
YTI5MTBlMjA2OWI5ZWYwNDU5NDNmYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NQ1NTRm9udEZhY2VSdWxlLmgKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8
V2ViQ29yZS9ET01DU1NSdWxlLmg+CisKK0BjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOwor
CitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBET01DU1NGb250RmFjZVJ1bGUgOiBET01DU1NSdWxlCitAcHJvcGVydHkgKHJlYWRvbmx5
LCBzdHJvbmcpIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKnN0eWxlOworQGVuZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMGFhYzA1N2JjMzQzM2I0NWMzZjUzZTYwOTJlNGMwNGIyZDI2Yzg1Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NGb250RmFjZVJ1bGUu
bW0KQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
CisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01DU1NGb250RmFj
ZVJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NGb250RmFjZVJ1bGUuaCIKKyNpbXBvcnQg
IkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgor
I2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbkludGVybmFsLmgiCisjaW1wb3J0ICJET01O
b2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlN0eWxlUHJvcGVydGllcy5oIgorI2lt
cG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNv
cmU6OkNTU0ZvbnRGYWNlUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+
KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NGb250RmFjZVJ1bGUKKworLSAo
RE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqKXN0eWxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+c3R5
bGUoKSkpOworfQorCitAZW5kCisKK1dlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSogY29yZShET01D
U1NGb250RmFjZVJ1bGUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSo+KHdyYXBwZXItPl9pbnRlcm5hbCkg
OiAwOworfQorCitET01DU1NGb250RmFjZVJ1bGUgKmtpdChXZWJDb3JlOjpDU1NGb250RmFjZVJ1
bGUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU0ZvbnRGYWNlUnVsZSo+KGtpdChzdGF0aWNf
Y2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ZvbnRGYWNlUnVsZUludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uOTQyODg5NDkxMDVlMmQ2NjkwMGRmZjk5MTU3NGM5N2ExMGI1MGQ3OQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTRm9udEZhY2VS
dWxlSW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0
LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU0ZvbnRGYWNl
UnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NGb250RmFjZVJ1bGU7Cit9
CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU0ZvbnRGYWNlUnVsZSogY29yZShET01DU1NG
b250RmFjZVJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NGb250RmFjZVJ1bGUgKmtpdChX
ZWJDb3JlOjpDU1NGb250RmFjZVJ1bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1NJbXBvcnRSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWY3ZjAxNzY3YjgwMDk2YjY1MTNi
ZDhlMWU3YjZiMjU3ZDY3Mjg2MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5oCkBAIC0wLDAgKzEsMzcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NQ1NTUnVsZS5oPgorCitAY2xhc3MgRE9NQ1NTU3R5bGVTaGVldDsKK0BjbGFzcyBET01N
ZWRpYUxpc3Q7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFD
KDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERPTUNTU0ltcG9ydFJ1bGUgOiBET01D
U1NSdWxlCitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBOU1N0cmluZyAqaHJlZjsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9NTWVkaWFMaXN0ICptZWRpYTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHksIHN0cm9uZykgRE9NQ1NTU3R5bGVTaGVldCAqc3R5bGVTaGVldDsKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZS5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iMWE5ZmQzYTA3OWJlNTFiZmE3M2FjNjIzNWRiYjA4YzczNzc5Y2RhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NJbXBvcnRSdWxl
Lm1tCkBAIC0wLDAgKzEsNzYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ1NTSW1wb3J0
UnVsZUludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU0ltcG9ydFJ1bGUuaCIKKyNpbXBvcnQgIkNT
U1N0eWxlU2hlZXQuaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NQ1NTU3R5bGVTaGVldEludGVybmFsLmgiCisjaW1wb3J0ICJET01NZWRpYUxpc3RJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJNZWRp
YUxpc3QuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBv
cnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKwor
I2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU0ltcG9ydFJ1bGUqPihyZWludGVy
cHJldF9jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRp
b24gRE9NQ1NTSW1wb3J0UnVsZQorCistIChOU1N0cmluZyAqKWhyZWYKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmhyZWYoKTsK
K30KKworLSAoRE9NTWVkaWFMaXN0ICopbWVkaWEKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5tZWRp
YSgpKSk7Cit9CisKKy0gKERPTUNTU1N0eWxlU2hlZXQgKilzdHlsZVNoZWV0Cit7CisgICAgV2Vi
Q29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpn
ZXRQdHIoSU1QTC0+c3R5bGVTaGVldCgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTSW1w
b3J0UnVsZSogY29yZShET01DU1NJbXBvcnRSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3
cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NJbXBvcnRSdWxlKj4od3JhcHBl
ci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU0ltcG9ydFJ1bGUgKmtpdChXZWJDb3JlOjpD
U1NJbXBvcnRSdWxlKiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NJbXBvcnRSdWxlKj4oa2l0
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTSW1wb3J0UnVsZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ltcG9ydFJ1bGVJbnRlcm5hbC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcwMjhhMTc3YmJmYzQxNTlmNmQ5ODkzZjFlYTFiMWM5NDY5MDdiZTIKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU0ltcG9y
dFJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTSW1wb3J0
UnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NJbXBvcnRSdWxlOworfQor
CitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpDU1NJbXBvcnRSdWxlKiBjb3JlKERPTUNTU0ltcG9y
dFJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NJbXBvcnRSdWxlICpraXQoV2ViQ29yZTo6
Q1NTSW1wb3J0UnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NNZWRpYVJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
TWVkaWFSdWxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ4NDUzYTIzZjM4YTE5MjU0ZmRkMjFiMzhjMGIxZGVl
ZDRiZjQ0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTTWVkaWFSdWxlLmgKQEAgLTAsMCArMSw0MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01DU1NSdWxl
Lmg+CisKK0BjbGFzcyBET01DU1NSdWxlTGlzdDsKK0BjbGFzcyBET01NZWRpYUxpc3Q7CitAY2xh
c3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JF
X0VYUE9SVCBAaW50ZXJmYWNlIERPTUNTU01lZGlhUnVsZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0
eSAocmVhZG9ubHksIHN0cm9uZykgRE9NTWVkaWFMaXN0ICptZWRpYTsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIHN0cm9uZykgRE9NQ1NTUnVsZUxpc3QgKmNzc1J1bGVzOworCistICh1bnNpZ25lZClp
bnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9B
VkFJTEFCTEVfTUFDKDEwXzUpOworLSAodm9pZClkZWxldGVSdWxlOih1bnNpZ25lZClpbmRleDsK
K0BlbmQKKworQGludGVyZmFjZSBET01DU1NNZWRpYVJ1bGUgKERPTUNTU01lZGlhUnVsZURlcHJl
Y2F0ZWQpCistICh1bnNpZ25lZClpbnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgOih1bnNpZ25l
ZClpbmRleCBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU01lZGlhUnVsZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVkaWFSdWxlLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjU5MmIxM2NiMTQxZGYyODZlZjVjNzI0MDVjZjI4YmM4MTU3YTFmYjUKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU01lZGlhUnVsZS5tbQpAQCAt
MCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU01lZGlhUnVsZUludGVy
bmFsLmgiCisKKyNpbXBvcnQgIkNTU01lZGlhUnVsZS5oIgorI2ltcG9ydCAiQ1NTUnVsZUxpc3Qu
aCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUxp
c3RJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTWVkaWFMaXN0SW50ZXJuYWwuaCIKKyNpbXBvcnQg
IkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBv
cnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiTWVkaWFMaXN0LmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRP
YmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBz
dGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NNZWRpYVJ1bGUqPihyZWludGVycHJldF9jYXN0PFdlYkNv
cmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NQ1NTTWVkaWFS
dWxlCisKKy0gKERPTU1lZGlhTGlzdCAqKW1lZGlhCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bWVk
aWEoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAqKWNzc1J1bGVzCit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQ
dHIoSU1QTC0+Y3NzUnVsZXMoKSkpOworfQorCistICh1bnNpZ25lZClpbnNlcnRSdWxlOihOU1N0
cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVj
KTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7
Cit9CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5nICopcnVsZSA6KHVuc2lnbmVk
KWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElN
UEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9N
RXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHZvaWQpZGVsZXRlUnVsZToo
dW5zaWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+ZGVsZXRl
UnVsZShpbmRleCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisK
K0BlbmQKKworV2ViQ29yZTo6Q1NTTWVkaWFSdWxlKiBjb3JlKERPTUNTU01lZGlhUnVsZSAqd3Jh
cHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
Q1NTTWVkaWFSdWxlKj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU01lZGlh
UnVsZSAqa2l0KFdlYkNvcmU6OkNTU01lZGlhUnVsZSogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
Q1NTTWVkaWFSdWxlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPih2YWx1ZSkp
KTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVk
aWFSdWxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTTWVk
aWFSdWxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MzRkZDU0YjA2MzU3YmFlNWQwZDhhNWVhNzIw
NzA5NTBjNDkxZmM3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
b2JqYy9ET01DU1NNZWRpYVJ1bGVJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NQ1NTTWVkaWFSdWxlLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENTU01l
ZGlhUnVsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTTWVkaWFSdWxlKiBjb3Jl
KERPTUNTU01lZGlhUnVsZSAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU01lZGlhUnVsZSAqa2l0
KFdlYkNvcmU6OkNTU01lZGlhUnVsZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NQYWdlUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU2NmQ5ZTA5ZjY0MmFkNzk1ZjkxYmNiZmU3
ZGU4NWQ2MWIwYTIzMGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1BhZ2VSdWxlLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01D
U1NSdWxlLmg+CisKK0BjbGFzcyBET01DU1NTdHlsZURlY2xhcmF0aW9uOworQGNsYXNzIE5TU3Ry
aW5nOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQg
QGludGVyZmFjZSBET01DU1NQYWdlUnVsZSA6IERPTUNTU1J1bGUKK0Bwcm9wZXJ0eSAoY29weSkg
TlNTdHJpbmcgKnNlbGVjdG9yVGV4dDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgRE9N
Q1NTU3R5bGVEZWNsYXJhdGlvbiAqc3R5bGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1BhZ2VSdWxlLm1tIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44ZDcyOWZmODQ4NGQ2Y2Zm
YzNlZTFhZmQ2YjQyMDY0MDE1Y2NjODQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZS5tbQpAQCAtMCwwICsxLDc1IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU1BhZ2VSdWxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCAi
Q1NTUGFnZVJ1bGUuaCIKKyNpbXBvcnQgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKKyNpbXBvcnQg
IkRPTUNTU1J1bGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbklu
dGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlv
bkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQg
IlN0eWxlUHJvcGVydGllcy5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVS
TC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dl
dFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUGFnZVJ1bGUq
PihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1J1bGUqPihfaW50ZXJuYWwpKQorCitAaW1w
bGVtZW50YXRpb24gRE9NQ1NTUGFnZVJ1bGUKKworLSAoTlNTdHJpbmcgKilzZWxlY3RvclRleHQK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPnNlbGVjdG9yVGV4dCgpOworfQorCistICh2b2lkKXNldFNlbGVjdG9yVGV4dDooTlNT
dHJpbmcgKiluZXdTZWxlY3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0b3JUZXh0KG5ld1NlbGVjdG9yVGV4dCk7
Cit9CisKKy0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPnN0eWxlKCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpDU1NQYWdlUnVsZSogY29y
ZShET01DU1NQYWdlUnVsZSAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50
ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUGFnZVJ1bGUqPih3cmFwcGVyLT5faW50ZXJuYWwpIDog
MDsKK30KKworRE9NQ1NTUGFnZVJ1bGUgKmtpdChXZWJDb3JlOjpDU1NQYWdlUnVsZSogdmFsdWUp
Cit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1
cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTUGFnZVJ1bGUqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
Q1NTUnVsZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01DU1NQYWdlUnVsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1BhZ2VSdWxlSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjZhZmY5YjM2OTBl
MzQ1YmViYmM0OTFhYzQ1NDg2YmJlYTYwM2ZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQYWdlUnVsZUludGVybmFsLmgKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01DU1NQYWdlUnVsZS5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBDU1NQYWdlUnVsZTsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTUGFn
ZVJ1bGUqIGNvcmUoRE9NQ1NTUGFnZVJ1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NQYWdl
UnVsZSAqa2l0KFdlYkNvcmU6OkNTU1BhZ2VSdWxlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjc1ODY4
MGNkYWU4YWQxN2QxYzM5NmE2ZGJkNWE1MDEwODA3NzgyMAotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMCww
ICsxLDgyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK0BjbGFzcyBET01Db3VudGVy
OworQGNsYXNzIERPTVJHQkNvbG9yOworQGNsYXNzIERPTVJlY3Q7CitAY2xhc3MgTlNTdHJpbmc7
CisKK2VudW0geworICAgIERPTV9DU1NfVU5LTk9XTiA9IDAsCisgICAgRE9NX0NTU19OVU1CRVIg
PSAxLAorICAgIERPTV9DU1NfUEVSQ0VOVEFHRSA9IDIsCisgICAgRE9NX0NTU19FTVMgPSAzLAor
ICAgIERPTV9DU1NfRVhTID0gNCwKKyAgICBET01fQ1NTX1BYID0gNSwKKyAgICBET01fQ1NTX0NN
ID0gNiwKKyAgICBET01fQ1NTX01NID0gNywKKyAgICBET01fQ1NTX0lOID0gOCwKKyAgICBET01f
Q1NTX1BUID0gOSwKKyAgICBET01fQ1NTX1BDID0gMTAsCisgICAgRE9NX0NTU19ERUcgPSAxMSwK
KyAgICBET01fQ1NTX1JBRCA9IDEyLAorICAgIERPTV9DU1NfR1JBRCA9IDEzLAorICAgIERPTV9D
U1NfTVMgPSAxNCwKKyAgICBET01fQ1NTX1MgPSAxNSwKKyAgICBET01fQ1NTX0haID0gMTYsCisg
ICAgRE9NX0NTU19LSFogPSAxNywKKyAgICBET01fQ1NTX0RJTUVOU0lPTiA9IDE4LAorICAgIERP
TV9DU1NfU1RSSU5HID0gMTksCisgICAgRE9NX0NTU19VUkkgPSAyMCwKKyAgICBET01fQ1NTX0lE
RU5UID0gMjEsCisgICAgRE9NX0NTU19BVFRSID0gMjIsCisgICAgRE9NX0NTU19DT1VOVEVSID0g
MjMsCisgICAgRE9NX0NTU19SRUNUID0gMjQsCisgICAgRE9NX0NTU19SR0JDT0xPUiA9IDI1LAor
ICAgIERPTV9DU1NfVlcgPSAyNiwKKyAgICBET01fQ1NTX1ZIID0gMjcsCisgICAgRE9NX0NTU19W
TUlOID0gMjgsCisgICAgRE9NX0NTU19WTUFYID0gMjkKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxF
X01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTUHJpbWl0aXZlVmFsdWUgOiBET01DU1NWYWx1ZQorQHBy
b3BlcnR5IChyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgcHJpbWl0aXZlVHlwZTsKKworLSAodm9p
ZClzZXRGbG9hdFZhbHVlOih1bnNpZ25lZCBzaG9ydCl1bml0VHlwZSBmbG9hdFZhbHVlOihmbG9h
dClmbG9hdFZhbHVlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworLSAoZmxvYXQpZ2V0Rmxv
YXRWYWx1ZToodW5zaWduZWQgc2hvcnQpdW5pdFR5cGU7CistICh2b2lkKXNldFN0cmluZ1ZhbHVl
Oih1bnNpZ25lZCBzaG9ydClzdHJpbmdUeXBlIHN0cmluZ1ZhbHVlOihOU1N0cmluZyAqKXN0cmlu
Z1ZhbHVlIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworLSAoTlNTdHJpbmcgKilnZXRTdHJp
bmdWYWx1ZTsKKy0gKERPTUNvdW50ZXIgKilnZXRDb3VudGVyVmFsdWU7CistIChET01SZWN0ICop
Z2V0UmVjdFZhbHVlOworLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlOworQGVuZAor
CitAaW50ZXJmYWNlIERPTUNTU1ByaW1pdGl2ZVZhbHVlIChET01DU1NQcmltaXRpdmVWYWx1ZURl
cHJlY2F0ZWQpCistICh2b2lkKXNldEZsb2F0VmFsdWU6KHVuc2lnbmVkIHNob3J0KXVuaXRUeXBl
IDooZmxvYXQpZmxvYXRWYWx1ZSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7Cist
ICh2b2lkKXNldFN0cmluZ1ZhbHVlOih1bnNpZ25lZCBzaG9ydClzdHJpbmdUeXBlIDooTlNTdHJp
bmcgKilzdHJpbmdWYWx1ZSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5k
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2
ZVZhbHVlLm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NQcmltaXRpdmVW
YWx1ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5kYjg0MmRiYWU3ZjZjNDgxMzdlM2IwNTNhOTIwYTc0MmJhMTkw
YTdiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
U1NQcmltaXRpdmVWYWx1ZS5tbQpAQCAtMCwwICsxLDE0MyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU1ByaW1p
dGl2ZVZhbHVlLmgiCisjaW1wb3J0ICJDb3VudGVyLmgiCisjaW1wb3J0ICJET01DU1NWYWx1ZUlu
dGVybmFsLmgiCisjaW1wb3J0ICJET01Db3VudGVySW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NUkdCQ29sb3JJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NUmVjdEludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9y
dCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJSR0JDb2xvci5oIgorI2ltcG9y
dCAiUmVjdC5oIgorI2ltcG9ydCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2lt
cG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgor
CisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqPihy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFsKSkKKworQGltcGxl
bWVudGF0aW9uIERPTUNTU1ByaW1pdGl2ZVZhbHVlCisKKy0gKHVuc2lnbmVkIHNob3J0KXByaW1p
dGl2ZVR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnByaW1pdGl2ZVR5cGUoKTsKK30KKworLSAodm9pZClzZXRGbG9hdFZh
bHVlOih1bnNpZ25lZCBzaG9ydCl1bml0VHlwZSBmbG9hdFZhbHVlOihmbG9hdClmbG9hdFZhbHVl
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldEZsb2F0VmFsdWUodW5pdFR5
cGUsIGZsb2F0VmFsdWUsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
fQorCistICh2b2lkKXNldEZsb2F0VmFsdWU6KHVuc2lnbmVkIHNob3J0KXVuaXRUeXBlIDooZmxv
YXQpZmxvYXRWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRGbG9h
dFZhbHVlKHVuaXRUeXBlLCBmbG9hdFZhbHVlLCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRP
TUVycm9yKGVjKTsKK30KKworLSAoZmxvYXQpZ2V0RmxvYXRWYWx1ZToodW5zaWduZWQgc2hvcnQp
dW5pdFR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgZmxvYXQgcmVzdWx0ID0gSU1Q
TC0+Z2V0RmxvYXRWYWx1ZSh1bml0VHlwZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAodm9pZClzZXRTdHJpbmdWYWx1
ZToodW5zaWduZWQgc2hvcnQpc3RyaW5nVHlwZSBzdHJpbmdWYWx1ZTooTlNTdHJpbmcgKilzdHJp
bmdWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBJTVBMLT5zZXRTdHJpbmdWYWx1
ZShzdHJpbmdUeXBlLCBzdHJpbmdWYWx1ZSwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7Cit9CisKKy0gKHZvaWQpc2V0U3RyaW5nVmFsdWU6KHVuc2lnbmVkIHNob3J0KXN0
cmluZ1R5cGUgOihOU1N0cmluZyAqKXN0cmluZ1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAw
OworICAgIElNUEwtPnNldFN0cmluZ1ZhbHVlKHN0cmluZ1R5cGUsIHN0cmluZ1ZhbHVlLCBlYyk7
CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKK30KKworLSAoTlNTdHJpbmcgKiln
ZXRTdHJpbmdWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBOU1N0cmluZyAqcmVz
dWx0ID0gSU1QTC0+Z2V0U3RyaW5nVmFsdWUoZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01F
cnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAoRE9NQ291bnRlciAqKWdldENv
dW50ZXJWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01Db3VudGVyICpyZXN1
bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0Q291bnRlclZhbHVlKGVjKSkpOworICAgIFdl
YkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworLSAo
RE9NUmVjdCAqKWdldFJlY3RWYWx1ZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxT
dGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25Db2RlIGVjID0gMDsKKyAgICBET01S
ZWN0ICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0UmVjdFZhbHVlKGVjKSkpOwor
ICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworLSAoRE9NUkdCQ29sb3IgKilnZXRSR0JDb2xvclZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMg
PSAwOworICAgIERPTVJHQkNvbG9yICpyZXN1bHQgPSBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0
UkdCQ29sb3JWYWx1ZShlYykpKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFs
dWUqIGNvcmUoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdy
YXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlKj4od3Jh
cHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2Vi
Q29yZTo6Q1NTUHJpbWl0aXZlVmFsdWUqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9s
YXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTUNTU1ByaW1p
dGl2ZVZhbHVlKj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1p
dGl2ZVZhbHVlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
UHJpbWl0aXZlVmFsdWVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3NGEwNmJkZmFjMDJhNTFlOWMx
MjdiNTZlOTk4NjYyN2I5OTI4NWMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTUNTU1ByaW1pdGl2ZVZhbHVlSW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ByaW1pdGl2ZVZhbHVlLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK2NsYXNzIENTU1ByaW1pdGl2ZVZhbHVlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJD
b3JlOjpDU1NQcmltaXRpdmVWYWx1ZSogY29yZShET01DU1NQcmltaXRpdmVWYWx1ZSAqKTsKK1dF
QkNPUkVfRVhQT1JUIERPTUNTU1ByaW1pdGl2ZVZhbHVlICpraXQoV2ViQ29yZTo6Q1NTUHJpbWl0
aXZlVmFsdWUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTUnVsZS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWRlYTI3NmVjMjNiMTE0NTVmMTk2YTJjYWEyMjM5YmQ1OGM5YWRjMQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZS5oCkBA
IC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01DU1NS
dWxlOworQGNsYXNzIERPTUNTU1N0eWxlU2hlZXQ7CitAY2xhc3MgTlNTdHJpbmc7CisKK2VudW0g
eworICAgIERPTV9VTktOT1dOX1JVTEUgPSAwLAorICAgIERPTV9TVFlMRV9SVUxFID0gMSwKKyAg
ICBET01fQ0hBUlNFVF9SVUxFID0gMiwKKyAgICBET01fSU1QT1JUX1JVTEUgPSAzLAorICAgIERP
TV9NRURJQV9SVUxFID0gNCwKKyAgICBET01fRk9OVF9GQUNFX1JVTEUgPSA1LAorICAgIERPTV9Q
QUdFX1JVTEUgPSA2LAorICAgIERPTV9LRVlGUkFNRVNfUlVMRSA9IDcsCisgICAgRE9NX0tFWUZS
QU1FX1JVTEUgPSA4LAorICAgIERPTV9TVVBQT1JUU19SVUxFID0gMTIsCisgICAgRE9NX1dFQktJ
VF9SRUdJT05fUlVMRSA9IDE2LAorICAgIERPTV9XRUJLSVRfS0VZRlJBTUVTX1JVTEUgPSA3LAor
ICAgIERPTV9XRUJLSVRfS0VZRlJBTUVfUlVMRSA9IDgKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxF
X01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTUnVsZSA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFk
b25seSkgdW5zaWduZWQgc2hvcnQgdHlwZTsKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNz
c1RleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1N0eWxlU2hlZXQgKnBh
cmVudFN0eWxlU2hlZXQ7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1J1bGUg
KnBhcmVudFJ1bGU7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9v
YmpjL0RPTUNTU1J1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1
bGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMGMwM2RiMDk1NzAxZjk1ZGNmN2EzYWQxNzI5YjdlMGY4NGJlNzM3
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
UnVsZS5tbQpAQCAtMCwwICsxLDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01DU1NS
dWxlSW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTSW1wb3J0UnVsZS5oIgorI2ltcG9ydCAiQ1NT
UnVsZS5oIgorI2ltcG9ydCAiQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAiRE9NSW50ZXJuYWwu
aCIKKyNpbXBvcnQgIkRPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
VVJMLmgiCisjaW1wb3J0ICJXZWJDb3JlT2JqQ0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0
T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwg
cmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4oX2ludGVybmFsKQorCitAaW1wbGVt
ZW50YXRpb24gRE9NQ1NTUnVsZQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29y
ZU9iakNTY2hlZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTUNTU1J1bGUgY2xhc3NdLCBz
ZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKF9pbnRlcm5hbCkKKyAgICAgICAgSU1Q
TC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0
KXR5cGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPnR5cGUoKTsKK30KKworLSAoTlNTdHJpbmcgKiljc3NUZXh0Cit7CisgICAg
V2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5j
c3NUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0Q3NzVGV4dDooTlNTdHJpbmcgKiluZXdDc3NUZXh0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldENzc1RleHQobmV3Q3NzVGV4
dCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25ET01FcnJvcihlYyk7Cit9CisKKy0gKERPTUNT
U1N0eWxlU2hlZXQgKilwYXJlbnRTdHlsZVNoZWV0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cGFy
ZW50U3R5bGVTaGVldCgpKSk7Cit9CisKKy0gKERPTUNTU1J1bGUgKilwYXJlbnRSdWxlCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+cGFyZW50UnVsZSgpKSk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6
Q1NTUnVsZSogY29yZShET01DU1NSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVy
ID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlKj4od3JhcHBlci0+X2ludGVybmFs
KSA6IDA7Cit9CisKK0RPTUNTU1J1bGUgKmtpdChXZWJDb3JlOjpDU1NSdWxlKiB2YWx1ZSkKK3sK
KyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIGlmICghdmFs
dWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYgKERPTUNTU1J1bGUgKndyYXBwZXIgPSBn
ZXRET01XcmFwcGVyKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKKyAgICBET01DU1NSdWxlICp3cmFwcGVyID0gW1traXRDbGFzcyh2YWx1ZSkg
YWxsb2NdIF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVybiBuaWw7Cisg
ICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5h
bCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVy
LCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjgyOWRiMTFkMzYyYjhlOGI3MTY4ZDllYWM2OTQzN2JhYzA2ODZmZjEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVJbnRlcm5hbC5o
CkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTUnVsZS5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CitjbGFzcyBDU1NSdWxlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpD
U1NSdWxlKiBjb3JlKERPTUNTU1J1bGUgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NSdWxlICpr
aXQoV2ViQ29yZTo6Q1NTUnVsZSopOworQ2xhc3Mga2l0Q2xhc3MoV2ViQ29yZTo6Q1NTUnVsZSop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlzdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjk5M2E0ZTc2OGZhYmQzYzhlMDE3ZmQ0ZTI4MDFhZTA5MTE0YWM4OGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVMaXN0LmgK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisg
KiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NV
UkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4KKworQGNsYXNzIERPTUNT
U1J1bGU7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9S
VCBAaW50ZXJmYWNlIERPTUNTU1J1bGVMaXN0IDogRE9NT2JqZWN0CitAcHJvcGVydHkgKHJlYWRv
bmx5KSB1bnNpZ25lZCBsZW5ndGg7CisKKy0gKERPTUNTU1J1bGUgKilpdGVtOih1bnNpZ25lZClp
bmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTUnVsZUxpc3QubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1J1bGVM
aXN0Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmFlMDg4OTBmMmY0NTI5NjFmODY3MDc0OWRhODk5NWYyMGQ1YzVi
NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNT
U1J1bGVMaXN0Lm1tCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQt
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9N
Q1NTUnVsZUxpc3RJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NJbXBvcnRSdWxlLmgiCisjaW1w
b3J0ICJDU1NSdWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NT
UnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9k
ZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNN
YWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAi
V2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIK
KyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTUnVsZUxpc3QqPihfaW50ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01D
U1NSdWxlTGlzdAorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoV2ViQ29yZU9iakNTY2hl
ZHVsZURlYWxsb2NhdGVPbk1haW5UaHJlYWQoW0RPTUNTU1J1bGVMaXN0IGNsYXNzXSwgc2VsZikp
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElNUEwtPmRl
cmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh1bnNpZ25lZClsZW5ndGgKK3sK
KyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElN
UEwtPmxlbmd0aCgpOworfQorCistIChET01DU1NSdWxlICopaXRlbToodW5zaWduZWQpaW5kZXgK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IGtpdChXVEY6OmdldFB0cihJTVBMLT5pdGVtKGluZGV4KSkpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkNTU1J1bGVMaXN0KiBjb3JlKERPTUNTU1J1bGVMaXN0ICp3cmFwcGVyKQoreworICAgIHJl
dHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NSdWxlTGlzdCo+KHdy
YXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01DU1NSdWxlTGlzdCAqa2l0KFdlYkNvcmU6
OkNTU1J1bGVMaXN0KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIGlmICghdmFsdWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYg
KERPTUNTU1J1bGVMaXN0ICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAg
IHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ1NTUnVsZUxp
c3QgKndyYXBwZXIgPSBbW0RPTUNTU1J1bGVMaXN0IGFsbG9jXSBfaW5pdF07CisgICAgd3JhcHBl
ci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJbnRlcm5hbCo+KHZhbHVl
KTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3cmFwcGVyLCB2YWx1ZSk7
CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NSdWxlTGlzdEludGVybmFsLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNWRjMWY1Njk4YTA5YmY0MzIzMjU0MWNmMjI4YzEzODdmNTQwNTA0YwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTUnVsZUxpc3RJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NQ1NTUnVsZUxpc3QuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTUnVsZUxpc3Q7Cit9CisKK1dFQkNPUkVfRVhQT1JU
IFdlYkNvcmU6OkNTU1J1bGVMaXN0KiBjb3JlKERPTUNTU1J1bGVMaXN0ICopOworV0VCQ09SRV9F
WFBPUlQgRE9NQ1NTUnVsZUxpc3QgKmtpdChXZWJDb3JlOjpDU1NSdWxlTGlzdCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9u
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24u
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hMmE0MjM5Zjg3YjQ2MzcyOTFhMGIzMGFiZTRhNzVlYmQ1OGJjOGNjCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHls
ZURlY2xhcmF0aW9uLmgKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAw
NC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01PYmplY3QuaD4K
KworQGNsYXNzIERPTUNTU1J1bGU7CitAY2xhc3MgRE9NQ1NTVmFsdWU7CitAY2xhc3MgTlNTdHJp
bmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBA
aW50ZXJmYWNlIERPTUNTU1N0eWxlRGVjbGFyYXRpb24gOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAo
Y29weSkgTlNTdHJpbmcgKmNzc1RleHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1bnNpZ25lZCBs
ZW5ndGg7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcpIERPTUNTU1J1bGUgKnBhcmVudFJ1
bGU7CisKKy0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlWYWx1ZTooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWU7CistIChET01DU1NWYWx1ZSAqKWdldFByb3BlcnR5Q1NTVmFsdWU6KE5TU3RyaW5nICop
cHJvcGVydHlOYW1lOworLSAoTlNTdHJpbmcgKilyZW1vdmVQcm9wZXJ0eTooTlNTdHJpbmcgKilw
cm9wZXJ0eU5hbWU7CistIChOU1N0cmluZyAqKWdldFByb3BlcnR5UHJpb3JpdHk6KE5TU3RyaW5n
ICopcHJvcGVydHlOYW1lOworLSAodm9pZClzZXRQcm9wZXJ0eTooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWUgcHJpb3JpdHk6KE5TU3RyaW5nICopcHJpb3Jp
dHkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistIChOU1N0cmluZyAqKWl0ZW06KHVuc2ln
bmVkKWluZGV4OworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVNob3J0aGFuZDooTlNTdHJpbmcg
Kilwcm9wZXJ0eU5hbWUgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworLSAoQk9P
TClpc1Byb3BlcnR5SW1wbGljaXQ6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lIFdFQktJVF9BVkFJ
TEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNlIERPTUNTU1N0eWxlRGVjbGFyYXRp
b24gKERPTUNTU1N0eWxlRGVjbGFyYXRpb25EZXByZWNhdGVkKQorLSAodm9pZClzZXRQcm9wZXJ0
eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUgOihOU1N0cmluZyAqKXZhbHVlIDooTlNTdHJpbmcg
Kilwcmlvcml0eSBXRUJLSVRfREVQUkVDQVRFRF9NQUMoMTBfNCwgMTBfNSk7CitAZW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRp
b24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFyYXRp
b24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTZmZmMyMzk5MGNlOWFiZmRiYjAwYWY1MDQ3NjE3ZThkZTlhMDdk
ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
U3R5bGVEZWNsYXJhdGlvbi5tbQpAQCAtMCwwICsxLDE2NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTSW1w
b3J0UnVsZS5oIgorI2ltcG9ydCAiQ1NTUnVsZS5oIgorI2ltcG9ydCAiQ1NTU3R5bGVEZWNsYXJh
dGlvbi5oIgorI2ltcG9ydCAiQ1NTVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUNTU1J1bGVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTU5vZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFu
ZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiVGhy
ZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMu
aCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQ
dHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVE
ZWNsYXJhdGlvbio+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUNTU1N0eWxlRGVj
bGFyYXRpb24KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1
bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01DU1NTdHlsZURlY2xhcmF0aW9uIGNsYXNzXSwg
c2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50ZXJuYWwpCisgICAgICAgIElN
UEwtPmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistIChOU1N0cmluZyAqKWNz
c1RleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmNzc1RleHQoKTsKK30KKworLSAodm9pZClzZXRDc3NUZXh0OihOU1N0cmlu
ZyAqKW5ld0Nzc1RleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0Q3Nz
VGV4dChuZXdDc3NUZXh0LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsK
K30KKworLSAodW5zaWduZWQpbGVuZ3RoCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5sZW5ndGgoKTsKK30KKworLSAoRE9NQ1NT
UnVsZSAqKXBhcmVudFJ1bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5wYXJlbnRSdWxlKCkpKTsK
K30KKworLSAoTlNTdHJpbmcgKilnZXRQcm9wZXJ0eVZhbHVlOihOU1N0cmluZyAqKXByb3BlcnR5
TmFtZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+Z2V0UHJvcGVydHlWYWx1ZShwcm9wZXJ0eU5hbWUpOworfQorCistIChET01D
U1NWYWx1ZSAqKWdldFByb3BlcnR5Q1NTVmFsdWU6KE5TU3RyaW5nICopcHJvcGVydHlOYW1lCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBr
aXQoV1RGOjpnZXRQdHIoSU1QTC0+Z2V0UHJvcGVydHlDU1NWYWx1ZShwcm9wZXJ0eU5hbWUpKSk7
Cit9CisKKy0gKE5TU3RyaW5nICopcmVtb3ZlUHJvcGVydHk6KE5TU3RyaW5nICopcHJvcGVydHlO
YW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdl
YkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIE5TU3RyaW5nICpyZXN1bHQgPSBJTVBM
LT5yZW1vdmVQcm9wZXJ0eShwcm9wZXJ0eU5hbWUsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9u
RE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKE5TU3RyaW5nICopZ2V0
UHJvcGVydHlQcmlvcml0eTooTlNTdHJpbmcgKilwcm9wZXJ0eU5hbWUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmdldFByb3Bl
cnR5UHJpb3JpdHkocHJvcGVydHlOYW1lKTsKK30KKworLSAodm9pZClzZXRQcm9wZXJ0eTooTlNT
dHJpbmcgKilwcm9wZXJ0eU5hbWUgdmFsdWU6KE5TU3RyaW5nICopdmFsdWUgcHJpb3JpdHk6KE5T
U3RyaW5nICopcHJpb3JpdHkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7CisgICAgSU1QTC0+c2V0
UHJvcGVydHkocHJvcGVydHlOYW1lLCB2YWx1ZSwgcHJpb3JpdHksIGVjKTsKKyAgICBXZWJDb3Jl
OjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCistICh2b2lkKXNldFByb3BlcnR5OihOU1N0cmlu
ZyAqKXByb3BlcnR5TmFtZSA6KE5TU3RyaW5nICopdmFsdWUgOihOU1N0cmluZyAqKXByaW9yaXR5
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNv
cmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnNldFByb3BlcnR5KHByb3BlcnR5
TmFtZSwgdmFsdWUsIHByaW9yaXR5LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9y
KGVjKTsKK30KKworLSAoTlNTdHJpbmcgKilpdGVtOih1bnNpZ25lZClpbmRleAoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+aXRl
bShpbmRleCk7Cit9CisKKy0gKE5TU3RyaW5nICopZ2V0UHJvcGVydHlTaG9ydGhhbmQ6KE5TU3Ry
aW5nICopcHJvcGVydHlOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5nZXRQcm9wZXJ0eVNob3J0aGFuZChwcm9wZXJ0eU5h
bWUpOworfQorCistIChCT09MKWlzUHJvcGVydHlJbXBsaWNpdDooTlNTdHJpbmcgKilwcm9wZXJ0
eU5hbWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPmlzUHJvcGVydHlJbXBsaWNpdChwcm9wZXJ0eU5hbWUpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OkNTU1N0eWxlRGVjbGFyYXRpb24qIGNvcmUoRE9NQ1NTU3R5bGVEZWNsYXJh
dGlvbiAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbio+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01DU1NTdHlsZURlY2xhcmF0aW9uICpraXQoV2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJh
dGlvbiogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUo
KTsKKyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01DU1NT
dHlsZURlY2xhcmF0aW9uICp3cmFwcGVyID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAg
IHJldHVybiBbW3dyYXBwZXIgcmV0YWluXSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ1NTU3R5bGVE
ZWNsYXJhdGlvbiAqd3JhcHBlciA9IFtbRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiBhbGxvY10gX2lu
aXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0
SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIo
d3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlRGVjbGFy
YXRpb25JbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHls
ZURlY2xhcmF0aW9uSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41MDRhMmNiOWQ3MTQ0NjY2YzJmOWUw
ODZlOWIxNTdmMDZhYTE5ODlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01DU1NTdHlsZURlY2xhcmF0aW9uSW50ZXJuYWwuaApAQCAtMCwwICsxLDMz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTUNTU1N0eWxlRGVjbGFyYXRpb24uaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworY2xhc3MgQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK30KKworV0VCQ09SRV9FWFBPUlQg
V2ViQ29yZTo6Q1NTU3R5bGVEZWNsYXJhdGlvbiogY29yZShET01DU1NTdHlsZURlY2xhcmF0aW9u
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbiAqa2l0KFdlYkNvcmU6
OkNTU1N0eWxlRGVjbGFyYXRpb24qKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTUNTU1N0eWxlUnVsZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5NWI0NWY1ZjgxNmFjODYxNjUwMzFlZTY0
OGYyMjE2MWE4ZjgwMTIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTUNTU1N0eWxlUnVsZS5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9N
Q1NTUnVsZS5oPgorCitAY2xhc3MgRE9NQ1NTU3R5bGVEZWNsYXJhdGlvbjsKK0BjbGFzcyBOU1N0
cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JU
IEBpbnRlcmZhY2UgRE9NQ1NTU3R5bGVSdWxlIDogRE9NQ1NTUnVsZQorQHByb3BlcnR5IChjb3B5
KSBOU1N0cmluZyAqc2VsZWN0b3JUZXh0OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBE
T01DU1NTdHlsZURlY2xhcmF0aW9uICpzdHlsZTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLm1tIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGUubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjZjliNWVjMDQy
N2EwN2QwYjZlNmQ4ZTg3YTE0MzBkOTU1Yzg0ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVSdWxlLm1tCkBAIC0wLDAgKzEsNzUgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgor
ICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBv
cnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ1NTU3R5bGVSdWxlSW50ZXJuYWwuaCIKKworI2lt
cG9ydCAiQ1NTU3R5bGVEZWNsYXJhdGlvbi5oIgorI2ltcG9ydCAiQ1NTU3R5bGVSdWxlLmgiCisj
aW1wb3J0ICJET01DU1NSdWxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUNTU1N0eWxlRGVjbGFy
YXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJF
eGNlcHRpb25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisj
aW1wb3J0ICJTdHlsZVByb3BlcnRpZXMuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1w
b3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQg
PHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1N0
eWxlUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NTdHlsZVJ1bGUKKworLSAoTlNTdHJpbmcgKilzZWxl
Y3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgcmV0dXJuIElNUEwtPnNlbGVjdG9yVGV4dCgpOworfQorCistICh2b2lkKXNldFNlbGVjdG9y
VGV4dDooTlNTdHJpbmcgKiluZXdTZWxlY3RvclRleHQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+c2V0U2VsZWN0b3JUZXh0KG5ld1NlbGVj
dG9yVGV4dCk7Cit9CisKKy0gKERPTUNTU1N0eWxlRGVjbGFyYXRpb24gKilzdHlsZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdU
Rjo6Z2V0UHRyKElNUEwtPnN0eWxlKCkpKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpDU1NTdHls
ZVJ1bGUqIGNvcmUoRE9NQ1NTU3R5bGVSdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFw
cGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NTdHlsZVJ1bGUqPih3cmFwcGVyLT5f
aW50ZXJuYWwpIDogMDsKK30KKworRE9NQ1NTU3R5bGVSdWxlICpraXQoV2ViQ29yZTo6Q1NTU3R5
bGVSdWxlKiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9u
ZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NTdHlsZVJ1bGUqPihraXQoc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6Q1NTUnVsZSo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVJ1bGVJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjc0NzE2NTljOTQ5MTlkNWJlMjYzYmQxZWMzZDJhODJiYmJjYjI2ZWQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlUnVsZUludGVy
bmFsLmgKQEAgLTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01DU1NTdHlsZVJ1bGUuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTU3R5bGVSdWxlOworfQorCitXRUJDT1JFX0VY
UE9SVCBXZWJDb3JlOjpDU1NTdHlsZVJ1bGUqIGNvcmUoRE9NQ1NTU3R5bGVSdWxlICopOworV0VC
Q09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVSdWxlICpraXQoV2ViQ29yZTo6Q1NTU3R5bGVSdWxlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hl
ZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTU3R5bGVTaGVldC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM1NWFhNDI5MDY4ZGEwNDhiOTg2ZTZiZTJmMzJjZDE1OGQzYjA3NzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hl
ZXQuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVN0eWxlU2hlZXQuaD4KKworQGNs
YXNzIERPTUNTU1J1bGU7CitAY2xhc3MgRE9NQ1NTUnVsZUxpc3Q7CitAY2xhc3MgTlNTdHJpbmc7
CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50
ZXJmYWNlIERPTUNTU1N0eWxlU2hlZXQgOiBET01TdHlsZVNoZWV0CitAcHJvcGVydHkgKHJlYWRv
bmx5LCBzdHJvbmcpIERPTUNTU1J1bGUgKm93bmVyUnVsZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHks
IHN0cm9uZykgRE9NQ1NTUnVsZUxpc3QgKmNzc1J1bGVzOworQHByb3BlcnR5IChyZWFkb25seSwg
c3Ryb25nKSBET01DU1NSdWxlTGlzdCAqcnVsZXMgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNik7
CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5nICopcnVsZSBpbmRleDoodW5zaWdu
ZWQpaW5kZXggV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CistICh2b2lkKWRlbGV0ZVJ1bGU6
KHVuc2lnbmVkKWluZGV4OworLSAoaW50KWFkZFJ1bGU6KE5TU3RyaW5nICopc2VsZWN0b3Igc3R5
bGU6KE5TU3RyaW5nICopc3R5bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9BVkFJTEFC
TEVfTUFDKDEwXzYpOworLSAodm9pZClyZW1vdmVSdWxlOih1bnNpZ25lZClpbmRleCBXRUJLSVRf
QVZBSUxBQkxFX01BQygxMF82KTsKK0BlbmQKKworQGludGVyZmFjZSBET01DU1NTdHlsZVNoZWV0
IChET01DU1NTdHlsZVNoZWV0RGVwcmVjYXRlZCkKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5T
U3RyaW5nICopcnVsZSA6KHVuc2lnbmVkKWluZGV4IFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80
LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMv
RE9NQ1NTU3R5bGVTaGVldC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NT
U3R5bGVTaGVldC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMDE2OGEwMTAyOTllMTg2ZWZiOTBhMzQ2ZWU1ZmVj
MTRmNzg0OWE4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2Jq
Yy9ET01DU1NTdHlsZVNoZWV0Lm1tCkBAIC0wLDAgKzEsMTIwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNp
bXBvcnQgIkRPTUNTU1N0eWxlU2hlZXRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NJbXBvcnRS
dWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlLmgiCisjaW1wb3J0ICJDU1NSdWxlTGlzdC5oIgorI2lt
cG9ydCAiQ1NTU3R5bGVTaGVldC5oIgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisj
aW1wb3J0ICJET01DU1NSdWxlTGlzdEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkRPTVN0eWxlU2hlZXRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRXhjZXB0
aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFpblRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9y
dCAiVGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2Jq
ZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29y
ZTo6U3R5bGVTaGVldCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NTdHls
ZVNoZWV0CisKKy0gKERPTUNTU1J1bGUgKilvd25lclJ1bGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBM
LT5vd25lclJ1bGUoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAqKWNzc1J1bGVzCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBraXQo
V1RGOjpnZXRQdHIoSU1QTC0+Y3NzUnVsZXMoKSkpOworfQorCistIChET01DU1NSdWxlTGlzdCAq
KXJ1bGVzCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+cnVsZXMoKSkpOworfQorCistICh1bnNpZ25l
ZClpbnNlcnRSdWxlOihOU1N0cmluZyAqKXJ1bGUgaW5kZXg6KHVuc2lnbmVkKWluZGV4Cit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4
Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVuc2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1
bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOwor
ICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0gKHVuc2lnbmVkKWluc2VydFJ1bGU6KE5TU3RyaW5n
ICopcnVsZSA6KHVuc2lnbmVkKWluZGV4Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIHVu
c2lnbmVkIHJlc3VsdCA9IElNUEwtPmluc2VydFJ1bGUocnVsZSwgaW5kZXgsIGVjKTsKKyAgICBX
ZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKKy0g
KHZvaWQpZGVsZXRlUnVsZToodW5zaWduZWQpaW5kZXgKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgV2ViQ29yZTo6RXhjZXB0aW9uQ29kZSBlYyA9IDA7
CisgICAgSU1QTC0+ZGVsZXRlUnVsZShpbmRleCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25E
T01FcnJvcihlYyk7Cit9CisKKy0gKGludClhZGRSdWxlOihOU1N0cmluZyAqKXNlbGVjdG9yIHN0
eWxlOihOU1N0cmluZyAqKXN0eWxlIGluZGV4Oih1bnNpZ25lZClpbmRleAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBXZWJDb3JlOjpFeGNlcHRpb25D
b2RlIGVjID0gMDsKKyAgICBpbnQgcmVzdWx0ID0gSU1QTC0+YWRkUnVsZShzZWxlY3Rvciwgc3R5
bGUsIGluZGV4LCBlYyk7CisgICAgV2ViQ29yZTo6cmFpc2VPbkRPTUVycm9yKGVjKTsKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCistICh2b2lkKXJlbW92ZVJ1bGU6KHVuc2lnbmVkKWluZGV4Cit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6
OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAgIElNUEwtPnJlbW92ZVJ1bGUoaW5kZXgsIGVjKTsK
KyAgICBXZWJDb3JlOjpyYWlzZU9uRE9NRXJyb3IoZWMpOworfQorCitAZW5kCisKK1dlYkNvcmU6
OkNTU1N0eWxlU2hlZXQqIGNvcmUoRE9NQ1NTU3R5bGVTaGVldCAqd3JhcHBlcikKK3sKKyAgICBy
ZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTU3R5bGVTaGVldCo+
KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01DU1NTdHlsZVNoZWV0ICpraXQoV2Vi
Q29yZTo6Q1NTU3R5bGVTaGVldCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlv
bkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTU3R5bGVTaGVl
dCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpTdHlsZVNoZWV0Kj4odmFsdWUpKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1N0eWxlU2hlZXRJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NTdHlsZVNoZWV0
SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZjFmMWM3Njk4M2FkNzhlOTZhNmRiNDU5NGI2YzBhYTNi
YTMzYTk4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DU1NTdHlsZVNoZWV0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RP
TUNTU1N0eWxlU2hlZXQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ1NTU3R5bGVT
aGVldDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6Q1NTU3R5bGVTaGVldCogY29yZShE
T01DU1NTdHlsZVNoZWV0ICopOworV0VCQ09SRV9FWFBPUlQgRE9NQ1NTU3R5bGVTaGVldCAqa2l0
KFdlYkNvcmU6OkNTU1N0eWxlU2hlZXQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NQ1NTVW5rbm93blJ1bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVW5rbm93blJ1bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MmZmMDY0NjAzOGMwZWMxMzUw
ZmM0YjdhMzQyMmQ4MGJiYzYzMjkxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01DU1NVbmtub3duUnVsZS5oCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdl
YkNvcmUvRE9NQ1NTUnVsZS5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQor
V0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01DU1NVbmtub3duUnVsZSA6IERPTUNTU1J1bGUK
K0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVW5r
bm93blJ1bGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25S
dWxlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmQwMDAyZjgwZjJhNzZhMjMyZmQyZWE0OTkyYmMxN2M5NzgzMjcz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNT
U1Vua25vd25SdWxlLm1tCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
RE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJDU1NVbmtub3duUnVsZS5o
IgorI2ltcG9ydCAiRE9NQ1NTUnVsZUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJl
YWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3Jp
cHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1Q
TCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpDU1NVbmtub3duUnVsZSo+KHJlaW50ZXJwcmV0X2Nhc3Q8
V2ViQ29yZTo6Q1NTUnVsZSo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NV
bmtub3duUnVsZQorCitAZW5kCisKK1dlYkNvcmU6OkNTU1Vua25vd25SdWxlKiBjb3JlKERPTUNT
U1Vua25vd25SdWxlICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpDU1NVbmtub3duUnVsZSo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAw
OworfQorCitET01DU1NVbmtub3duUnVsZSAqa2l0KFdlYkNvcmU6OkNTU1Vua25vd25SdWxlKiB2
YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAg
IHJldHVybiBzdGF0aWNfY2FzdDxET01DU1NVbmtub3duUnVsZSo+KGtpdChzdGF0aWNfY2FzdDxX
ZWJDb3JlOjpDU1NSdWxlKj4odmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25SdWxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVW5rbm93blJ1bGVJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4OGMwMmI5OWIxMGIzMmFlZmQ3ZjU0ZmU3MDE0ZWYxZjJiYjlmZDcKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1Vua25vd25SdWxlSW50ZXJu
YWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1Vua25vd25SdWxlLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIENTU1Vua25vd25SdWxlOworfQorCitXRUJDT1JF
X0VYUE9SVCBXZWJDb3JlOjpDU1NVbmtub3duUnVsZSogY29yZShET01DU1NVbmtub3duUnVsZSAq
KTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU1Vua25vd25SdWxlICpraXQoV2ViQ29yZTo6Q1NTVW5r
bm93blJ1bGUqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40YmFmNWFlODEzMmMwZjY1N2VkNjA2ZWYxMDAyNTk5ZTcxOTY2ODg0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5o
CkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBOU1N0
cmluZzsKKworZW51bSB7CisgICAgRE9NX0NTU19JTkhFUklUID0gMCwKKyAgICBET01fQ1NTX1BS
SU1JVElWRV9WQUxVRSA9IDEsCisgICAgRE9NX0NTU19WQUxVRV9MSVNUID0gMiwKKyAgICBET01f
Q1NTX0NVU1RPTSA9IDMKK30gV0VCS0lUX0VOVU1fQVZBSUxBQkxFX01BQygxMF80KTsKKworV0VC
S0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2Ug
RE9NQ1NTVmFsdWUgOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAoY29weSkgTlNTdHJpbmcgKmNzc1Rl
eHQ7CitAcHJvcGVydHkgKHJlYWRvbmx5KSB1bnNpZ25lZCBzaG9ydCBjc3NWYWx1ZVR5cGU7CitA
ZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVl
Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5iODg2ZjEzYmE4YmE3OWRiMTQzMTk3NTM1NTE3NDllZjk1NTE5Mjk3Ci0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZS5tbQpAQCAt
MCwwICsxLDk1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
CisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTUNTU1ZhbHVlSW50ZXJuYWwu
aCIKKworI2ltcG9ydCAiQ1NTVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1w
b3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisj
aW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgi
CisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFzLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4oX2ludGVybmFs
KQorCitAaW1wbGVtZW50YXRpb24gRE9NQ1NTVmFsdWUKKworLSAodm9pZClkZWFsbG9jCit7Cisg
ICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFkKFtET01DU1NW
YWx1ZSBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAoX2ludGVybmFs
KQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworLSAo
TlNTdHJpbmcgKiljc3NUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jc3NUZXh0KCk7Cit9CisKKy0gKHZvaWQpc2V0Q3Nz
VGV4dDooTlNTdHJpbmcgKiluZXdDc3NUZXh0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIFdlYkNvcmU6OkV4Y2VwdGlvbkNvZGUgZWMgPSAwOworICAg
IElNUEwtPnNldENzc1RleHQobmV3Q3NzVGV4dCwgZWMpOworICAgIFdlYkNvcmU6OnJhaXNlT25E
T01FcnJvcihlYyk7Cit9CisKKy0gKHVuc2lnbmVkIHNob3J0KWNzc1ZhbHVlVHlwZQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
Y3NzVmFsdWVUeXBlKCk7Cit9CisKK0BlbmQKKworV2ViQ29yZTo6Q1NTVmFsdWUqIGNvcmUoRE9N
Q1NTVmFsdWUgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9j
YXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RP
TUNTU1ZhbHVlICpraXQoV2ViQ29yZTo6Q1NTVmFsdWUqIHZhbHVlKQoreworICAgIFdlYkNvcmVU
aHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAg
cmV0dXJuIG5pbDsKKyAgICBpZiAoRE9NQ1NTVmFsdWUgKndyYXBwZXIgPSBnZXRET01XcmFwcGVy
KHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsK
KyAgICBET01DU1NWYWx1ZSAqd3JhcHBlciA9IFtba2l0Q2xhc3ModmFsdWUpIGFsbG9jXSBfaW5p
dF07CisgICAgaWYgKCF3cmFwcGVyKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHdyYXBwZXIt
Pl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7
CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERPTVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOwor
ICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFzZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NQ1NTVmFsdWVJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAzNmI1
MjkxMzE4NDM5YWVjNWE4OGUyM2U4OGJmMTliM2JkM2NiOTEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlSW50ZXJuYWwuaApAQCAtMCww
ICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIENTU1ZhbHVlOworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpDU1NWYWx1
ZSogY29yZShET01DU1NWYWx1ZSAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTUNTU1ZhbHVlICpraXQo
V2ViQ29yZTo6Q1NTVmFsdWUqKTsKK0NsYXNzIGtpdENsYXNzKFdlYkNvcmU6OkNTU1ZhbHVlKik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlz
dC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3QuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi43MmVjODU4MzU2YTQ3ZjI1M2Y4ZTI3MjBkM2FkMDhkMTQzNGU0MmU2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01DU1NWYWx1ZUxpc3Qu
aApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNTU1ZhbHVlLmg+CisKK0BjbGFzcyBE
T01DU1NWYWx1ZTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVf
RVhQT1JUIEBpbnRlcmZhY2UgRE9NQ1NTVmFsdWVMaXN0IDogRE9NQ1NTVmFsdWUKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIHVuc2lnbmVkIGxlbmd0aDsKKworLSAoRE9NQ1NTVmFsdWUgKilpdGVtOih1
bnNpZ25lZClpbmRleDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVmFsdWVMaXN0Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01DU1NWYWx1ZUxpc3QubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjA1N2RmMWY5MDQxYjJkM2EwZGZmZWQ5NzNm
YzM1Y2I0YTgzODRiMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ1NTVmFsdWVMaXN0Lm1tCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgor
I2ltcG9ydCAiRE9NQ1NTVmFsdWVMaXN0SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiQ1NTVmFsdWUu
aCIKKyNpbXBvcnQgIkNTU1ZhbHVlTGlzdC5oIgorI2ltcG9ydCAiRE9NQ1NTVmFsdWVJbnRlcm5h
bC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5k
bGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJUaHJl
YWRDaGVjay5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8
d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6Q1NTVmFs
dWVMaXN0Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpDU1NWYWx1ZSo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01DU1NWYWx1ZUxpc3QKKworLSAodW5zaWduZWQpbGVuZ3Ro
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBJTVBMLT5sZW5ndGgoKTsKK30KKworLSAoRE9NQ1NTVmFsdWUgKilpdGVtOih1bnNpZ25lZClp
bmRleAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPml0ZW0oaW5kZXgpKSk7Cit9CisKK0BlbmQKKwor
V2ViQ29yZTo6Q1NTVmFsdWVMaXN0KiBjb3JlKERPTUNTU1ZhbHVlTGlzdCAqd3JhcHBlcikKK3sK
KyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q1NTVmFsdWVM
aXN0Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTUNTU1ZhbHVlTGlzdCAqa2l0
KFdlYkNvcmU6OkNTU1ZhbHVlTGlzdCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xh
dGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NQ1NTVmFsdWVM
aXN0Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkNTU1ZhbHVlKj4odmFsdWUpKSk7Cit9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdElu
dGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNTU1ZhbHVlTGlzdElu
dGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjI4ODg1MDY2OTdmYWFjNWYyM2E2NmQ3OTU0MjlmMmVhMzRj
OTEzMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
Q1NTVmFsdWVMaXN0SW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNT
U1ZhbHVlTGlzdC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBDU1NWYWx1ZUxpc3Q7
Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OkNTU1ZhbHVlTGlzdCogY29yZShET01DU1NW
YWx1ZUxpc3QgKik7CitXRUJDT1JFX0VYUE9SVCBET01DU1NWYWx1ZUxpc3QgKmtpdChXZWJDb3Jl
OjpDU1NWYWx1ZUxpc3QqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NQ291bnRlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Db3VudGVy
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjNiYTY5MmEwODg4YmE5YWM2ZTA3MzVmNThmMjI5N2EyYjg3NTJlZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ291bnRl
ci5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBO
U1N0cmluZzsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMoMTBfNCkKK1dFQkNPUkVfRVhQ
T1JUIEBpbnRlcmZhY2UgRE9NQ291bnRlciA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFkb25s
eSwgY29weSkgTlNTdHJpbmcgKmlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5
KSBOU1N0cmluZyAqbGlzdFN0eWxlOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJp
bmcgKnNlcGFyYXRvcjsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NQ291bnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NQ291
bnRlci5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lNjc2Zjc2NWQzOGY1YzhkMGI1N2IzMmNlNzJjNzE4ZmI3NzY4
MTBlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
b3VudGVyLm1tCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NQ291
bnRlckludGVybmFsLmgiCisKKyNpbXBvcnQgIkNvdW50ZXIuaCIKKyNpbXBvcnQgIkRPTUludGVy
bmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhh
bmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVPYmpDRXh0cmFz
LmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0
UHRyLmg+CisKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkNvdW50ZXIq
PihfaW50ZXJuYWwpCisKK0BpbXBsZW1lbnRhdGlvbiBET01Db3VudGVyCisKKy0gKHZvaWQpZGVh
bGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRocmVh
ZChbRE9NQ291bnRlciBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAo
X2ludGVybmFsKQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBkZWFsbG9jXTsK
K30KKworLSAoTlNTdHJpbmcgKilpZGVudGlmaWVyCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pZGVudGlmaWVyKCk7Cit9CisK
Ky0gKE5TU3RyaW5nICopbGlzdFN0eWxlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5saXN0U3R5bGUoKTsKK30KKworLSAoTlNT
dHJpbmcgKilzZXBhcmF0b3IKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUg
c3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnNlcGFyYXRvcigpOworfQorCitAZW5kCisKK1dlYkNv
cmU6OkNvdW50ZXIqIGNvcmUoRE9NQ291bnRlciAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3Jh
cHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6Q291bnRlcio+KHdyYXBwZXItPl9pbnRl
cm5hbCkgOiAwOworfQorCitET01Db3VudGVyICpraXQoV2ViQ29yZTo6Q291bnRlciogdmFsdWUp
Cit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICBpZiAo
IXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01Db3VudGVyICp3cmFwcGVy
ID0gZ2V0RE9NV3JhcHBlcih2YWx1ZSkpCisgICAgICAgIHJldHVybiBbW3dyYXBwZXIgcmV0YWlu
XSBhdXRvcmVsZWFzZV07CisgICAgRE9NQ291bnRlciAqd3JhcHBlciA9IFtbRE9NQ291bnRlciBh
bGxvY10gX2luaXRdOworICAgIHdyYXBwZXItPl9pbnRlcm5hbCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
RE9NT2JqZWN0SW50ZXJuYWwqPih2YWx1ZSk7CisgICAgdmFsdWUtPnJlZigpOworICAgIGFkZERP
TVdyYXBwZXIod3JhcHBlciwgdmFsdWUpOworICAgIHJldHVybiBbd3JhcHBlciBhdXRvcmVsZWFz
ZV07Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUNvdW50
ZXJJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Db3VudGVySW50
ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xODBjOWM5NjEyZDk2M2FkMjc5YmU3ZTZjMjgzOTllNjMzNmNi
ZDU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01D
b3VudGVySW50ZXJuYWwuaApAQCAtMCwwICsxLDMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUNvdW50ZXIu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgQ291bnRlcjsKK30KKworV0VCQ09SRV9F
WFBPUlQgV2ViQ29yZTo6Q291bnRlciogY29yZShET01Db3VudGVyICopOworV0VCQ09SRV9FWFBP
UlQgRE9NQ291bnRlciAqa2l0KFdlYkNvcmU6OkNvdW50ZXIqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYmUzMjE0ZmQ3OGYxZDkwYmFiYmFiOTc2
MDJhMzRkMjQ0MjVkNjNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9ET01FdmVudC5oCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0
Lmg+CisKK0BjbGFzcyBOU1N0cmluZzsKK0Bwcm90b2NvbCBET01FdmVudFRhcmdldDsKKworZW51
bSB7CisgICAgRE9NX05PTkUgPSAwLAorICAgIERPTV9DQVBUVVJJTkdfUEhBU0UgPSAxLAorICAg
IERPTV9BVF9UQVJHRVQgPSAyLAorICAgIERPTV9CVUJCTElOR19QSEFTRSA9IDMKK30gV0VCS0lU
X0VOVU1fQVZBSUxBQkxFX01BQygxMF80KTsKKworV0VCS0lUX0NMQVNTX0FWQUlMQUJMRV9NQUMo
MTBfNCkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NRXZlbnQgOiBET01PYmplY3QKK0Bw
cm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICp0eXBlOworQHByb3BlcnR5IChyZWFk
b25seSwgc3Ryb25nKSBpZCA8RE9NRXZlbnRUYXJnZXQ+IHRhcmdldDsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHksIHN0cm9uZykgaWQgPERPTUV2ZW50VGFyZ2V0PiBjdXJyZW50VGFyZ2V0OworQHByb3Bl
cnR5IChyZWFkb25seSkgdW5zaWduZWQgc2hvcnQgZXZlbnRQaGFzZTsKK0Bwcm9wZXJ0eSAocmVh
ZG9ubHkpIEJPT0wgYnViYmxlczsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgY2FuY2VsYWJs
ZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIERPTVRpbWVTdGFtcCB0aW1lU3RhbXA7CitAcHJvcGVy
dHkgKHJlYWRvbmx5LCBzdHJvbmcpIGlkIDxET01FdmVudFRhcmdldD4gc3JjRWxlbWVudCBXRUJL
SVRfQVZBSUxBQkxFX01BQygxMF82KTsKK0Bwcm9wZXJ0eSBCT09MIHJldHVyblZhbHVlIFdFQktJ
VF9BVkFJTEFCTEVfTUFDKDEwXzYpOworQHByb3BlcnR5IEJPT0wgY2FuY2VsQnViYmxlIFdFQktJ
VF9BVkFJTEFCTEVfTUFDKDEwXzYpOworCistICh2b2lkKXN0b3BQcm9wYWdhdGlvbjsKKy0gKHZv
aWQpcHJldmVudERlZmF1bHQ7CistICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVudFR5
cGVBcmcgY2FuQnViYmxlQXJnOihCT09MKWNhbkJ1YmJsZUFyZyBjYW5jZWxhYmxlQXJnOihCT09M
KWNhbmNlbGFibGVBcmcgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCisKK0BpbnRl
cmZhY2UgRE9NRXZlbnQgKERPTUV2ZW50RGVwcmVjYXRlZCkKKy0gKHZvaWQpaW5pdEV2ZW50OihO
U1N0cmluZyAqKWV2ZW50VHlwZUFyZyA6KEJPT0wpY2FuQnViYmxlQXJnIDooQk9PTCljYW5jZWxh
YmxlQXJnIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnQubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1NGZlYzk4ZjVlM2Yw
MTU4YzJhNmY4NzlkMzdiNzhjZjljODY2NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTk3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25m
aWcuaCIKKyNpbXBvcnQgIkRPTUV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRXZlbnRU
YXJnZXQuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJu
YWwuaCIKKyNpbXBvcnQgIkV2ZW50LmgiCisjaW1wb3J0ICJFeGNlcHRpb25IYW5kbGVycy5oIgor
I2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1w
b3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJDb3JlT2Jq
Q0V4dHJhcy5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oIgorI2ltcG9ydCA8
d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpF
dmVudCo+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTUV2ZW50CisKKy0gKHZvaWQp
ZGVhbGxvYworeworICAgIGlmIChXZWJDb3JlT2JqQ1NjaGVkdWxlRGVhbGxvY2F0ZU9uTWFpblRo
cmVhZChbRE9NRXZlbnQgY2xhc3NdLCBzZWxmKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYg
KF9pbnRlcm5hbCkKKyAgICAgICAgSU1QTC0+ZGVyZWYoKTsKKyAgICBbc3VwZXIgZGVhbGxvY107
Cit9CisKKy0gKE5TU3RyaW5nICopdHlwZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+dHlwZSgpOworfQorCistIChpZCA8RE9N
RXZlbnRUYXJnZXQ+KXRhcmdldAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRhcmdldCgpKSk7Cit9
CisKKy0gKGlkIDxET01FdmVudFRhcmdldD4pY3VycmVudFRhcmdldAoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRy
KElNUEwtPmN1cnJlbnRUYXJnZXQoKSkpOworfQorCistICh1bnNpZ25lZCBzaG9ydClldmVudFBo
YXNlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBJTVBMLT5ldmVudFBoYXNlKCk7Cit9CisKKy0gKEJPT0wpYnViYmxlcworeworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+YnVi
YmxlcygpOworfQorCistIChCT09MKWNhbmNlbGFibGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5U
aHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNhbmNlbGFibGUoKTsKK30K
KworLSAoQk9PTCljb21wb3NlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y29tcG9zZWQoKTsKK30KKworLSAoRE9NVGltZVN0
YW1wKXRpbWVTdGFtcAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+dGltZVN0YW1wKCk7Cit9CisKKy0gKEJPT0wpZGVmYXVsdFBy
ZXZlbnRlZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+ZGVmYXVsdFByZXZlbnRlZCgpOworfQorCistIChCT09MKWlzVHJ1c3Rl
ZAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+aXNUcnVzdGVkKCk7Cit9CisKKy0gKGlkIDxET01FdmVudFRhcmdldD4pc3JjRWxl
bWVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnNyY0VsZW1lbnQoKSkpOworfQorCistIChCT09M
KXJldHVyblZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sZWdhY3lSZXR1cm5WYWx1ZSgpOworfQorCistICh2b2lkKXNl
dFJldHVyblZhbHVlOihCT09MKW5ld1JldHVyblZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPnNldExlZ2FjeVJldHVyblZhbHVlKG5l
d1JldHVyblZhbHVlKTsKK30KKworLSAoQk9PTCljYW5jZWxCdWJibGUKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmNhbmNlbEJ1
YmJsZSgpOworfQorCistICh2b2lkKXNldENhbmNlbEJ1YmJsZTooQk9PTCluZXdDYW5jZWxCdWJi
bGUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1Q
TC0+c2V0Q2FuY2VsQnViYmxlKG5ld0NhbmNlbEJ1YmJsZSk7Cit9CisKKy0gKHZvaWQpc3RvcFBy
b3BhZ2F0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIElNUEwtPnN0b3BQcm9wYWdhdGlvbigpOworfQorCistICh2b2lkKXByZXZlbnREZWZhdWx0
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PnByZXZlbnREZWZhdWx0KCk7Cit9CisKKy0gKHZvaWQpaW5pdEV2ZW50OihOU1N0cmluZyAqKWV2
ZW50VHlwZUFyZyBjYW5CdWJibGVBcmc6KEJPT0wpY2FuQnViYmxlQXJnIGNhbmNlbGFibGVBcmc6
KEJPT0wpY2FuY2VsYWJsZUFyZworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0
ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0RXZlbnQoZXZlbnRUeXBlQXJnLCBjYW5CdWJibGVBcmcs
IGNhbmNlbGFibGVBcmcpOworfQorCistICh2b2lkKWluaXRFdmVudDooTlNTdHJpbmcgKilldmVu
dFR5cGVBcmcgOihCT09MKWNhbkJ1YmJsZUFyZyA6KEJPT0wpY2FuY2VsYWJsZUFyZworeworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0RXZl
bnQoZXZlbnRUeXBlQXJnLCBjYW5CdWJibGVBcmcsIGNhbmNlbGFibGVBcmcpOworfQorCistICh2
b2lkKXN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTsK
K30KKworQGVuZAorCitXZWJDb3JlOjpFdmVudCogY29yZShET01FdmVudCAqd3JhcHBlcikKK3sK
KyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPih3
cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NRXZlbnQgKmtpdChXZWJDb3JlOjpFdmVu
dCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsK
KyAgICBpZiAoIXZhbHVlKQorICAgICAgICByZXR1cm4gbmlsOworICAgIGlmIChET01FdmVudCAq
d3JhcHBlciA9IGdldERPTVdyYXBwZXIodmFsdWUpKQorICAgICAgICByZXR1cm4gW1t3cmFwcGVy
IHJldGFpbl0gYXV0b3JlbGVhc2VdOworICAgIERPTUV2ZW50ICp3cmFwcGVyID0gW1traXRDbGFz
cyh2YWx1ZSkgYWxsb2NdIF9pbml0XTsKKyAgICBpZiAoIXdyYXBwZXIpCisgICAgICAgIHJldHVy
biBuaWw7CisgICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmpl
Y3RJbnRlcm5hbCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBl
cih3cmFwcGVyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5h
bC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudEludGVybmFsLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uODQ4MDdmNzcwZDM5Mzk2MDRkMmUzZWFmOTY4MmNkMDU2NDUwZjA3NgotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZlbnRJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CitjbGFzcyBFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6
RXZlbnQqIGNvcmUoRE9NRXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01FdmVudCAqa2l0KFdl
YkNvcmU6OkV2ZW50Kik7CitDbGFzcyBraXRDbGFzcyhXZWJDb3JlOjpFdmVudCopOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudExpc3RlbmVyLmggYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUV2ZW50TGlzdGVuZXIuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzBmMmFjN2FlMWUxOWNlMjAwY2RiMTZjYzRkNmEyMWFkNTY2NDRiCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01FdmVudExpc3RlbmVyLmgKQEAg
LTAsMCArMSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCA8V2ViQ29yZS9XZWJLaXRBdmFpbGFiaWxpdHkuaD4KKworQGNsYXNz
IERPTUV2ZW50OworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorQHByb3RvY29s
IERPTUV2ZW50TGlzdGVuZXIgPE5TT2JqZWN0PgorLSAodm9pZCloYW5kbGVFdmVudDooRE9NRXZl
bnQgKilldmVudDsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29i
amMvRE9NRXZlbnRUYXJnZXQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NRXZl
bnRUYXJnZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODRlODQwMGY3NjZmMzJkOTljZjE5MGNiN2VlOTJlM2Rm
ZGUzODU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01FdmVudFRhcmdldC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvV2ViS2l0QXZhaWxh
YmlsaXR5Lmg+CisKK0BjbGFzcyBET01FdmVudDsKK0BjbGFzcyBOU1N0cmluZzsKK0Bwcm90b2Nv
bCBET01FdmVudExpc3RlbmVyOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQor
QHByb3RvY29sIERPTUV2ZW50VGFyZ2V0IDxOU09iamVjdCwgTlNDb3B5aW5nPgorLSAodm9pZClh
ZGRFdmVudExpc3RlbmVyOihOU1N0cmluZyAqKXR5cGUgbGlzdGVuZXI6KGlkIDxET01FdmVudExp
c3RlbmVyPilsaXN0ZW5lciB1c2VDYXB0dXJlOihCT09MKXVzZUNhcHR1cmUgV0VCS0lUX0FWQUlM
QUJMRV9NQUMoMTBfNSk7CistICh2b2lkKXJlbW92ZUV2ZW50TGlzdGVuZXI6KE5TU3RyaW5nICop
dHlwZSBsaXN0ZW5lcjooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIHVzZUNhcHR1cmU6
KEJPT0wpdXNlQ2FwdHVyZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKKy0gKEJPT0wpZGlz
cGF0Y2hFdmVudDooRE9NRXZlbnQgKilldmVudDsKKy0gKHZvaWQpYWRkRXZlbnRMaXN0ZW5lcjoo
TlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+KWxpc3RlbmVyIDooQk9PTCl1
c2VDYXB0dXJlIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAxMF81KTsKKy0gKHZvaWQpcmVt
b3ZlRXZlbnRMaXN0ZW5lcjooTlNTdHJpbmcgKil0eXBlIDooaWQgPERPTUV2ZW50TGlzdGVuZXI+
KWxpc3RlbmVyIDooQk9PTCl1c2VDYXB0dXJlIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAx
MF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
S2V5Ym9hcmRFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2Fy
ZEV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Q5ZGQzODk1ZmYyMGI1NjViYzQxNWEyY2Q2MDQ5MzMwYmY2
MzJjNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
S2V5Ym9hcmRFdmVudC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NVUlFdmVudC5o
PgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIE5TU3RyaW5nOworCitlbnVtIHsK
KyAgICBET01fS0VZX0xPQ0FUSU9OX1NUQU5EQVJEID0gMHgwMCwKKyAgICBET01fS0VZX0xPQ0FU
SU9OX0xFRlQgPSAweDAxLAorICAgIERPTV9LRVlfTE9DQVRJT05fUklHSFQgPSAweDAyLAorICAg
IERPTV9LRVlfTE9DQVRJT05fTlVNUEFEID0gMHgwMworfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVf
TUFDKDEwXzUpOworCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9F
WFBPUlQgQGludGVyZmFjZSBET01LZXlib2FyZEV2ZW50IDogRE9NVUlFdmVudAorQHByb3BlcnR5
IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmtleUlkZW50aWZpZXI7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSB1bnNpZ25lZCBsb2NhdGlvbiBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF84KTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIGtleUxvY2F0aW9uIFdFQktJVF9ERVBSRUNBVEVE
X01BQygxMF81LCAxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgY3RybEtleTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgc2hpZnRLZXk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBC
T09MIGFsdEtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgbWV0YUtleTsKK0Bwcm9wZXJ0
eSAocmVhZG9ubHkpIEJPT0wgYWx0R3JhcGhLZXkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7
CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQga2V5Q29kZTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkp
IGludCBjaGFyQ29kZTsKKworLSAoQk9PTClnZXRNb2RpZmllclN0YXRlOihOU1N0cmluZyAqKWtl
eUlkZW50aWZpZXJBcmc7CistICh2b2lkKWluaXRLZXlib2FyZEV2ZW50OihOU1N0cmluZyAqKXR5
cGUgY2FuQnViYmxlOihCT09MKWNhbkJ1YmJsZSBjYW5jZWxhYmxlOihCT09MKWNhbmNlbGFibGUg
dmlldzooRE9NQWJzdHJhY3RWaWV3ICopdmlldyBrZXlJZGVudGlmaWVyOihOU1N0cmluZyAqKWtl
eUlkZW50aWZpZXIgbG9jYXRpb246KHVuc2lnbmVkKWxvY2F0aW9uIGN0cmxLZXk6KEJPT0wpY3Ry
bEtleSBhbHRLZXk6KEJPT0wpYWx0S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6
KEJPT0wpbWV0YUtleSBhbHRHcmFwaEtleTooQk9PTClhbHRHcmFwaEtleSBXRUJLSVRfQVZBSUxB
QkxFX01BQygxMF84KTsKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlw
ZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2
aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZpZXI6KE5TU3RyaW5nICopa2V5
SWRlbnRpZmllciBsb2NhdGlvbjoodW5zaWduZWQpbG9jYXRpb24gY3RybEtleTooQk9PTCljdHJs
S2V5IGFsdEtleTooQk9PTClhbHRLZXkgc2hpZnRLZXk6KEJPT0wpc2hpZnRLZXkgbWV0YUtleToo
Qk9PTCltZXRhS2V5IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzgpOworLSAodm9pZClpbml0S2V5
Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2Fu
Y2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcga2V5
SWRlbnRpZmllcjooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25l
ZClrZXlMb2NhdGlvbiBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09MKWFsdEtleSBz
aGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgYWx0R3JhcGhLZXk6
KEJPT0wpYWx0R3JhcGhLZXkgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworLSAo
dm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTClj
YW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0Vmll
dyAqKXZpZXcga2V5SWRlbnRpZmllcjooTlNTdHJpbmcgKilrZXlJZGVudGlmaWVyIGtleUxvY2F0
aW9uOih1bnNpZ25lZClrZXlMb2NhdGlvbiBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihC
T09MKWFsdEtleSBzaGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkg
V0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2FyZEV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4ODY0
YjMwOGVmNGU1ZDg3ZTlhMjRlNmJkNTNmMmFkMWM0NTU2ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTUtleWJvYXJkRXZlbnQubW0KQEAgLTAsMCAr
MSwxNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRE9NS2V5Ym9hcmRFdmVudEludGVybmFs
LmgiCisKKyNpbXBvcnQgIkRPTUFic3RyYWN0Vmlld0ludGVybmFsLmgiCisjaW1wb3J0ICJET01F
dmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRP
TVdpbmRvdy5oIgorI2ltcG9ydCAiRXhjZXB0aW9uSGFuZGxlcnMuaCIKKyNpbXBvcnQgIkpTTWFp
blRocmVhZEV4ZWNTdGF0ZS5oIgorI2ltcG9ydCAiS2V5Ym9hcmRFdmVudC5oIgorI2ltcG9ydCAi
VGhyZWFkQ2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0
UHJpdmF0ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGlj
X2Nhc3Q8V2ViQ29yZTo6S2V5Ym9hcmRFdmVudCo+KHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6
RXZlbnQqPihfaW50ZXJuYWwpKQorCitAaW1wbGVtZW50YXRpb24gRE9NS2V5Ym9hcmRFdmVudAor
CistIChOU1N0cmluZyAqKWtleUlkZW50aWZpZXIKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJl
YWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUlkZW50aWZpZXIoKTsKK30K
KworLSAodW5zaWduZWQpbG9jYXRpb24KK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmxvY2F0aW9uKCk7Cit9CisKKy0gKHVuc2ln
bmVkKWtleUxvY2F0aW9uCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5sb2NhdGlvbigpOworfQorCistIChCT09MKWN0cmxLZXkK
K3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJu
IElNUEwtPmN0cmxLZXkoKTsKK30KKworLSAoQk9PTClzaGlmdEtleQoreworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+c2hpZnRLZXko
KTsKK30KKworLSAoQk9PTClhbHRLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmFsdEtleSgpOworfQorCistIChCT09MKW1l
dGFLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
cmV0dXJuIElNUEwtPm1ldGFLZXkoKTsKK30KKworLSAoQk9PTClhbHRHcmFwaEtleQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
YWx0R3JhcGhLZXkoKTsKK30KKworLSAoaW50KWtleUNvZGUKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtleUNvZGUoKTsKK30K
KworLSAoaW50KWNoYXJDb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jaGFyQ29kZSgpOworfQorCistIChCT09MKWdldE1v
ZGlmaWVyU3RhdGU6KE5TU3RyaW5nICopa2V5SWRlbnRpZmllckFyZworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Z2V0TW9kaWZp
ZXJTdGF0ZShrZXlJZGVudGlmaWVyQXJnKTsKK30KKworLSAodm9pZClpbml0S2V5Ym9hcmRFdmVu
dDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9PTCljYW5CdWJibGUgY2FuY2VsYWJsZToo
Qk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcga2V5SWRlbnRpZmll
cjooTlNTdHJpbmcgKilpbktleUlkZW50aWZpZXIgbG9jYXRpb246KHVuc2lnbmVkKWluTG9jYXRp
b24gY3RybEtleTooQk9PTClpbkN0cmxLZXkgYWx0S2V5OihCT09MKWluQWx0S2V5IHNoaWZ0S2V5
OihCT09MKWluU2hpZnRLZXkgbWV0YUtleTooQk9PTClpbk1ldGFLZXkgYWx0R3JhcGhLZXk6KEJP
T0wpaW5BbHRHcmFwaEtleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBz
dGF0ZTsKKyAgICBJTVBMLT5pbml0S2V5Ym9hcmRFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGNvcmUodmlldyksIGluS2V5SWRlbnRpZmllciwgaW5Mb2NhdGlvbiwgaW5DdHJsS2V5
LCBpbkFsdEtleSwgaW5TaGlmdEtleSwgaW5NZXRhS2V5LCBpbkFsdEdyYXBoS2V5KTsKK30KKwor
LSAodm9pZClpbml0S2V5Ym9hcmRFdmVudDooTlNTdHJpbmcgKil0eXBlIGNhbkJ1YmJsZTooQk9P
TCljYW5CdWJibGUgY2FuY2VsYWJsZTooQk9PTCljYW5jZWxhYmxlIHZpZXc6KERPTUFic3RyYWN0
VmlldyAqKXZpZXcga2V5SWRlbnRpZmllcjooTlNTdHJpbmcgKilpbktleUlkZW50aWZpZXIgbG9j
YXRpb246KHVuc2lnbmVkKWluTG9jYXRpb24gY3RybEtleTooQk9PTClpbkN0cmxLZXkgYWx0S2V5
OihCT09MKWluQWx0S2V5IHNoaWZ0S2V5OihCT09MKWluU2hpZnRLZXkgbWV0YUtleTooQk9PTClp
bk1ldGFLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7Cisg
ICAgSU1QTC0+aW5pdEtleWJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBj
b3JlKHZpZXcpLCBpbktleUlkZW50aWZpZXIsIGluTG9jYXRpb24sIGluQ3RybEtleSwgaW5BbHRL
ZXksIGluU2hpZnRLZXksIGluTWV0YUtleSk7Cit9CisKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZl
bnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6
KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZp
ZXI6KE5TU3RyaW5nICopaW5LZXlJZGVudGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25lZClpbktl
eUxvY2F0aW9uIGN0cmxLZXk6KEJPT0wpaW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBz
aGlmdEtleTooQk9PTClpblNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5IGFsdEdyYXBo
S2V5OihCT09MKWluQWx0R3JhcGhLZXkKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxs
U3RhdGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdEtleWJvYXJkRXZlbnQodHlwZSwgY2FuQnViYmxl
LCBjYW5jZWxhYmxlLCBjb3JlKHZpZXcpLCBpbktleUlkZW50aWZpZXIsIGluS2V5TG9jYXRpb24s
IGluQ3RybEtleSwgaW5BbHRLZXksIGluU2hpZnRLZXksIGluTWV0YUtleSwgaW5BbHRHcmFwaEtl
eSk7Cit9CisKKy0gKHZvaWQpaW5pdEtleWJvYXJkRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5C
dWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihE
T01BYnN0cmFjdFZpZXcgKil2aWV3IGtleUlkZW50aWZpZXI6KE5TU3RyaW5nICopaW5LZXlJZGVu
dGlmaWVyIGtleUxvY2F0aW9uOih1bnNpZ25lZClpbktleUxvY2F0aW9uIGN0cmxLZXk6KEJPT0wp
aW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBzaGlmdEtleTooQk9PTClpblNoaWZ0S2V5
IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRLZXlib2FyZEV2ZW50KHR5cGUsIGNhbkJ1YmJs
ZSwgY2FuY2VsYWJsZSwgY29yZSh2aWV3KSwgaW5LZXlJZGVudGlmaWVyLCBpbktleUxvY2F0aW9u
LCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXkpOworfQorCitAZW5k
CisKK1dlYkNvcmU6OktleWJvYXJkRXZlbnQqIGNvcmUoRE9NS2V5Ym9hcmRFdmVudCAqd3JhcHBl
cikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6S2V5
Ym9hcmRFdmVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOworfQorCitET01LZXlib2FyZEV2
ZW50ICpraXQoV2ViQ29yZTo6S2V5Ym9hcmRFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRo
cmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9N
S2V5Ym9hcmRFdmVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkp
OworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01LZXlib2Fy
ZEV2ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NS2V5Ym9h
cmRFdmVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDVhZTIzZmY4MmQyMzQ3YmVjZjZlNzQ4MDQ3
NTQ4NzU4ODMyZGUxMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NS2V5Ym9hcmRFdmVudEludGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxX
ZWJDb3JlL0RPTUtleWJvYXJkRXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3Mg
S2V5Ym9hcmRFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6S2V5Ym9hcmRFdmVu
dCogY29yZShET01LZXlib2FyZEV2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NS2V5Ym9hcmRF
dmVudCAqa2l0KFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Nb3VzZUV2ZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2IwNGZiNmFlNDVkMGM5NDMz
NDE5YThkNDczNmViYzJjNTljNzQ4NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBg
QVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNv
cmUvRE9NVUlFdmVudC5oPgorCitAY2xhc3MgRE9NQWJzdHJhY3RWaWV3OworQGNsYXNzIERPTU5v
ZGU7CitAY2xhc3MgTlNTdHJpbmc7CitAcHJvdG9jb2wgRE9NRXZlbnRUYXJnZXQ7CisKK1dFQktJ
VF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERP
TU1vdXNlRXZlbnQgOiBET01VSUV2ZW50CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgc2NyZWVu
WDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBzY3JlZW5ZOworQHByb3BlcnR5IChyZWFkb25s
eSkgaW50IGNsaWVudFg7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgY2xpZW50WTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIEJPT0wgY3RybEtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wg
c2hpZnRLZXk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIGFsdEtleTsKK0Bwcm9wZXJ0eSAo
cmVhZG9ubHkpIEJPT0wgbWV0YUtleTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNo
b3J0IGJ1dHRvbjsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9uZykgaWQgPERPTUV2ZW50VGFy
Z2V0PiByZWxhdGVkVGFyZ2V0OworQHByb3BlcnR5IChyZWFkb25seSkgaW50IG9mZnNldFggV0VC
S0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgb2Zmc2V0
WSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCB4
IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHkg
V0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IERPTU5vZGUgKmZyb21FbGVtZW50IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3Bl
cnR5IChyZWFkb25seSwgc3Ryb25nKSBET01Ob2RlICp0b0VsZW1lbnQgV0VCS0lUX0FWQUlMQUJM
RV9NQUMoMTBfNSk7CisKKy0gKHZvaWQpaW5pdE1vdXNlRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBj
YW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3
OihET01BYnN0cmFjdFZpZXcgKil2aWV3IGRldGFpbDooaW50KWRldGFpbCBzY3JlZW5YOihpbnQp
c2NyZWVuWCBzY3JlZW5ZOihpbnQpc2NyZWVuWSBjbGllbnRYOihpbnQpY2xpZW50WCBjbGllbnRZ
OihpbnQpY2xpZW50WSBjdHJsS2V5OihCT09MKWN0cmxLZXkgYWx0S2V5OihCT09MKWFsdEtleSBz
aGlmdEtleTooQk9PTClzaGlmdEtleSBtZXRhS2V5OihCT09MKW1ldGFLZXkgYnV0dG9uOih1bnNp
Z25lZCBzaG9ydClidXR0b24gcmVsYXRlZFRhcmdldDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxh
dGVkVGFyZ2V0IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQGVuZAorCitAaW50ZXJmYWNl
IERPTU1vdXNlRXZlbnQgKERPTU1vdXNlRXZlbnREZXByZWNhdGVkKQorLSAodm9pZClpbml0TW91
c2VFdmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFi
bGUgOihET01BYnN0cmFjdFZpZXcgKil2aWV3IDooaW50KWRldGFpbCA6KGludClzY3JlZW5YIDoo
aW50KXNjcmVlblkgOihpbnQpY2xpZW50WCA6KGludCljbGllbnRZIDooQk9PTCljdHJsS2V5IDoo
Qk9PTClhbHRLZXkgOihCT09MKXNoaWZ0S2V5IDooQk9PTCltZXRhS2V5IDoodW5zaWduZWQgc2hv
cnQpYnV0dG9uIDooaWQgPERPTUV2ZW50VGFyZ2V0PilyZWxhdGVkVGFyZ2V0IFdFQktJVF9ERVBS
RUNBVEVEX01BQygxMF80LCAxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NTW91c2VFdmVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NTW91c2VFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjljNmYwNzQ2ZWYxN2IwNzRmMzdk
ZjZlNjljY2I4YzYzZTlkOWNlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01Nb3VzZUV2ZW50Lm1tCkBAIC0wLDAgKzEsMTg3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTU1vdXNlRXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01BYnN0
cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9y
dCAiRE9NRXZlbnRUYXJnZXQuaCIKKyNpbXBvcnQgIkRPTU5vZGUuaCIKKyNpbXBvcnQgIkRPTU5v
ZGVJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NV2luZG93LmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJN
b3VzZUV2ZW50LmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgor
I2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1w
b3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpN
b3VzZUV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01Nb3VzZUV2ZW50CisKKy0gKGludClzY3JlZW5YCit7Cisg
ICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBM
LT5zY3JlZW5YKCk7Cit9CisKKy0gKGludClzY3JlZW5ZCit7CisgICAgV2ViQ29yZTo6SlNNYWlu
VGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zY3JlZW5ZKCk7Cit9CisK
Ky0gKGludCljbGllbnRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5jbGllbnRYKCk7Cit9CisKKy0gKGludCljbGllbnRZCit7
CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJ
TVBMLT5jbGllbnRZKCk7Cit9CisKKy0gKEJPT0wpY3RybEtleQoreworICAgIFdlYkNvcmU6OkpT
TWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+Y3RybEtleSgpOwor
fQorCistIChCT09MKXNoaWZ0S2V5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0
YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5zaGlmdEtleSgpOworfQorCistIChCT09MKWFs
dEtleQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBy
ZXR1cm4gSU1QTC0+YWx0S2V5KCk7Cit9CisKKy0gKEJPT0wpbWV0YUtleQoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+bWV0YUtl
eSgpOworfQorCistICh1bnNpZ25lZCBzaG9ydClidXR0b24KK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmJ1dHRvbigpOworfQor
CistIChpZCA8RE9NRXZlbnRUYXJnZXQ+KXJlbGF0ZWRUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpK
U01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJ
TVBMLT5yZWxhdGVkVGFyZ2V0KCkpKTsKK30KKworI2lmIEVOQUJMRShQT0lOVEVSX0xPQ0spCist
IChpbnQpbW92ZW1lbnRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0
YXRlOworICAgIHJldHVybiBJTVBMLT5tb3ZlbWVudFgoKTsKK30KKyNlbmRpZgorCisjaWYgRU5B
QkxFKFBPSU5URVJfTE9DSykKKy0gKGludCltb3ZlbWVudFkKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPm1vdmVtZW50WSgpOwor
fQorI2VuZGlmCisKKy0gKGludClvZmZzZXRYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5vZmZzZXRYKCk7Cit9CisKKy0gKGlu
dClvZmZzZXRZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5vZmZzZXRZKCk7Cit9CisKKy0gKGludCl4Cit7CisgICAgV2ViQ29y
ZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT54KCk7Cit9
CisKKy0gKGludCl5Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT55KCk7Cit9CisKKy0gKERPTU5vZGUgKilmcm9tRWxlbWVudAor
eworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4g
a2l0KFdURjo6Z2V0UHRyKElNUEwtPmZyb21FbGVtZW50KCkpKTsKK30KKworLSAoRE9NTm9kZSAq
KXRvRWxlbWVudAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsK
KyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRvRWxlbWVudCgpKSk7Cit9CisKKy0g
KHZvaWQpaW5pdE1vdXNlRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2Fu
QnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFjdFZpZXcg
Kil2aWV3IGRldGFpbDooaW50KWRldGFpbCBzY3JlZW5YOihpbnQpaW5TY3JlZW5YIHNjcmVlblk6
KGludClpblNjcmVlblkgY2xpZW50WDooaW50KWluQ2xpZW50WCBjbGllbnRZOihpbnQpaW5DbGll
bnRZIGN0cmxLZXk6KEJPT0wpaW5DdHJsS2V5IGFsdEtleTooQk9PTClpbkFsdEtleSBzaGlmdEtl
eTooQk9PTClpblNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpaW5NZXRhS2V5IGJ1dHRvbjoodW5zaWdu
ZWQgc2hvcnQpaW5CdXR0b24gcmVsYXRlZFRhcmdldDooaWQgPERPTUV2ZW50VGFyZ2V0PilpblJl
bGF0ZWRUYXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgRE9NTm9kZSogaW5SZWxhdGVkVGFyZ2V0T2JqQyA9IGluUmVsYXRlZFRhcmdldDsKKyAg
ICBXZWJDb3JlOjpOb2RlKiBpblJlbGF0ZWRUYXJnZXROb2RlID0gY29yZShpblJlbGF0ZWRUYXJn
ZXRPYmpDKTsKKyAgICBJTVBMLT5pbml0TW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNl
bGFibGUsIGNvcmUodmlldyksIGRldGFpbCwgaW5TY3JlZW5YLCBpblNjcmVlblksIGluQ2xpZW50
WCwgaW5DbGllbnRZLCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXks
IGluQnV0dG9uLCBpblJlbGF0ZWRUYXJnZXROb2RlKTsKK30KKworLSAodm9pZClpbml0TW91c2VF
dmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUg
OihET01BYnN0cmFjdFZpZXcgKil2aWV3IDooaW50KWRldGFpbCA6KGludClpblNjcmVlblggOihp
bnQpaW5TY3JlZW5ZIDooaW50KWluQ2xpZW50WCA6KGludClpbkNsaWVudFkgOihCT09MKWluQ3Ry
bEtleSA6KEJPT0wpaW5BbHRLZXkgOihCT09MKWluU2hpZnRLZXkgOihCT09MKWluTWV0YUtleSA6
KHVuc2lnbmVkIHNob3J0KWluQnV0dG9uIDooaWQgPERPTUV2ZW50VGFyZ2V0PilpblJlbGF0ZWRU
YXJnZXQKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAg
RE9NTm9kZSogaW5SZWxhdGVkVGFyZ2V0T2JqQyA9IGluUmVsYXRlZFRhcmdldDsKKyAgICBXZWJD
b3JlOjpOb2RlKiBpblJlbGF0ZWRUYXJnZXROb2RlID0gY29yZShpblJlbGF0ZWRUYXJnZXRPYmpD
KTsKKyAgICBJTVBMLT5pbml0TW91c2VFdmVudCh0eXBlLCBjYW5CdWJibGUsIGNhbmNlbGFibGUs
IGNvcmUodmlldyksIGRldGFpbCwgaW5TY3JlZW5YLCBpblNjcmVlblksIGluQ2xpZW50WCwgaW5D
bGllbnRZLCBpbkN0cmxLZXksIGluQWx0S2V5LCBpblNoaWZ0S2V5LCBpbk1ldGFLZXksIGluQnV0
dG9uLCBpblJlbGF0ZWRUYXJnZXROb2RlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNb3VzZUV2
ZW50KiBjb3JlKERPTU1vdXNlRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIg
PyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok1vdXNlRXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NTW91c2VFdmVudCAqa2l0KFdlYkNvcmU6Ok1vdXNlRXZlbnQqIHZh
bHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7CisgICAg
cmV0dXJuIHN0YXRpY19jYXN0PERPTU1vdXNlRXZlbnQqPihraXQoc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NTW91c2VFdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU1vdXNlRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYwYmQ5ZDE1MmIxMzQ0
NzQwYjk5MGFhNmVjNjMyMGMzZjhiZTgzNTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU1vdXNlRXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzQg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKwor
I2ltcG9ydCA8V2ViQ29yZS9ET01Nb3VzZUV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
K2NsYXNzIE1vdXNlRXZlbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6Ok1vdXNlRXZl
bnQqIGNvcmUoRE9NTW91c2VFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTU1vdXNlRXZlbnQg
KmtpdChXZWJDb3JlOjpNb3VzZUV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NTXV0YXRpb25FdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI1YmFkZjhmMWE2MzM5OWRhMmQx
Y2M0NGJlYTExYjY0ZmQ0N2JlNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJD
b3JlL0RPTUV2ZW50Lmg+CisKK0BjbGFzcyBET01Ob2RlOworQGNsYXNzIE5TU3RyaW5nOworCitl
bnVtIHsKKyAgICBET01fTU9ESUZJQ0FUSU9OID0gMSwKKyAgICBET01fQURESVRJT04gPSAyLAor
ICAgIERPTV9SRU1PVkFMID0gMworfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzQpOwor
CitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVy
ZmFjZSBET01NdXRhdGlvbkV2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0
cm9uZykgRE9NTm9kZSAqcmVsYXRlZE5vZGU7CitAcHJvcGVydHkgKHJlYWRvbmx5LCBjb3B5KSBO
U1N0cmluZyAqcHJldlZhbHVlOworQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcg
Km5ld1ZhbHVlOworLSAoTlNTdHJpbmcgKiluZXdWYWx1ZSBOU19SRVRVUk5TX05PVF9SRVRBSU5F
RDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TU3RyaW5nICphdHRyTmFtZTsKK0Bwcm9w
ZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIHNob3J0IGF0dHJDaGFuZ2U7CisKKy0gKHZvaWQpaW5p
dE11dGF0aW9uRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxl
IGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSByZWxhdGVkTm9kZTooRE9NTm9kZSAqKXJlbGF0
ZWROb2RlIHByZXZWYWx1ZTooTlNTdHJpbmcgKilwcmV2VmFsdWUgbmV3VmFsdWU6KE5TU3RyaW5n
ICopbmV3VmFsdWUgYXR0ck5hbWU6KE5TU3RyaW5nICopYXR0ck5hbWUgYXR0ckNoYW5nZToodW5z
aWduZWQgc2hvcnQpYXR0ckNoYW5nZSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0BlbmQK
KworQGludGVyZmFjZSBET01NdXRhdGlvbkV2ZW50IChET01NdXRhdGlvbkV2ZW50RGVwcmVjYXRl
ZCkKKy0gKHZvaWQpaW5pdE11dGF0aW9uRXZlbnQ6KE5TU3RyaW5nICopdHlwZSA6KEJPT0wpY2Fu
QnViYmxlIDooQk9PTCljYW5jZWxhYmxlIDooRE9NTm9kZSAqKXJlbGF0ZWROb2RlIDooTlNTdHJp
bmcgKilwcmV2VmFsdWUgOihOU1N0cmluZyAqKW5ld1ZhbHVlIDooTlNTdHJpbmcgKilhdHRyTmFt
ZSA6KHVuc2lnbmVkIHNob3J0KWF0dHJDaGFuZ2UgV0VCS0lUX0RFUFJFQ0FURURfTUFDKDEwXzQs
IDEwXzUpOworQGVuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01NdXRhdGlvbkV2ZW50Lm1tIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01NdXRh
dGlvbkV2ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhOTFlOWYwNjE1Zjc5MTcyNzhlZTI1NzZlOGE2NzA5
MmQyYjdlYWUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTU11dGF0aW9uRXZlbnQubW0KQEAgLTAsMCArMSw5NyBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1w
b3J0ICJET01NdXRhdGlvbkV2ZW50SW50ZXJuYWwuaCIKKworI2ltcG9ydCAiRE9NRXZlbnRJbnRl
cm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRpb25I
YW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0ICJN
dXRhdGlvbkV2ZW50LmgiCisjaW1wb3J0ICJOb2RlLmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5o
IgorI2ltcG9ydCAiVVJMLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisj
aW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpNdXRhdGlvbkV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRl
cm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01NdXRhdGlvbkV2ZW50CisKKy0gKERPTU5vZGUg
KilyZWxhdGVkTm9kZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnJlbGF0ZWROb2RlKCkpKTsKK30K
KworLSAoTlNTdHJpbmcgKilwcmV2VmFsdWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWRO
dWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPnByZXZWYWx1ZSgpOworfQorCistIChO
U1N0cmluZyAqKW5ld1ZhbHVlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5uZXdWYWx1ZSgpOworfQorCistIChOU1N0cmluZyAq
KWF0dHJOYW1lCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5hdHRyTmFtZSgpOworfQorCistICh1bnNpZ25lZCBzaG9ydClhdHRy
Q2hhbmdlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5hdHRyQ2hhbmdlKCk7Cit9CisKKy0gKHZvaWQpaW5pdE11dGF0aW9uRXZl
bnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJPT0wpY2FuQnViYmxlIGNhbmNlbGFibGU6
KEJPT0wpY2FuY2VsYWJsZSByZWxhdGVkTm9kZTooRE9NTm9kZSAqKWluUmVsYXRlZE5vZGUgcHJl
dlZhbHVlOihOU1N0cmluZyAqKWluUHJldlZhbHVlIG5ld1ZhbHVlOihOU1N0cmluZyAqKWluTmV3
VmFsdWUgYXR0ck5hbWU6KE5TU3RyaW5nICopaW5BdHRyTmFtZSBhdHRyQ2hhbmdlOih1bnNpZ25l
ZCBzaG9ydClpbkF0dHJDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3Rh
dGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBj
YW5jZWxhYmxlLCBjb3JlKGluUmVsYXRlZE5vZGUpLCBpblByZXZWYWx1ZSwgaW5OZXdWYWx1ZSwg
aW5BdHRyTmFtZSwgaW5BdHRyQ2hhbmdlKTsKK30KKworLSAodm9pZClpbml0TXV0YXRpb25FdmVu
dDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNhbmNlbGFibGUgOihE
T01Ob2RlICopaW5SZWxhdGVkTm9kZSA6KE5TU3RyaW5nICopaW5QcmV2VmFsdWUgOihOU1N0cmlu
ZyAqKWluTmV3VmFsdWUgOihOU1N0cmluZyAqKWluQXR0ck5hbWUgOih1bnNpZ25lZCBzaG9ydClp
bkF0dHJDaGFuZ2UKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7
CisgICAgSU1QTC0+aW5pdE11dGF0aW9uRXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxl
LCBjb3JlKGluUmVsYXRlZE5vZGUpLCBpblByZXZWYWx1ZSwgaW5OZXdWYWx1ZSwgaW5BdHRyTmFt
ZSwgaW5BdHRyQ2hhbmdlKTsKK30KKworQGVuZAorCitXZWJDb3JlOjpNdXRhdGlvbkV2ZW50KiBj
b3JlKERPTU11dGF0aW9uRXZlbnQgKndyYXBwZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyBy
ZWludGVycHJldF9jYXN0PFdlYkNvcmU6Ok11dGF0aW9uRXZlbnQqPih3cmFwcGVyLT5faW50ZXJu
YWwpIDogMDsKK30KKworRE9NTXV0YXRpb25FdmVudCAqa2l0KFdlYkNvcmU6Ok11dGF0aW9uRXZl
bnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5kT25lKCk7
CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTU11dGF0aW9uRXZlbnQqPihraXQoc3RhdGljX2Nh
c3Q8V2ViQ29yZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL29iamMvRE9NTXV0YXRpb25FdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjJiZjRkOTY0Yjg5ZmE2Zjg0ZjRlNGFlMGVhY2U4OTg1NDdjZTAxMGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU11dGF0aW9uRXZlbnRJbnRlcm5h
bC5oCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01NdXRhdGlvbkV2ZW50Lmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK2NsYXNzIE11dGF0aW9uRXZlbnQ7Cit9CisKK1dFQkNPUkVf
RVhQT1JUIFdlYkNvcmU6Ok11dGF0aW9uRXZlbnQqIGNvcmUoRE9NTXV0YXRpb25FdmVudCAqKTsK
K1dFQkNPUkVfRVhQT1JUIERPTU11dGF0aW9uRXZlbnQgKmtpdChXZWJDb3JlOjpNdXRhdGlvbkV2
ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NT3ZlcmZsb3dFdmVu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjU2YWVkNDlmMDQwOWYwYzBlMzkyYmU1YjI5M2ZmMmQwMTAyN2YwMTgK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTU92ZXJm
bG93RXZlbnQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50Lmg+CisKK2Vu
dW0geworICAgIERPTV9IT1JJWk9OVEFMID0gMCwKKyAgICBET01fVkVSVElDQUwgPSAxLAorICAg
IERPTV9CT1RIID0gMgorfSBXRUJLSVRfRU5VTV9BVkFJTEFCTEVfTUFDKDEwXzUpOworCitXRUJL
SVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF81KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBE
T01PdmVyZmxvd0V2ZW50IDogRE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVk
IHNob3J0IG9yaWVudDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgaG9yaXpvbnRhbE92ZXJm
bG93OworQHByb3BlcnR5IChyZWFkb25seSkgQk9PTCB2ZXJ0aWNhbE92ZXJmbG93OworCistICh2
b2lkKWluaXRPdmVyZmxvd0V2ZW50Oih1bnNpZ25lZCBzaG9ydClvcmllbnQgaG9yaXpvbnRhbE92
ZXJmbG93OihCT09MKWhvcml6b250YWxPdmVyZmxvdyB2ZXJ0aWNhbE92ZXJmbG93OihCT09MKXZl
cnRpY2FsT3ZlcmZsb3c7CitAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTU92ZXJmbG93RXZlbnQubW0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTU92ZXJmbG93RXZlbnQubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWRjN2EwM2NiNDVlMjYxNWNlNzFkYTYw
MDc2NmM0ODdiNGQ0ODM2OQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NT3ZlcmZsb3dFdmVudC5tbQpAQCAtMCwwICsxLDc3IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVT
UyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQK
KyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIkRPTU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0ICJET01F
dmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4
Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNp
bXBvcnQgIk92ZXJmbG93RXZlbnQuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0
ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+CisKKyNk
ZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpPdmVyZmxvd0V2ZW50Kj4ocmVpbnRlcnBy
ZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBE
T01PdmVyZmxvd0V2ZW50CisKKy0gKHVuc2lnbmVkIHNob3J0KW9yaWVudAoreworICAgIFdlYkNv
cmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+b3JpZW50
KCk7Cit9CisKKy0gKEJPT0wpaG9yaXpvbnRhbE92ZXJmbG93Cit7CisgICAgV2ViQ29yZTo6SlNN
YWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5ob3Jpem9udGFsT3Zl
cmZsb3coKTsKK30KKworLSAoQk9PTCl2ZXJ0aWNhbE92ZXJmbG93Cit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT52ZXJ0aWNhbE92
ZXJmbG93KCk7Cit9CisKKy0gKHZvaWQpaW5pdE92ZXJmbG93RXZlbnQ6KHVuc2lnbmVkIHNob3J0
KWluT3JpZW50IGhvcml6b250YWxPdmVyZmxvdzooQk9PTClpbkhvcml6b250YWxPdmVyZmxvdyB2
ZXJ0aWNhbE92ZXJmbG93OihCT09MKWluVmVydGljYWxPdmVyZmxvdworeworICAgIFdlYkNvcmU6
OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICBJTVBMLT5pbml0T3ZlcmZsb3dFdmVu
dChpbk9yaWVudCwgaW5Ib3Jpem9udGFsT3ZlcmZsb3csIGluVmVydGljYWxPdmVyZmxvdyk7Cit9
CisKK0BlbmQKKworV2ViQ29yZTo6T3ZlcmZsb3dFdmVudCogY29yZShET01PdmVyZmxvd0V2ZW50
ICp3cmFwcGVyKQoreworICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJD
b3JlOjpPdmVyZmxvd0V2ZW50Kj4od3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTU92
ZXJmbG93RXZlbnQgKmtpdChXZWJDb3JlOjpPdmVyZmxvd0V2ZW50KiB2YWx1ZSkKK3sKKyAgICBX
ZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNf
Y2FzdDxET01PdmVyZmxvd0V2ZW50Kj4oa2l0KHN0YXRpY19jYXN0PFdlYkNvcmU6OkV2ZW50Kj4o
dmFsdWUpKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RP
TU92ZXJmbG93RXZlbnRJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNTcwNWE5MDk0Y2RiYTU5MmMy
MDdkNGQzNTQ1YWJjNWY3ZWY3YmVhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvb2JqYy9ET01PdmVyZmxvd0V2ZW50SW50ZXJuYWwuaApAQCAtMCwwICsxLDM0IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
KyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNp
bXBvcnQgPFdlYkNvcmUvRE9NT3ZlcmZsb3dFdmVudC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CitjbGFzcyBPdmVyZmxvd0V2ZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpPdmVy
Zmxvd0V2ZW50KiBjb3JlKERPTU92ZXJmbG93RXZlbnQgKik7CitXRUJDT1JFX0VYUE9SVCBET01P
dmVyZmxvd0V2ZW50ICpraXQoV2ViQ29yZTo6T3ZlcmZsb3dFdmVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2I2
OTc2OGUzNTgyYzE0MWUxOTEwY2VkMzVkYjk4OGRmNTQ1ZGEzCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50LmgKQEAgLTAsMCAr
MSwzMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8V2ViQ29yZS9ET01FdmVudC5oPgorCitXRUJLSVRfQ0xBU1NfQVZBSUxBQkxF
X01BQygxMF82KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFjZSBET01Qcm9ncmVzc0V2ZW50IDog
RE9NRXZlbnQKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJPT0wgbGVuZ3RoQ29tcHV0YWJsZTsKK0Bw
cm9wZXJ0eSAocmVhZG9ubHkpIHVuc2lnbmVkIGxvbmcgbG9uZyBsb2FkZWQ7CitAcHJvcGVydHkg
KHJlYWRvbmx5KSB1bnNpZ25lZCBsb25nIGxvbmcgdG90YWw7CitAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVByb2dyZXNzRXZlbnQubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uN2Ri
N2Y1Njk4MzI3YWZlZTE3NmUzZDcyMGFlYmEyOTg5NDk4YjY1NgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudC5tbQpAQCAtMCww
ICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVByb2dyZXNzRXZlbnRJbnRlcm5h
bC5oIgorCisjaW1wb3J0ICJET01FdmVudEludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2RlSW50
ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlByb2dyZXNzRXZlbnQuaCIKKyNpbXBvcnQgIlRo
cmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQcml2YXRlLmgiCisjaW1wb3J0
IDx3dGYvR2V0UHRyLmg+CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpQcm9n
cmVzc0V2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkp
CisKK0BpbXBsZW1lbnRhdGlvbiBET01Qcm9ncmVzc0V2ZW50CisKKy0gKEJPT0wpbGVuZ3RoQ29t
cHV0YWJsZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAg
ICByZXR1cm4gSU1QTC0+bGVuZ3RoQ29tcHV0YWJsZSgpOworfQorCistICh1bnNpZ25lZCBsb25n
IGxvbmcpbG9hZGVkCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sb2FkZWQoKTsKK30KKworLSAodW5zaWduZWQgbG9uZyBsb25n
KXRvdGFsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT50b3RhbCgpOworfQorCitAZW5kCisKK1dlYkNvcmU6OlByb2dyZXNzRXZl
bnQqIGNvcmUoRE9NUHJvZ3Jlc3NFdmVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBl
ciA/IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UHJvZ3Jlc3NFdmVudCo+KHdyYXBwZXItPl9p
bnRlcm5hbCkgOiAwOworfQorCitET01Qcm9ncmVzc0V2ZW50ICpraXQoV2ViQ29yZTo6UHJvZ3Jl
c3NFdmVudCogdmFsdWUpCit7CisgICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRP
bmUoKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8RE9NUHJvZ3Jlc3NFdmVudCo+KGtpdChzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01Qcm9ncmVzc0V2ZW50SW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudEludGVybmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZDY2MGVkOTNhODFjODEyMDVmOGE0MDg5NTVlZTkxNDc5NzIwMjYzNgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUHJvZ3Jlc3NFdmVudElu
dGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxXZWJDb3JlL0RPTVByb2dyZXNzRXZlbnQu
aD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgUHJvZ3Jlc3NFdmVudDsKK30KKworV0VC
Q09SRV9FWFBPUlQgV2ViQ29yZTo6UHJvZ3Jlc3NFdmVudCogY29yZShET01Qcm9ncmVzc0V2ZW50
ICopOworV0VCQ09SRV9FWFBPUlQgRE9NUHJvZ3Jlc3NFdmVudCAqa2l0KFdlYkNvcmU6OlByb2dy
ZXNzRXZlbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
UkdCQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4zODhjNDI4YjE5Njc1MzU2MDc1NWY2NDJjMmU2OTcyOGU1OWQ1NTU5Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01SR0JDb2xvci5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQor
ICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NT2JqZWN0Lmg+CisKK0BjbGFzcyBET01D
U1NQcmltaXRpdmVWYWx1ZTsKKyNpZiAhVEFSR0VUX09TX0lQSE9ORQorQGNsYXNzIE5TQ29sb3I7
CisjZWxzZQordHlwZWRlZiBzdHJ1Y3QgQ0dDb2xvciogQ0dDb2xvclJlZjsKKyNlbmRpZgorCitX
RUJLSVRfQ0xBU1NfQVZBSUxBQkxFX01BQygxMF80KQorV0VCQ09SRV9FWFBPUlQgQGludGVyZmFj
ZSBET01SR0JDb2xvciA6IERPTU9iamVjdAorQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBE
T01DU1NQcmltaXRpdmVWYWx1ZSAqcmVkOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBE
T01DU1NQcmltaXRpdmVWYWx1ZSAqZ3JlZW47CitAcHJvcGVydHkgKHJlYWRvbmx5LCBzdHJvbmcp
IERPTUNTU1ByaW1pdGl2ZVZhbHVlICpibHVlOworQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25n
KSBET01DU1NQcmltaXRpdmVWYWx1ZSAqYWxwaGE7CisjaWYgIVRBUkdFVF9PU19JUEhPTkUKK0Bw
cm9wZXJ0eSAocmVhZG9ubHksIGNvcHkpIE5TQ29sb3IgKmNvbG9yIFdFQktJVF9BVkFJTEFCTEVf
TUFDKDEwXzUpOworI2Vsc2UKKy0gKENHQ29sb3JSZWYpY29sb3I7CisjZW5kaWYKK0BlbmQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUkdCQ29sb3IubW0gYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4
NjMwOTE5ZjQ4NDk1ZTY5OWNmMWJmMzNjOGYzYmMxYzA4ZTA0ODQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJHQkNvbG9yLm1tCkBAIC0wLDAgKzEs
MTE4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVJHQkNvbG9ySW50ZXJuYWwuaCIKKwor
I2ltcG9ydCAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKKyNpbXBvcnQgIkRPTUNTU1ByaW1pdGl2ZVZh
bHVlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIkRPTUludGVybmFsLmgiCisjaW1wb3J0ICJET01Ob2Rl
SW50ZXJuYWwuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01h
aW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlJHQkNvbG9yLmgiCisjaW1wb3J0ICJUaHJl
YWRDaGVjay5oIgorI2ltcG9ydCAiV2ViQ29yZU9iakNFeHRyYXMuaCIKKyNpbXBvcnQgIldlYlNj
cmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2lmIFBMQVRG
T1JNKE1BQykKKyNpbXBvcnQgIkNvbG9yTWFjLmgiCisjZWxzZQorI2ltcG9ydCAiQ29sb3JTcGFj
ZS5oIgorI2VuZGlmCisKKyNkZWZpbmUgSU1QTCByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJH
QkNvbG9yKj4oX2ludGVybmFsKQorCitAaW1wbGVtZW50YXRpb24gRE9NUkdCQ29sb3IKKworLSAo
dm9pZClkZWFsbG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25N
YWluVGhyZWFkKFtET01SR0JDb2xvciBjbGFzc10sIHNlbGYpKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAoX2ludGVybmFsKQorICAgICAgICBJTVBMLT5kZXJlZigpOworICAgIFtzdXBlciBk
ZWFsbG9jXTsKK30KKworLSAoRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilyZWQKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6Omdl
dFB0cihJTVBMLT5yZWQoKSkpOworfQorCistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKWdyZWVu
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Z3JlZW4oKSkpOworfQorCistIChET01DU1NQcmltaXRp
dmVWYWx1ZSAqKWJsdWUKK3sKKyAgICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3Rh
dGU7CisgICAgcmV0dXJuIGtpdChXVEY6OmdldFB0cihJTVBMLT5ibHVlKCkpKTsKK30KKworLSAo
RE9NQ1NTUHJpbWl0aXZlVmFsdWUgKilhbHBoYQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPmFscGhh
KCkpKTsKK30KKworI2lmIFBMQVRGT1JNKE1BQykKKy0gKE5TQ29sb3IgKiljb2xvcgoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gV2ViQ29y
ZTo6bnNDb2xvcihJTVBMLT5jb2xvcigpKTsKK30KKyNlbHNlCistIChDR0NvbG9yUmVmKWNvbG9y
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVy
biBXZWJDb3JlOjpjYWNoZWRDR0NvbG9yKElNUEwtPmNvbG9yKCkpOworfQorI2VuZGlmCisKK0Bl
bmQKKworV2ViQ29yZTo6UkdCQ29sb3IqIGNvcmUoRE9NUkdCQ29sb3IgKndyYXBwZXIpCit7Cisg
ICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlJHQkNvbG9yKj4o
d3JhcHBlci0+X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTVJHQkNvbG9yICpraXQoV2ViQ29yZTo6
UkdCQ29sb3IqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVja1JvdW5k
T25lKCk7CisgICAgaWYgKCF2YWx1ZSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICBpZiAoRE9N
UkdCQ29sb3IgKndyYXBwZXIgPSBnZXRET01XcmFwcGVyKHZhbHVlKSkKKyAgICAgICAgcmV0dXJu
IFtbd3JhcHBlciByZXRhaW5dIGF1dG9yZWxlYXNlXTsKKyAgICBET01SR0JDb2xvciAqd3JhcHBl
ciA9IFtbRE9NUkdCQ29sb3IgYWxsb2NdIF9pbml0XTsKKyAgICB3cmFwcGVyLT5faW50ZXJuYWwg
PSByZWludGVycHJldF9jYXN0PERPTU9iamVjdEludGVybmFsKj4odmFsdWUpOworICAgIHZhbHVl
LT5yZWYoKTsKKyAgICBhZGRET01XcmFwcGVyKHdyYXBwZXIsIHZhbHVlKTsKKyAgICByZXR1cm4g
W3dyYXBwZXIgYXV0b3JlbGVhc2VdOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01SR0JDb2xvckludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTVJHQkNvbG9ySW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45ZmU3NjE1NDgyZjgzYzhh
NTI2MDE2YWQ1ZDlhMjk1ZDBjNjc1N2U3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvb2JqYy9ET01SR0JDb2xvckludGVybmFsLmgKQEAgLTAsMCArMSwzMyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9y
dCA8V2ViQ29yZS9ET01SR0JDb2xvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitjbGFzcyBS
R0JDb2xvcjsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6UkdCQ29sb3IqIGNvcmUoRE9N
UkdCQ29sb3IgKik7CitXRUJDT1JFX0VYUE9SVCBET01SR0JDb2xvciAqa2l0KFdlYkNvcmU6OlJH
QkNvbG9yKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUmVjdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY4ZGUzMjgzMDg3NmMxMzcyMDE4ZjBhNzhhZjQyMzViYmE4ODNmM2UKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3QuaApAQCAtMCwwICsxLDM2
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW1wb3J0IDxXZWJDb3JlL0RPTU9iamVjdC5oPgorCitAY2xhc3MgRE9NQ1NTUHJpbWl0aXZlVmFs
dWU7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBA
aW50ZXJmYWNlIERPTVJlY3QgOiBET01PYmplY3QKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9u
ZykgRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKnRvcDsKK0Bwcm9wZXJ0eSAocmVhZG9ubHksIHN0cm9u
ZykgRE9NQ1NTUHJpbWl0aXZlVmFsdWUgKnJpZ2h0OworQHByb3BlcnR5IChyZWFkb25seSwgc3Ry
b25nKSBET01DU1NQcmltaXRpdmVWYWx1ZSAqYm90dG9tOworQHByb3BlcnR5IChyZWFkb25seSwg
c3Ryb25nKSBET01DU1NQcmltaXRpdmVWYWx1ZSAqbGVmdDsKK0BlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUmVjdC5tbSBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL29iamMvRE9NUmVjdC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWQ5Yjc0N2VhMmM2MjRlYjhlN2Y1
NTNjNjI5YmY0ZDM4YTExOTRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9ET01SZWN0Lm1tCkBAIC0wLDAgKzEsOTggQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisg
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2lt
cG9ydCAiRE9NUmVjdEludGVybmFsLmgiCisKKyNpbXBvcnQgIkNTU1ByaW1pdGl2ZVZhbHVlLmgi
CisjaW1wb3J0ICJET01DU1NQcmltaXRpdmVWYWx1ZUludGVybmFsLmgiCisjaW1wb3J0ICJET01J
bnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJFeGNlcHRp
b25IYW5kbGVycy5oIgorI2ltcG9ydCAiSlNNYWluVGhyZWFkRXhlY1N0YXRlLmgiCisjaW1wb3J0
ICJSZWN0LmgiCisjaW1wb3J0ICJUaHJlYWRDaGVjay5oIgorI2ltcG9ydCAiV2ViQ29yZU9iakNF
eHRyYXMuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFByaXZhdGUuaCIKKyNpbXBvcnQgPHd0
Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHJlaW50ZXJwcmV0X2Nhc3Q8V2ViQ29yZTo6UmVj
dCo+KF9pbnRlcm5hbCkKKworQGltcGxlbWVudGF0aW9uIERPTVJlY3QKKworLSAodm9pZClkZWFs
bG9jCit7CisgICAgaWYgKFdlYkNvcmVPYmpDU2NoZWR1bGVEZWFsbG9jYXRlT25NYWluVGhyZWFk
KFtET01SZWN0IGNsYXNzXSwgc2VsZikpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChfaW50
ZXJuYWwpCisgICAgICAgIElNUEwtPmRlcmVmKCk7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQor
CistIChET01DU1NQcmltaXRpdmVWYWx1ZSAqKXRvcAoreworICAgIFdlYkNvcmU6OkpTTWFpblRo
cmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnRv
cCgpKSk7Cit9CisKKy0gKERPTUNTU1ByaW1pdGl2ZVZhbHVlICopcmlnaHQKK3sKKyAgICBXZWJD
b3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIGtpdChXVEY6Omdl
dFB0cihJTVBMLT5yaWdodCgpKSk7Cit9CisKKy0gKERPTUNTU1ByaW1pdGl2ZVZhbHVlICopYm90
dG9tCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJl
dHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+Ym90dG9tKCkpKTsKK30KKworLSAoRE9NQ1NTUHJp
bWl0aXZlVmFsdWUgKilsZWZ0Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBraXQoV1RGOjpnZXRQdHIoSU1QTC0+bGVmdCgpKSk7Cit9CisK
K0BlbmQKKworV2ViQ29yZTo6UmVjdCogY29yZShET01SZWN0ICp3cmFwcGVyKQoreworICAgIHJl
dHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpSZWN0Kj4od3JhcHBlci0+
X2ludGVybmFsKSA6IDA7Cit9CisKK0RPTVJlY3QgKmtpdChXZWJDb3JlOjpSZWN0KiB2YWx1ZSkK
K3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tSb3VuZE9uZSgpOworICAgIGlmICgh
dmFsdWUpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgaWYgKERPTVJlY3QgKndyYXBwZXIgPSBn
ZXRET01XcmFwcGVyKHZhbHVlKSkKKyAgICAgICAgcmV0dXJuIFtbd3JhcHBlciByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKKyAgICBET01SZWN0ICp3cmFwcGVyID0gW1tET01SZWN0IGFsbG9jXSBfaW5p
dF07CisgICAgd3JhcHBlci0+X2ludGVybmFsID0gcmVpbnRlcnByZXRfY2FzdDxET01PYmplY3RJ
bnRlcm5hbCo+KHZhbHVlKTsKKyAgICB2YWx1ZS0+cmVmKCk7CisgICAgYWRkRE9NV3JhcHBlcih3
cmFwcGVyLCB2YWx1ZSk7CisgICAgcmV0dXJuIFt3cmFwcGVyIGF1dG9yZWxlYXNlXTsKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NUmVjdEludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRlcm5hbC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU5NGVhYzBhYTMwMzdhNDNhYjFkNzBjZjI2ZmFlMzg0MjA3ZWE1YjcKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVJlY3RJbnRlcm5hbC5oCkBA
IC0wLDAgKzEsMzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgPFdlYkNvcmUvRE9NUmVjdC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CitjbGFzcyBSZWN0OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3JlOjpSZWN0KiBjb3Jl
KERPTVJlY3QgKik7CitXRUJDT1JFX0VYUE9SVCBET01SZWN0ICpraXQoV2ViQ29yZTo6UmVjdCop
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWQ1Y2M2YmI1MmE4ZDRmNjJmM2ZjODVlNGU5ZDBhYTgxYzAzYTQzMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50LmgKQEAgLTAs
MCArMSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCA8V2ViQ29yZS9ET01VSUV2ZW50Lmg+CisKK0BjbGFzcyBET01BYnN0cmFj
dFZpZXc7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDk4
NzZfNSkKK1dFQkNPUkVfRVhQT1JUIEBpbnRlcmZhY2UgRE9NVGV4dEV2ZW50IDogRE9NVUlFdmVu
dAorQHByb3BlcnR5IChyZWFkb25seSwgY29weSkgTlNTdHJpbmcgKmRhdGE7CisKKy0gKHZvaWQp
aW5pdFRleHRFdmVudDooTlNTdHJpbmcgKil0eXBlQXJnIGNhbkJ1YmJsZUFyZzooQk9PTCljYW5C
dWJibGVBcmcgY2FuY2VsYWJsZUFyZzooQk9PTCljYW5jZWxhYmxlQXJnIHZpZXdBcmc6KERPTUFi
c3RyYWN0VmlldyAqKXZpZXdBcmcgZGF0YUFyZzooTlNTdHJpbmcgKilkYXRhQXJnOworQGVuZApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVRleHRFdmVudC5tbQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xN2UxY2YyZTFhZTJlYWFkMTFhYzM3ZjAzZDc2MGRlYjE5ZjI5YzZjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnQubW0KQEAgLTAs
MCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgor
ICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJET01UZXh0RXZlbnRJbnRlcm5hbC5o
IgorCisjaW1wb3J0ICJET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZl
bnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01X
aW5kb3cuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5U
aHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRleHRFdmVudC5oIgorI2ltcG9ydCAiVGhyZWFk
Q2hlY2suaCIKKyNpbXBvcnQgIlVSTC5oIgorI2ltcG9ydCAiV2ViU2NyaXB0T2JqZWN0UHJpdmF0
ZS5oIgorI2ltcG9ydCA8d3RmL0dldFB0ci5oPgorCisjZGVmaW5lIElNUEwgc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6VGV4dEV2ZW50Kj4ocmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9p
bnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlvbiBET01UZXh0RXZlbnQKKworLSAoTlNTdHJpbmcg
KilkYXRhCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5kYXRhKCk7Cit9CisKKy0gKHZvaWQpaW5pdFRleHRFdmVudDooTlNTdHJp
bmcgKil0eXBlQXJnIGNhbkJ1YmJsZUFyZzooQk9PTCljYW5CdWJibGVBcmcgY2FuY2VsYWJsZUFy
ZzooQk9PTCljYW5jZWxhYmxlQXJnIHZpZXdBcmc6KERPTUFic3RyYWN0VmlldyAqKXZpZXdBcmcg
ZGF0YUFyZzooTlNTdHJpbmcgKilkYXRhQXJnCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFk
TnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwtPmluaXRUZXh0RXZlbnQodHlwZUFyZywgY2FuQnVi
YmxlQXJnLCBjYW5jZWxhYmxlQXJnLCBjb3JlKHZpZXdBcmcpLCBkYXRhQXJnKTsKK30KKworQGVu
ZAorCitXZWJDb3JlOjpUZXh0RXZlbnQqIGNvcmUoRE9NVGV4dEV2ZW50ICp3cmFwcGVyKQorewor
ICAgIHJldHVybiB3cmFwcGVyID8gcmVpbnRlcnByZXRfY2FzdDxXZWJDb3JlOjpUZXh0RXZlbnQq
Pih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NVGV4dEV2ZW50ICpraXQoV2ViQ29y
ZTo6VGV4dEV2ZW50KiB2YWx1ZSkKK3sKKyAgICBXZWJDb3JlVGhyZWFkVmlvbGF0aW9uQ2hlY2tS
b3VuZE9uZSgpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxET01UZXh0RXZlbnQqPihraXQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVGV4dEV2ZW50SW50ZXJuYWwuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5i
MzMxNzRmZWNhNTkzNGNmMGM2YjAxMjJiZGMxNzYyNDAyNWM4ZTQ1Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01UZXh0RXZlbnRJbnRlcm5hbC5oCkBA
IC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01UZXh0RXZlbnQuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworY2xhc3MgVGV4dEV2ZW50OworfQorCitXRUJDT1JFX0VYUE9SVCBXZWJDb3Jl
OjpUZXh0RXZlbnQqIGNvcmUoRE9NVGV4dEV2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NVGV4
dEV2ZW50ICpraXQoV2ViQ29yZTo6VGV4dEV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L29iamMvRE9NVUlFdmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5NGZlYmY2NDY5YTQ2MTY1YTk1ZTA4Yzhm
OWZjMmNiZGI0MGMwN2EKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9vYmpjL0RPTVVJRXZlbnQuaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTUV2ZW50
Lmg+CisKK0BjbGFzcyBET01BYnN0cmFjdFZpZXc7CitAY2xhc3MgTlNTdHJpbmc7CisKK1dFQktJ
VF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzQpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJmYWNlIERP
TVVJRXZlbnQgOiBET01FdmVudAorQHByb3BlcnR5IChyZWFkb25seSwgc3Ryb25nKSBET01BYnN0
cmFjdFZpZXcgKnZpZXc7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgZGV0YWlsOworQHByb3Bl
cnR5IChyZWFkb25seSkgaW50IGtleUNvZGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitA
cHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgY2hhckNvZGUgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBf
NSk7CitAcHJvcGVydHkgKHJlYWRvbmx5KSBpbnQgbGF5ZXJYIFdFQktJVF9ERVBSRUNBVEVEX01B
QygxMF81LCAxMF81KTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIGludCBsYXllclkgV0VCS0lUX0RF
UFJFQ0FURURfTUFDKDEwXzUsIDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHBhZ2VY
IFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50IHBh
Z2VZIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworQHByb3BlcnR5IChyZWFkb25seSkgaW50
IHdoaWNoIFdFQktJVF9BVkFJTEFCTEVfTUFDKDEwXzUpOworCistICh2b2lkKWluaXRVSUV2ZW50
OihOU1N0cmluZyAqKXR5cGUgY2FuQnViYmxlOihCT09MKWNhbkJ1YmJsZSBjYW5jZWxhYmxlOihC
T09MKWNhbmNlbGFibGUgdmlldzooRE9NQWJzdHJhY3RWaWV3ICopdmlldyBkZXRhaWw6KGludClk
ZXRhaWwgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAZW5kCisKK0BpbnRlcmZhY2UgRE9N
VUlFdmVudCAoRE9NVUlFdmVudERlcHJlY2F0ZWQpCistICh2b2lkKWluaXRVSUV2ZW50OihOU1N0
cmluZyAqKXR5cGUgOihCT09MKWNhbkJ1YmJsZSA6KEJPT0wpY2FuY2VsYWJsZSA6KERPTUFic3Ry
YWN0VmlldyAqKXZpZXcgOihpbnQpZGV0YWlsIFdFQktJVF9ERVBSRUNBVEVEX01BQygxMF80LCAx
MF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
VUlFdmVudC5tbSBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlFdmVudC5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi40ZGRmOTVhODBiNDY3NDBkZTI4Y2JhNWMxYTdjZmU2M2IzMjI5ZDQzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9ET01VSUV2ZW50Lm1t
CkBAIC0wLDAgKzEsMTIyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
KyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVVJRXZlbnRJbnRl
cm5hbC5oIgorCisjaW1wb3J0ICJET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAi
RE9NRXZlbnRJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0
ICJET01XaW5kb3cuaCIKKyNpbXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJK
U01haW5UaHJlYWRFeGVjU3RhdGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0
ICJVSUV2ZW50LmgiCisjaW1wb3J0ICJVUkwuaCIKKyNpbXBvcnQgIldlYlNjcmlwdE9iamVjdFBy
aXZhdGUuaCIKKyNpbXBvcnQgPHd0Zi9HZXRQdHIuaD4KKworI2RlZmluZSBJTVBMIHN0YXRpY19j
YXN0PFdlYkNvcmU6OlVJRXZlbnQqPihyZWludGVycHJldF9jYXN0PFdlYkNvcmU6OkV2ZW50Kj4o
X2ludGVybmFsKSkKKworQGltcGxlbWVudGF0aW9uIERPTVVJRXZlbnQKKworLSAoRE9NQWJzdHJh
Y3RWaWV3ICopdmlldworeworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4ga2l0KFdURjo6Z2V0UHRyKElNUEwtPnZpZXcoKSkpOworfQorCistIChp
bnQpZGV0YWlsCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOwor
ICAgIHJldHVybiBJTVBMLT5kZXRhaWwoKTsKK30KKworLSAoaW50KWtleUNvZGUKK3sKKyAgICBX
ZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmtl
eUNvZGUoKTsKK30KKworLSAoaW50KWNoYXJDb2RlCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhy
ZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5jaGFyQ29kZSgpOworfQorCist
IChpbnQpbGF5ZXJYCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRl
OworICAgIHJldHVybiBJTVBMLT5sYXllclgoKTsKK30KKworLSAoaW50KWxheWVyWQoreworICAg
IFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+
bGF5ZXJZKCk7Cit9CisKKy0gKGludClwYWdlWAoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVh
ZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+cGFnZVgoKTsKK30KKworLSAoaW50
KXBhZ2VZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAg
IHJldHVybiBJTVBMLT5wYWdlWSgpOworfQorCistIChpbnQpd2hpY2gKK3sKKyAgICBXZWJDb3Jl
OjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPndoaWNoKCk7
Cit9CisKKy0gKHZvaWQpaW5pdFVJRXZlbnQ6KE5TU3RyaW5nICopdHlwZSBjYW5CdWJibGU6KEJP
T0wpY2FuQnViYmxlIGNhbmNlbGFibGU6KEJPT0wpY2FuY2VsYWJsZSB2aWV3OihET01BYnN0cmFj
dFZpZXcgKilpblZpZXcgZGV0YWlsOihpbnQpaW5EZXRhaWwKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdFVJRXZlbnQodHlwZSwgY2Fu
QnViYmxlLCBjYW5jZWxhYmxlLCBjb3JlKGluVmlldyksIGluRGV0YWlsKTsKK30KKworLSAodm9p
ZClpbml0VUlFdmVudDooTlNTdHJpbmcgKil0eXBlIDooQk9PTCljYW5CdWJibGUgOihCT09MKWNh
bmNlbGFibGUgOihET01BYnN0cmFjdFZpZXcgKilpblZpZXcgOihpbnQpaW5EZXRhaWwKK3sKKyAg
ICBXZWJDb3JlOjpKU01haW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgSU1QTC0+aW5pdFVJ
RXZlbnQodHlwZSwgY2FuQnViYmxlLCBjYW5jZWxhYmxlLCBjb3JlKGluVmlldyksIGluRGV0YWls
KTsKK30KKworQGVuZAorCitXZWJDb3JlOjpVSUV2ZW50KiBjb3JlKERPTVVJRXZlbnQgKndyYXBw
ZXIpCit7CisgICAgcmV0dXJuIHdyYXBwZXIgPyByZWludGVycHJldF9jYXN0PFdlYkNvcmU6OlVJ
RXZlbnQqPih3cmFwcGVyLT5faW50ZXJuYWwpIDogMDsKK30KKworRE9NVUlFdmVudCAqa2l0KFdl
YkNvcmU6OlVJRXZlbnQqIHZhbHVlKQoreworICAgIFdlYkNvcmVUaHJlYWRWaW9sYXRpb25DaGVj
a1JvdW5kT25lKCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERPTVVJRXZlbnQqPihraXQoc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6RXZlbnQqPih2YWx1ZSkpKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NVUlFdmVudEludGVybmFsLmggYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnRJbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJiNDg0
ZjRkMWM3ODJkM2JkZDU1YWU2MTY4NzlhYWE2MzBmZTMyNmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVVJRXZlbnRJbnRlcm5hbC5oCkBAIC0wLDAg
KzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKworI2ltcG9ydCA8V2ViQ29yZS9ET01VSUV2ZW50Lmg+CisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKK2NsYXNzIFVJRXZlbnQ7Cit9CisKK1dFQkNPUkVfRVhQT1JUIFdlYkNvcmU6OlVJRXZlbnQq
IGNvcmUoRE9NVUlFdmVudCAqKTsKK1dFQkNPUkVfRVhQT1JUIERPTVVJRXZlbnQgKmtpdChXZWJD
b3JlOjpVSUV2ZW50Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpj
L0RPTVdoZWVsRXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NV2hlZWxF
dmVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUwYzIxMTliZjRmZGZlMDZlOTYzODMxN2NiZDczZDE2ZGM3OTdl
ZmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9vYmpjL0RPTVdo
ZWVsRXZlbnQuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJDb3JlL0RPTU1vdXNlRXZlbnQuaD4K
KworQGNsYXNzIERPTUFic3RyYWN0VmlldzsKKworZW51bSB7CisgICAgRE9NX0RPTV9ERUxUQV9Q
SVhFTCA9IDB4MDAsCisgICAgRE9NX0RPTV9ERUxUQV9MSU5FID0gMHgwMSwKKyAgICBET01fRE9N
X0RFTFRBX1BBR0UgPSAweDAyCit9IFdFQktJVF9FTlVNX0FWQUlMQUJMRV9NQUMoMTBfNSk7CisK
K1dFQktJVF9DTEFTU19BVkFJTEFCTEVfTUFDKDEwXzUpCitXRUJDT1JFX0VYUE9SVCBAaW50ZXJm
YWNlIERPTVdoZWVsRXZlbnQgOiBET01Nb3VzZUV2ZW50CitAcHJvcGVydHkgKHJlYWRvbmx5KSBp
bnQgd2hlZWxEZWx0YVggV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJvcGVydHkgKHJl
YWRvbmx5KSBpbnQgd2hlZWxEZWx0YVkgV0VCS0lUX0FWQUlMQUJMRV9NQUMoMTBfNSk7CitAcHJv
cGVydHkgKHJlYWRvbmx5KSBpbnQgd2hlZWxEZWx0YTsKK0Bwcm9wZXJ0eSAocmVhZG9ubHkpIEJP
T0wgaXNIb3Jpem9udGFsOworCistICh2b2lkKWluaXRXaGVlbEV2ZW50OihpbnQpd2hlZWxEZWx0
YVggd2hlZWxEZWx0YVk6KGludCl3aGVlbERlbHRhWSB2aWV3OihET01BYnN0cmFjdFZpZXcgKil2
aWV3IHNjcmVlblg6KGludClzY3JlZW5YIHNjcmVlblk6KGludClzY3JlZW5ZIGNsaWVudFg6KGlu
dCljbGllbnRYIGNsaWVudFk6KGludCljbGllbnRZIGN0cmxLZXk6KEJPT0wpY3RybEtleSBhbHRL
ZXk6KEJPT0wpYWx0S2V5IHNoaWZ0S2V5OihCT09MKXNoaWZ0S2V5IG1ldGFLZXk6KEJPT0wpbWV0
YUtleSBXRUJLSVRfQVZBSUxBQkxFX01BQygxMF81KTsKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVudC5tbSBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL29iamMvRE9NV2hlZWxFdmVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjYzYzE3MmZkMTNl
ZDU0MmEwMGI5NjExODA3YTkwODViNGFkN2Y1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvb2JqYy9ET01XaGVlbEV2ZW50Lm1tCkBAIC0wLDAgKzEsMTE1IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0
ICJjb25maWcuaCIKKyNpbXBvcnQgIkRPTVdoZWVsRXZlbnRJbnRlcm5hbC5oIgorCisjaW1wb3J0
ICJET01BYnN0cmFjdFZpZXdJbnRlcm5hbC5oIgorI2ltcG9ydCAiRE9NRXZlbnRJbnRlcm5hbC5o
IgorI2ltcG9ydCAiRE9NTm9kZUludGVybmFsLmgiCisjaW1wb3J0ICJET01XaW5kb3cuaCIKKyNp
bXBvcnQgIkV4Y2VwdGlvbkhhbmRsZXJzLmgiCisjaW1wb3J0ICJKU01haW5UaHJlYWRFeGVjU3Rh
dGUuaCIKKyNpbXBvcnQgIlRocmVhZENoZWNrLmgiCisjaW1wb3J0ICJXZWJTY3JpcHRPYmplY3RQ
cml2YXRlLmgiCisjaW1wb3J0ICJXaGVlbEV2ZW50LmgiCisjaW1wb3J0IDx3dGYvR2V0UHRyLmg+
CisKKyNkZWZpbmUgSU1QTCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpXaGVlbEV2ZW50Kj4ocmVpbnRl
cnByZXRfY2FzdDxXZWJDb3JlOjpFdmVudCo+KF9pbnRlcm5hbCkpCisKK0BpbXBsZW1lbnRhdGlv
biBET01XaGVlbEV2ZW50CisKKy0gKGRvdWJsZSlkZWx0YVgKK3sKKyAgICBXZWJDb3JlOjpKU01h
aW5UaHJlYWROdWxsU3RhdGUgc3RhdGU7CisgICAgcmV0dXJuIElNUEwtPmRlbHRhWCgpOworfQor
CistIChkb3VibGUpZGVsdGFZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRl
IHN0YXRlOworICAgIHJldHVybiBJTVBMLT5kZWx0YVkoKTsKK30KKworLSAoZG91YmxlKWRlbHRh
WgoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1
cm4gSU1QTC0+ZGVsdGFaKCk7Cit9CisKKy0gKHVuc2lnbmVkKWRlbHRhTW9kZQoreworICAgIFdl
YkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+ZGVs
dGFNb2RlKCk7Cit9CisKKy0gKGludCl3aGVlbERlbHRhWAoreworICAgIFdlYkNvcmU6OkpTTWFp
blRocmVhZE51bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+d2hlZWxEZWx0YVgoKTsK
K30KKworLSAoaW50KXdoZWVsRGVsdGFZCit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVs
bFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT53aGVlbERlbHRhWSgpOworfQorCistIChp
bnQpd2hlZWxEZWx0YQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51bGxTdGF0ZSBzdGF0
ZTsKKyAgICByZXR1cm4gSU1QTC0+d2hlZWxEZWx0YSgpOworfQorCistIChCT09MKXdlYmtpdERp
cmVjdGlvbkludmVydGVkRnJvbURldmljZQoreworICAgIFdlYkNvcmU6OkpTTWFpblRocmVhZE51
bGxTdGF0ZSBzdGF0ZTsKKyAgICByZXR1cm4gSU1QTC0+d2Via2l0RGlyZWN0aW9uSW52ZXJ0ZWRG
cm9tRGV2aWNlKCk7Cit9CisKKy0gKEJPT0wpaXNIb3Jpem9udGFsCit7CisgICAgV2ViQ29yZTo6
SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIHJldHVybiBJTVBMLT5pc0hvcml6b250
YWwoKTsKK30KKworLSAodm9pZClpbml0V2hlZWxFdmVudDooaW50KWluV2hlZWxEZWx0YVggd2hl
ZWxEZWx0YVk6KGludClpbldoZWVsRGVsdGFZIHZpZXc6KERPTUFic3RyYWN0VmlldyAqKXZpZXcg
c2NyZWVuWDooaW50KXNjcmVlblggc2NyZWVuWTooaW50KXNjcmVlblkgY2xpZW50WDooaW50KWNs
aWVudFggY2xpZW50WTooaW50KWNsaWVudFkgY3RybEtleTooQk9PTCljdHJsS2V5IGFsdEtleToo
Qk9PTClhbHRLZXkgc2hpZnRLZXk6KEJPT0wpc2hpZnRLZXkgbWV0YUtleTooQk9PTCltZXRhS2V5
Cit7CisgICAgV2ViQ29yZTo6SlNNYWluVGhyZWFkTnVsbFN0YXRlIHN0YXRlOworICAgIElNUEwt
PmluaXRXaGVlbEV2ZW50KGluV2hlZWxEZWx0YVgsIGluV2hlZWxEZWx0YVksIGNvcmUodmlldyks
IHNjcmVlblgsIHNjcmVlblksIGNsaWVudFgsIGNsaWVudFksIGN0cmxLZXksIGFsdEtleSwgc2hp
ZnRLZXksIG1ldGFLZXkpOworfQorCitAZW5kCisKK1dlYkNvcmU6OldoZWVsRXZlbnQqIGNvcmUo
RE9NV2hlZWxFdmVudCAqd3JhcHBlcikKK3sKKyAgICByZXR1cm4gd3JhcHBlciA/IHJlaW50ZXJw
cmV0X2Nhc3Q8V2ViQ29yZTo6V2hlZWxFdmVudCo+KHdyYXBwZXItPl9pbnRlcm5hbCkgOiAwOwor
fQorCitET01XaGVlbEV2ZW50ICpraXQoV2ViQ29yZTo6V2hlZWxFdmVudCogdmFsdWUpCit7Cisg
ICAgV2ViQ29yZVRocmVhZFZpb2xhdGlvbkNoZWNrUm91bmRPbmUoKTsKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8RE9NV2hlZWxFdmVudCo+KGtpdChzdGF0aWNfY2FzdDxXZWJDb3JlOjpFdmVudCo+
KHZhbHVlKSkpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvb2JqYy9E
T01XaGVlbEV2ZW50SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL29iamMvRE9N
V2hlZWxFdmVudEludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI3MWMyNDQ4YmNiMGQ3MDM3M2EyYjg0
YzI4YzhlNzJkNmRhZTkyYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL29iamMvRE9NV2hlZWxFdmVudEludGVybmFsLmgKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAwNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworCisjaW1wb3J0IDxX
ZWJDb3JlL0RPTVdoZWVsRXZlbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworY2xhc3MgV2hl
ZWxFdmVudDsKK30KKworV0VCQ09SRV9FWFBPUlQgV2ViQ29yZTo6V2hlZWxFdmVudCogY29yZShE
T01XaGVlbEV2ZW50ICopOworV0VCQ09SRV9FWFBPUlQgRE9NV2hlZWxFdmVudCAqa2l0KFdlYkNv
cmU6OldoZWVsRXZlbnQqKTsK
</data>
<flag name="review"
          id="308803"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>